Как стать автором
Обновить

Cache API — кэшируем данные на стороне клиента

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 3.8K

Cache API - сравнительно старый API для управления хранилищем кэша, доступный уже во всех современных браузерах и являющийся частью ServiceWorker.

Разберемся, как мы можем его использовать, сравним с другими методами организации кэша на стороне клиента, а также реализуем новостную ленту с применением Cache API.

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 13

GPRS battery usage

Время на прочтение 3 мин
Количество просмотров 1.5K
Давайте подумаем вместе над вопросом об расходе ресурсов аккумулятора при использовании пакетных сервисов с помощью технологий GPRS\EDGE.

Читать дальше →
Всего голосов 34: ↑28 и ↓6 +22
Комментарии 32

Как решить проблемы подсистемы печати в терминальном сервере

Время на прочтение 3 мин
Количество просмотров 287K
Приветствую, %habrausername%!

Сегодня я бы хотел поделиться своим опытом устранения проблем печати на терминальном сервере Microsoft.

Подробности под катом.
Читать дальше →
Всего голосов 9: ↑8 и ↓1 +7
Комментарии 12

Интеграция проекта VueJS+TS с SonarQube

Время на прочтение 9 мин
Количество просмотров 6.4K

В своей работе мы активно используем платформу SonarQube для поддержания качества кода на высоком уровне. При интеграции одного из проектов, написанном на VueJs+Typescript, возникли проблемы. Поэтому хотел бы рассказать подробней о том, как удалось их решить.



В данной статье речь пойдет, как писал выше, о платформе SonarQube. Немного теории — что это такое вообще, для тех, кто слышит о ней впервые:


SonarQube (бывший Sonar) — платформа с открытым исходным кодом для непрерывного анализа (англ. continuous inspection) и измерения качества кода.
Поддерживает анализ кода и поиск ошибок согласно правилам стандартов программирования MISRA C, MISRA C++, MITRE/CWE и CERT Secure Coding Standards. А также умеет распознавать ошибки из списков OWASP Топ-10 и CWE/SANS Топ-25 ошибок программирования.
Несмотря на то, что платформа использует различные готовые инструменты, SonarQube сводит результаты к единой информационной панели (англ. dashboard), ведя историю прогонов и позволяя тем самым увидеть общую тенденцию изменения качества программного обеспечения в ходе разработки.

Более подробно можно узнать на официальном сайте


Поддерживается большое количество языков программирования. Судя по информации из ссылки выше — это более 25 языков. Для поддержки конкретного языка необходимо установить соответствующий плагин. В community-версию входит плагин для работы с Javascript (в том числе typesсript), хотя в wiki написано обратное. За Javascript отвечает плагин SonarJS, за Typescript SonarTS соответственно.


Для отправки информации о покрытии используется официальный клиент sonarqube-scanner, который, используя настройки из config-файла, отправляет эти данные на сервер SonarQube для дальнейшей консолидации и агрегирования.


Для Javascript есть npm-обертка. Итак, начинаем пошаговое внедрение SonarQube в Vue-проект, использующий Typescript.

Читать дальше →
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 5

Как научить программировать свою девушку, если ты не педагог, но она в тебя верит

Время на прочтение 7 мин
Количество просмотров 51K

Когда твой парень - fullstack


Когда твой парень — fullstack


Работая программистом и проживая в пяти минутах ходьбы от офиса, крайне тяжело успеть «отойти» от работы, отойдя от работы.


Я думаю, многим это знакомо: последние полчаса ты сидишь и думаешь над непонятно откуда взявшейся неочевидной ошибкой и в итоге, так и не решив проблему, проверяешь, что все твои сегодняшние коммиты улетели в корпоративный репозиторий, выключаешь машину и выходишь из кабинета, зная, что завтра с утра на свежую голову всё решится.


Как бы не так!


Конечно же, решение приходит в самый не подходящий момент: кого-то застаёт за рулём, кого-то в трамвае, кого-то, кому повезло работать рядом с домом, где-нибудь во дворе, а то и в лифте. В моём случае следующий за решением поток мысли выливается на девушку, которая, ну ещё бы, в программировании, что называется, ни в зуб ногой.


И вот однажды она приходит к тебе и торжественно заявляет:
— Я готова! Готова учиться программированию! Давай!


В этой статье не будет исходных кодов, в ней я постараюсь ответить на вопросы, которые встали передо мной на этапе планирования курса по программированию для собственной девушки.


О том, как я, не имея никакого практического опыта в обучении, решил ввести в программирование человека, объяснившего, что «ты же умный» и «всё у нас получится», расскажу под катом.


Добро пожаловать!

