Pull to refresh
2
0
Send message

Модули в JavaScript

Reading time9 min
Views58K


Фронтенд-разработчики каждый день используют модули. Это может быть функция из локального файла или сторонняя библиотека из node_modules. Сегодня я кратко расскажу об основных модульных системах в JavaScript и некоторых нюансах их использования.

Читать дальше →
Total votes 52: ↑52 and ↓0+52
Comments11

Дино (Deno): Создать Rest API с помощью JWT

Reading time11 min
Views5K

Со времен первой версии Deno стал модным словом для разработчиков Javascript/TypeScript/Node. Давайте погрузимся в эту технологию, создав защищенный с помощью JWT REST API.

Желательно уже иметь некоторые основы в Node и его экосистеме (Express, Nodemon, Sequelize и т.д.), чтобы следовать этому руководству.

Читать далее
Total votes 13: ↑7 and ↓6+3
Comments7

Демистификация JWT

Reading time5 min
Views15K

Вокруг JWT сложилась много распространенных заблуждений. Одно из них, например, что JWT зашифровано (на самом деле только подписано и закодировано base64url). На практике, я часто встречаюсь с довольно странными решениями, когда в JWT хранится только один идентификатор сессии (на самом деле если вы работаете с сессией то JWT вам не нужен). Или же в JWT хранится только один идентификатор пользователя, профайл которого запрашивается при каждом запросе из базы данных (на самом деле JWT имеет смысл, если Вы хотите уменьшить количество запросов в базу данных). Или, что еще более странно — сами JWT хранятся в базе данных.


Одной из объективных причин такого недопонимания роли и места JWT является то, что спецификация JWT описывает формат JWT, и ничего не говорит о том как JWT нужно применять.


Желание написать об этом у меня возникло уже давно. И после просмотра очередного проекта с немного странным использованием JWT я все же решился.

Читать дальше →
Total votes 9: ↑6 and ↓3+6
Comments41

Декораторы в JavaScript с нуля

Reading time10 min
Views38K

Декоратор — это средство, которое позволяет обернуть одну функцию другой и расширить ее возможности. Вы «декорируете» существующий код, обернув его другим кодом. Этот прием известен всем, кто знаком с композицией функций или функциями высшего порядка.

Декораторы — явление не новое. Они используются и в других языках, например в Python, и даже в функциональном программировании на JavaScript. Но об этом мы поговорим позже.

Читать далее
Total votes 5: ↑4 and ↓1+3
Comments1

Производительность TypeScript

Reading time15 min
Views17K

Есть лёгкие способы конфигурирования TypeScript для ускорения компиляции и редактирования. И чем раньше их внедрить, тем лучше. Также есть ещё некоторые популярные подходы к изучению причин медленной компиляции и редактирования, некоторые исправления и распространенные способы помочь TypeScript-команде в расследовании проблем.
Читать дальше →
Total votes 37: ↑37 and ↓0+37
Comments4

Подробности об использовании CSS-функции minmax() в Grid-макетах

Reading time8 min
Views23K
Существует множество руководств, в которых рассматриваются общие вопросы работы с CSS Grid, с механизмом, позволяющим создавать сеточные макеты. Я и сам немало об этом писал. Но я обратил внимание на то, что у многих разработчиков возникают сложности с использованием CSS-функции minmax(). Пожалуй, дело тут в том, что большинство существующих публикаций на эту тему либо не вдаются в детали, либо не включают в себя достаточного количества пояснений и примеров из реального мира. А minmax() — это очень мощная и полезная функция. Именно по этой причине я и решил написать данную статью. Это — нечто вроде «полного руководства по minmax()», задача которого — дать читателям то, чего не дают им другие публикации на эту тему.



Здесь мы в подробностях обсудим возможности функции minmax() в применении к сеточным макетам, поговорим о том, как, когда и почему ей стоит пользоваться. Тот, кто проработает эту статью, сможет полноценно и со знанием дела применять эту функцию в своих проектах.
Читать дальше →
Total votes 18: ↑17 and ↓1+26
Comments4

Учимся читать логи ваших бекапов

Reading time25 min
Views25K