Читать дальше →
Всего голосов 76: ↑50 и ↓26 +24
Комментарии 309

Разработчик выпустил Shittier — утилиту, которая делает код нечитаемым

Время на прочтение 1 мин
Количество просмотров 12K

Разработчик Рохит Дас (Rohit Dhas) из Индии выпустил утилиту Shittier, которая делает код проекта нечитаемым, но рабочим. Дас называет свой проект полной альтернативой Prettier.

Читать далее
Всего голосов 32: ↑16 и ↓16 0
Комментарии 36

Состоялся релиз Bun 0.8 — среды выполнения JavaScript и TypeScript

Время на прочтение 3 мин
Количество просмотров 2.1K

Разработчики среды выполнения JavaScript и TypeScript под названием Bun рассказали про релиз версии 0.8. В обновлении добавили поддержку отладки кода, веб-фрейворков Nuxt и SvelteKit и улучшили уже имеющиеся функции. Релиз Bun 1.0 запланирован на 7 сентября 2023 года.

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 2

Vuex нарушает инкапсуляцию

Время на прочтение 4 мин
Количество просмотров 5.1K

Когда мой проект на Vue начал разрастаться и достиг нескольких сотен компонентов, я задумался о подходе Vue и Vuex к архитектуре проекта.


Читать дальше →
Всего голосов 11: ↑9 и ↓2 +7
Комментарии 7

Простые TypeScript-хитрости, которые позволят масштабировать ваши приложения бесконечно

Время на прочтение 6 мин
Количество просмотров 32K

Мы используем TypeScript, потому что это делает разработку безопаснее и быстрее.

Но, на мой взгляд, TypeScript из коробки содержит слишком много послаблений. Они помогают сэкономить немного времени JavaScript-разработчикам при переходе на TS, но съедают очень много времени в долгосрочной перспективе.

Я собрал ряд настроек и принципов для более строгого использования TypeScript. К ним нужно привыкнуть один раз — и они сэкономят массу времени в будущем.

Сэкономить время в будущем
Всего голосов 41: ↑39 и ↓2 +37
Комментарии 32

Как мы потерпели неудачу, а затем преуспели в переходе на TypeScript

Время на прочтение 8 мин
Количество просмотров 5.2K

К старту курса о Fullstack-разработке на Python, где также рассматривается TypeScript, мы перевили статью о миграции в Heap.io — компании, которая предоставляет платформу аналитики продуктов, — c языка CoffeeScript на TypeScript; TS в Heap.io начали использовать более 4 лет назад. Несмотря на широкое предпочтение TypeScript среди инженеров, миграция была медленной, а чёткого пути к 100 % кода TS не было.

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Комментарии 2

Разрабатываем шаблон React + Express + TypeScript приложения

Время на прочтение 13 мин
Количество просмотров 14K


Привет, друзья!


В этой статье я хочу показать вам, как создать шаблон React.js + Express.js + TypeScript приложения.


Обоснование используемых технологий (сугубо личное мнение, которое не обязательно должно совпадать с вашим):


  • React — далеко не идеальный, но лучший на сегодняшний день фреймворк для фронтенда (или, согласно официальной документации, "для создания пользовательских интерфейсов");
  • Express — несмотря на наличие большого количества альтернативных решений, по-прежнему лучший Node.js-фреймворк для разработки веб-серверов;
  • TypeScript — система типов для JavaScript (и еще кое-что), фактический стандарт современной веб-разработки.

Исходный код проекта.


Если вам это интересно, прошу под кат.

Читать дальше →
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 4

Обзор Codelobster — Удобная кроссплатформенная IDE

Время на прочтение 6 мин
Количество просмотров 6.9K

Полноценная мультплатформенная (включая Мак, Линукс и т.д.) IDE с нормальным автокомплитом для Друпала, JavaScript и TypeScript.

Читать обзор
Всего голосов 8: ↑2 и ↓6 -4
Комментарии 14

React: разрабатываем хук для загрузки дополнительных данных

Время на прочтение 9 мин
Количество просмотров 8.5K


Привет, друзья!


В этой статье я хочу поделиться с вами опытом разработки хука для загрузки дополнительных данных (авось кому-нибудь пригодится).


На самом деле, хуков будет целых 2 штуки:


  • useLoadMore — для загрузки дополнительных данных при нажатии кнопки "Загрузить еще"
  • useLoadPage — для постраничной загрузки данных (аля пагинация на основе курсора)

Первый хук попроще, второй посложнее.


Полагаю, лишним будет говорить, что необходимость в использовании подобных хуков возникает в каждом втором проекте (по крайней мере, в моей сфере деятельности).