Скажите честно, в своей практике вам чаще приходилось сталкиваться с логами, напоминающими чей-то поток сознания, или всё же это были красивые структурированные файлы, на которые любо-дорого смотреть? Надеюсь, что второе. В наших продуктах, само собой, мы тоже стремимся идти по второму пути, однако необходимость зафиксировать большое количество процессов накладывает свой отпечаток. Так что сегодня мы научимся не “читать книгу и видеть фигу”, а бесстрашно открывать любой лог Veeam Backup & Replication и видеть его внутреннюю красоту.

Перед прочтением этой статьи настоятельно рекомендую предварительно ознакомиться со статьёй-глоссарием, дабы понимать используемую терминологию. Затем прочитать эту и вот эту статью про источники данных для логов, а затем ещё и эту, дабы понимать, в какой лог ради чего следует залезать.

Читать далее
Total votes 12: ↑12 and ↓0+12
Comments2

Telegram-бот как фитнес-менеджер во время пандемии

Reading time6 min
Views6.6K
image

С приходом коронавируса мир сошел с ума и появилась куча ограничений, которые полностью поменяли нашу жизнь. Меня зовут Эмиль Фролов, я руковожу разработкой команды внутренних сервисов в ДомКлике и сегодня я поделюсь с читателями историей про создание бота, который помог нам справиться с некоторыми тяготами ковид-ограничений.

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

Сначала всё было хорошо и мест всем хватало, но по мере выхода людей в офис мест больше не становилось, и запись в зал превратилась в попытки поймать момент, когда освободится местечко. Как говорится, лень — двигатель прогресса: почти сразу как, начались трудности с запись, пришла в голову идея создать бота, который будет это делать за меня.
Читать дальше →
Total votes 21: ↑20 and ↓1+22
Comments6

Безопасность предприятий: ключевые угрозы и средства защиты

Reading time11 min
Views21K
В современном мире информация является значимым ресурсом, ее сохранность и правильное использование являются одними из первоочередных задач для развития организации и производства и снижения уровня разнообразных рисков. Важнейшим актуальным вопросом для предприятия является вопрос информационной безопасности.

image alt

Читать дальше →
Total votes 11: ↑10 and ↓1+15
Comments4

Как приручить Charles Proxy?

Reading time10 min
Views341K
Привет! Многие из тех, кто приходит к нам на собеседование на должность тестировщика, с гордостью заверяют, что они могут пользоваться Charles Proxy. Но когда погружаешься в техническую часть, то становится очевидно, что кандидат только слышал об этом инструменте. Давайте уже наконец скорее приручим эту вазу!


Читать дальше →
Total votes 27: ↑27 and ↓0+27
Comments25

Самые распространенные ошибки, которые допускают пользователи при эксплуатации SSD

Reading time8 min
Views166K


Привет, Хабр! Мы уже не раз писали о том, как правильно эксплуатировать SSD-накопители Kingston, чтобы добиться от них максимальной производительности при долгой наработке на отказ. Однако, мы по-прежнему замечаем комментарии, в которых пользователи высказывают мнение о ненадежности SSD-накопителей в целом, а также пишут нам о неудачных опытах их использования.

В последнем случае подобные неудачные покупки заставляют пользователей ПК сомневаться в том числе и в надежности наших устройств. Как итог, за годы существования блога на Хабре у нас накопилось достаточно материала, чтобы взглянуть на проблему эксплуатации SSD с другой стороны. В этот раз мы не будем рассказывать о том «как делать правильно», а наоборот — разберем наиболее частые ошибки, которые допускают владельцы SSD и попытаемся понять, какие из них действительно могут привести к быстрому износу твердотельных решений.

Самое частое описание проблемы, как правило звучит так «поставил в компьютер SSD-накопитель, а через год эксплуатации (а то и раньше) он начал тормозить», или же «скорости чтения/записи оказались заметно ниже заявленных производителем». В чем же кроется причина таких ситуаций?
Читать дальше →
Total votes 46: ↑34 and ↓12+34
Comments160

Vue 3 на Typescript

Reading time10 min
Views56K

vue3+ts


Популярность Typescript растет день ото дня. Javascript нетипизированный язык(или слабо типизированный, если точнее), и одна и та же переменная способна принимать и строку, и число, и даже объект. С одной стороны, это делает язык гибким, с другой, потенциально ведет к многочисленным ошибкам. Typescript создан, чтобы решить эту проблему. Vue старается не отставать от моды, и в новой версии фреймворка была значительно улучшена поддержка языка. Теперь переход на Typescript проще и приятнее, чем был раньше. Хороший повод научиться чему-то новому, тем более, что в требованиях к вакансиям он встречается все чаще и чаще.


В этой статье мы перепишем тестовое задание, которое я разбирал ранее, на Vue 3 и Typescript и вдобавок используем обновленные Vue-Router и Vuex(критики, вы были услышаны).


Update: код в статье был улучшен в соответствии с пожеланиями.

Читать дальше →
Total votes 3: ↑2 and ↓1+4
Comments18

Как я узнал о тайных услугах Мегафона

Reading time3 min
Views126K
Добрый день всем!

Началось всё с того, что поздно вечером мне позвонила девушка из Мегафона и пролепетала что-то про скидочные купоны-талоны, которые появятся в моём личном кабинете. Мол, это просто партнерская программа и она не хочет, чтобы я пропустил такую прекрасную возможность.
Читать дальше →
Total votes 151: ↑138 and ↓13+166
Comments293

Как стать фронтенд-разработчиком? Пошаговый гид в мир фронтенда

Reading time14 min
Views235K


Приветствую всех! Меня зовут Пучнина Анастасия, я ведущий разработчик в компании ДомКлик, занимаюсь фронтендом Витрины объявлений. Сегодня я хотела бы поделиться с вами своим мнением на тему того, что важно знать фронтенд-разработчику. Эта статья будет полезна тем, кто только начинает свой путь в разработке, или имеет опыт программирования в другой области и решил перейти на сторону фронтенда.

Содержание:

  1. Кто такой фронтендер и чем он занимается?
  2. С чего начать и что читать? Чек-лист обучения
  3. Какие трудности могут быть? Ошибки в начале пути
  4. Подготовка к собеседованию на Junior-разработчика

Читать дальше →
Total votes 29: ↑28 and ↓1+32
Comments22

Примеры использования наблюдателей в JavaScript

Reading time8 min
Views25K


Наблюдатель (observer) — это объект, который следит за состоянием определенного элемента и регистрирует происходящие в нем изменения. Элемент, который находится под наблюдением (чуть не написал «за которым организована слежка»), называется целевым. Наблюдатель может следить за состоянием как одного, так и нескольких элементов, а в некоторых случаях также и за потомками целевого элемента.

В JavaScript существует три основных вида наблюдателей:

  1. ResizeObserver
  2. IntersectionObserver
  3. MutationObserver

В данной статье я предлагаю сосредоточиться на практической реализации каждого наблюдателя.
Total votes 11: ↑10 and ↓1+16
Comments5

Почему твой бекап недостаточно быстр?

Reading time9 min
Views9.2K

Как и у каждой уважающей себя техподдержки, у инженеров Veeam есть свой список самых популярных поводов позвонить им в любое время дня и ночи. Это и вечно молодое “У вас неправильно работает ретенш”, и никогда не стареющее “У меня место на дисках кончилось, что делать?”, и прорва других. 

Однако среди них есть простой, казалось бы, вопрос. Он объясняется за 5 минут, но вот парадокс: его объяснение вылетает из головы в течение следующих тридцати секунд. Звучит этот чудо-вопрос примерно так: “После бекапа Veeam нарисовал мне непонятный график и написал, что у меня загрузка сорса 63%, прокси 48%, сети 99%, а таргета 0! А потом ещё и обозвал этот сорс ботлнеком, а у меня там ого-го какая железяка! И что вообще означают эти проценты?”

Сегодня объясню в текстовом виде, чтобы было куда возвращаться и перечитывать на досуге.

Bottleneck (бутылочное горлышко, если переводить в лоб) - самая медленная часть вашей бекапной инфраструктуры. Узкое место или слабое звено, если хотите. Тот самый нехороший человек, которого семеро ждать не должны, но получается, что ждут. Если переключиться на более технический язык, то эта та часть инфраструктуры, в которой данные в среднем проводят больше всего времени. То есть обрабатываются дольше всего. Получается, что это чистой воды вопрос производительности (перфоманса, как принято говорить). И знание ответа на этот вопрос позволит нам понять, какую часть в цепочке обработки данных надо ускорить, дабы повысить общую скорость процесса.