Читать дальше →
Всего голосов 3: ↑2 и ↓1 +1
Комментарии 9

Angular: полное руководство для «Внедрения зависимостей»

Время на прочтение 11 мин
Количество просмотров 26K

Об одной из важнейшей функциональностей Angular «Внедрение зависимостей» на просторах рунета написано преступно мало, в основном затрагивается только «Внедрение сервисов». В этом материале я расскажу практически обо всех возможностях «Внедрение зависимостей», приведу примеры реального использования, объясню тонкости некоторых неочевидных моментов.

Читать далее
Всего голосов 8: ↑7 и ↓1 +6
Комментарии 6

Архитектура приложения стартапа. Взгляд с высоты птичьего полета

Время на прочтение 22 мин
Количество просмотров 4.8K

Приветствую всех читателей Хабра.

Немного разбросал текущие дела и пришло время для написания следующего поста в моем запланированном цикле статей:

Читать далее
Всего голосов 10: ↑7 и ↓3 +4
Комментарии 6

TypeScript: разрабатываем WebAssembly-компилятор

Время на прочтение 13 мин
Количество просмотров 5K



Привет, друзья!


Представляю вашему вниманию перевод этой замечательной статьи, в которой автор рассказывает о том, как разработать компилятор для WebAssembly на TypeScript.


Обратите внимание: мой вариант компилятора можно найти в этом репозитории, а поиграть с его кодом можно в этой песочнице.


Если вам это интересно, прошу под кат.

Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 1

Node.js: разрабатываем пакетный менеджер

Время на прочтение 15 мин
Количество просмотров 5.6K



Привет, друзья!


Вам когда-нибудь хотелось узнать, как под капотом работают пакетные менеджеры (Package Manager, PM) — интерфейсы командной строки (Command Line Interface, CLI) для установки зависимостей проектов наподобие npm или yarn? Если хотелось, тогда эта статья для вас.


В данном туториале мы разработаем простой пакетный менеджер на Node.js и TypeScript. В качестве образца для подражания мы будем использовать yarn. Если вы не знакомы с TS, советую взглянуть на эту карманную книгу.


Наш CLI будет называться my-yarn. В качестве lock-файла (yarn.lock, package-lock.json) он будет использовать файл my-yarn.yml.


Источник вдохновения.


Код проекта.

Читать дальше →
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 2

Руководство по NestJS. Часть 1

Время на прочтение 34 мин
Количество просмотров 78K



Привет, друзья!


В этой серии из 3 статей я расскажу вам о Nest (NestJS) — фреймворке для разработки эффективных и масштабируемых серверных приложений на Node.js. Данный фреймворк использует прогрессивный (что означает текущую версию ECMAScript) JavaScript с полной поддержкой TypeScript (использование TypeScript является опциональным) и сочетает в себе элементы объектно-ориентированного, функционального и реактивного функционального программирования.


Под капотом Nest использует Express (по умолчанию), но также позволяет использовать Fastify.



В первой статье рассматриваются основы работы с Nest, во второй — некоторые продвинутые возможности, предоставляемые этим фреймворком, в третьей — приводится пример разработки простого React/Nest/TypeScript-приложения.


При рассказе о Nest я буду в основном придерживаться структуры и содержания официальной документации.


Это первая часть руководства.

Читать дальше →
Всего голосов 14: ↑12 и ↓2 +10
Комментарии 4

Изучение TypeScript — полное руководство для начинающих. Часть 2 — Ссылочные типы данных

Время на прочтение 7 мин
Количество просмотров 25K

Всем привет!
Меня зовут Лихопой Кирилл и я - Fullstack-разработчик.

В этой серии статей я рассказываю об основах TypeScript, его преимуществах и фишках.

Сегодня мы поговорим про объекты, массивы и функции, а также затронем еще пару тем, полезных для веб-разработки. Итак, начнем.

Другие части:
Часть 1 - Введение и примитивы
Часть 3 - Классы и интерфейсы
Часть 4 - Литералы и дженерики
Часть 5 - Строгий режим и сужение типов

Читать далее
Всего голосов 7: ↑5 и ↓2 +3
Комментарии 3

Разрабатываем REST API с помощью TypeScript, NestJS, Prisma, AdminJS и Swagger

Время на прочтение 12 мин
Количество просмотров 12K



Привет, друзья!


В данном туториале мы разработаем простой сервер на NestJS, взаимодействующий с SQLite с помощью Prisma, с административной панелью, автоматически генерируемой с помощью AdminJS, и описанием интерфейса, автоматически генерируемым с помощью Swagger. Все это будет приготовлено под соусом TypeScript.


Репозиторий с кодом проекта.


Если вам это интересно, прошу под кат.

Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 9