И тут откровение номер раз: чтобы говорить о перфомансе на серьёзных щщах, надо напрямую измерять интересующие нас метрики и проводить их аналитику. Это статистика загруженности дисков, процессоров, памяти и так далее. Словом, построить внутри одного продукта ещё один продукт, только мониторинговый. Поэтому Veeam ничего напрямую не измеряет, однако в логах можно найти шесть метрик, сделанных путём опосредованных измерений. 

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

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments1

Откуда берутся логи? Veeam Log Diving

Reading time8 min
Views3.7K

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

А что вообще такое эти ваши логи? По мнению большинства логам любого приложения должна быть отведена роль этакой всемогущей сущности, которая большую часть времени прозябает где-то на задворках, но в нужный момент появляется из ниоткуда в сияющих доспехах и всех спасает. То есть в них должно быть всё, от малейших ошибок в каждом компоненте, до отдельных транзакций базы. И умещаться это всё должно в два мегабайта. Это же просто текст! Не могут текстовые файлы занимать десятки гигабайт, я где-то это слышал!

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments0

TypeScript для бэкенд-разработки

Reading time9 min
Views14K
Язык Java по-прежнему правит бал в backend-разработке. На то немало причин: быстрота, безопасность (если, конечно, закрыть глаза на null-указатели), плюс обширная, хорошо протестированная экосистема. Но в эру микросервисов и гибкой разработки стали важнее и другие факторы. В некоторых системах бывает не обязательно держать пиковую производительность и располагать надежной экосистемой стабильных зависимостей, если речь идет о простеньком сервисе, выполняющем CRUD-операции и преобразование данных. Более того, многие системы приходится оперативно строить и перестраивать, чтобы идти в ногу с быстрой итеративной разработкой фич.
Читать дальше →
Total votes 7: ↑6 and ↓1+9
Comments2

Настройка Webpack 5 с нуля

Reading time10 min
Views208K


Узнайте, как использовать вебпак для сборки JavaScript, изображений, шрифтов и стилей, а также как запускать сервер для разработки

Если вы раньше использовали вебпак 4, вот некоторые отличия от 5 версии:

  • команда «webpack-dev-server» теперь выглядит как «webpack-serve»
  • отдельная установка file-loader, raw-loader и url-loader больше не требуется, вы можете использовать встроенные загрузчики ресурсов (asset modules)
  • полифилы для Node.js больше не поддерживаются, поэтому если, например, вы получили ошибку для stream, необходимо добавить пакет «stream-browserify» в качестве зависимости и { stream: «stream-browserify» } в качестве алиаса в настройки вебпака

Что такое вебпак?


По большей части, сайты больше не пишутся на чистом HTML с небольшим количеством JavaScript — часто они создаются только с помощью JavaScript. Поэтому возникает необходимость в сборке, минификации и транспиляции кода. Вот где вебпак приходит на помощь.

Вебпак — это сборщик модулей. Он служит для упаковки кода для использования браузером. Он позволяет использовать последние возможности JavaScript с помощью Babel или использовать TypeScript и компилировать его в кроссбраузерный минифицированный код. Он также позволяет импортировать статические ресурсы в JavaScript.

Для разработчиков вебпак также предоставляет сервер для разработки, который умеет обновлять модули и стили на лету при сохранении файла. Инструменты командной строки, такие как «vue create» и «react-create-app» используют вебпак за сценой, но вы легко можете создать собственную настройку вебпака для указанных фреймворков.

Вебпак также умеет делать много других вещей, но данная статья посвящена основам его настройки и использования.
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments12

Основные команды bash, git, npm и yarn, а также немного о package.json и semver

Reading time14 min
Views73K
Доброго времени суток, друзья!

Предлагаю вашему вниманию небольшую шпаргалку по основным командам bash, git, npm, yarn, package.json и semver.

Условные обозначения: [dir-name] — означает название директории, | — означает «или».

Рекомендую вводить каждую команду в терминале и внимательно изучать вывод, так вы быстро их запомните и определите, какие команды вам нужны, а какие нет.

Приношу извинения за возможные ошибки и опечатки. Буду рад любым замечаниям и предложениям.

Без дальнейших предисловий.

Оглавление:

Читать дальше →
Total votes 9: ↑6 and ↓3+5
Comments5

Information

Rating
Does not participate
Registered
Activity