CSR, SSR, SSG, ISR и другие аббревиатуры
#javascript #pattern
В данной статье рассмотрим почему создали паттерны для рендеринга, а также рассмотрим их работу.
- https://developer-log.vercel.app/posts/render-pattern
- https://vc.ru/dev/846778-csr-ssr-ssg-isr-i-drugie-abbreviatury
#javascript #pattern
В данной статье рассмотрим почему создали паттерны для рендеринга, а также рассмотрим их работу.
- https://developer-log.vercel.app/posts/render-pattern
- https://vc.ru/dev/846778-csr-ssr-ssg-isr-i-drugie-abbreviatury
developer-log.vercel.app
ЛР: CSR, SSR, SSG, ISR и другие аббревиатуры
❤4
Event Loop в деталях
#javascript
Если вас часто спрашивали на собеседованиях про Event Loop и давали задачки на последовательность выведения console.log, то вам будет интересно👨🦳
В данной статье разберем что такое Event Loop, как он работает под капотом и почему он мешает console.log
- https://developer-log.vercel.app/posts/event-loop-details
- https://habr.com/ru/articles/762618/
#javascript
Если вас часто спрашивали на собеседованиях про Event Loop и давали задачки на последовательность выведения console.log, то вам будет интересно
В данной статье разберем что такое Event Loop, как он работает под капотом и почему он мешает console.log
- https://developer-log.vercel.app/posts/event-loop-details
- https://habr.com/ru/articles/762618/
Please open Telegram to view this post
VIEW IN TELEGRAM
developer-log.vercel.app
ЛР: Event Loop в деталях
👍18🔥7❤4
Модули в Javascript
#javascript
Почему Node.js использует require() вместо того чтобы использовать import() из ES6?
Как создавали модули до выпуска ES6 и причем тут IIFE?
Все это в статье)
https://developer-log.vercel.app/posts/js-modules
#javascript
Почему Node.js использует require() вместо того чтобы использовать import() из ES6?
Как создавали модули до выпуска ES6 и причем тут IIFE?
Все это в статье)
https://developer-log.vercel.app/posts/js-modules
developer-log.vercel.app
ЛР: Модули в Javascript
🔥7
Долго думал вести ли дальше канал, ведь я пишу по одной статье раз в 2 года, пока не пришел к мысли "А почему бы и нет?"
Я решил немного сменить формат ведения канала: я создавал данный канал для того чтобы делиться полезными статьями и давать ссылки на свои статьи, однако, я понял, что такой формат сильно выматывает. Далеко не всегда есть чем поделиться, да и на том же хабре всё скатилось в банальное "я сделал <никому не нужная вещь> с помощью говна и палок", а к непосредственным IT-технологиям там посты теперь крайне мало относятся.
Теперь, кроме статей, я также буду просто делиться мыслями, задавать вопросы, и канал больше станет похож на личный блог, а не на дайджест полезных статей. Будет лучше, если данный канал будет кому-то нравиться/не нравиться, нежели он будет и вовсе мертвым.
Я решил немного сменить формат ведения канала: я создавал данный канал для того чтобы делиться полезными статьями и давать ссылки на свои статьи, однако, я понял, что такой формат сильно выматывает. Далеко не всегда есть чем поделиться, да и на том же хабре всё скатилось в банальное "я сделал <никому не нужная вещь> с помощью говна и палок", а к непосредственным IT-технологиям там посты теперь крайне мало относятся.
Теперь, кроме статей, я также буду просто делиться мыслями, задавать вопросы, и канал больше станет похож на личный блог, а не на дайджест полезных статей. Будет лучше, если данный канал будет кому-то нравиться/не нравиться, нежели он будет и вовсе мертвым.
🤝16❤7👍4
К слову, с момента создания прошлой версии лога разработчика прошло немало времени и я опробовал немало технологий.
Я понял что сложный текст всегда легче/лучше рассказывать с интерактивными примерами, поэтому написал новую версию блога, с которой сейчас вас и познакомлю.
---
Давным-давно я работал в компании, где разрабатывали корпоративный мессенджер, там я и познакомился с технологией WebRTC.
Если вы когда-нибудь задумывались над тем, как работают звонки в Telegram, Zoom, Skype и других сервисах, где можно "общаться голосом", то у меня для вас подгон.
К слову, в статье есть интерактивные примеры и можно будет покликать, посмотреть как и что работает.
https://tokiory.vercel.app/articles/get-started-webrtc
Я понял что сложный текст всегда легче/лучше рассказывать с интерактивными примерами, поэтому написал новую версию блога, с которой сейчас вас и познакомлю.
---
Давным-давно я работал в компании, где разрабатывали корпоративный мессенджер, там я и познакомился с технологией WebRTC.
Если вы когда-нибудь задумывались над тем, как работают звонки в Telegram, Zoom, Skype и других сервисах, где можно "общаться голосом", то у меня для вас подгон.
К слову, в статье есть интерактивные примеры и можно будет покликать, посмотреть как и что работает.
https://tokiory.vercel.app/articles/get-started-webrtc
tokiory.vercel.app
Туториал по WebRTC
WebRTC это, пожалуй, одна из самых интересных технологий, с которой мне довелось работать.
В данном туториале мы рассмотрим основы работы с WebRTC.
В данном туториале мы рассмотрим основы работы с WebRTC.
🔥11✍2 2💋1 1
Современные поисковые движки
Меня до сих пор удивляет, что в мире еще нет поискового движка, который бы просто выводил ссылки. Обычным списком без всего остального мусора.
Нет, ну серьезно, каждый движок грузит какие-то картинки, карты, акции и предложения, но ни в одном из них нет режима минимализма.
Ты заходишь в гугл и видишь кучу рекламы
Ты заходишь в яндекс и видишь кучу рекламы
Ты заходишь в DuckDuckGo и видишь что вверх попадают сайты зачастую не относящиеся к запросу
Perplexity парсит сайты и выдает выжимку, но мне не нужен текст нейронки, мне нужны ссылки
ChatGPT (если его использовать как поисковик) часто галлюционирует и из него (без дополнительного промпта) не выманишь источников
Когда пользователь ищет что-то - он надеется как можно меньше времени провести в поисковике, но сам поисковик будто вынуждает пользователя отвлекаться и искать то, что нужно пользователю, всё дольше и дольше
Меня до сих пор удивляет, что в мире еще нет поискового движка, который бы просто выводил ссылки. Обычным списком без всего остального мусора.
Нет, ну серьезно, каждый движок грузит какие-то картинки, карты, акции и предложения, но ни в одном из них нет режима минимализма.
Ты заходишь в гугл и видишь кучу рекламы
Ты заходишь в яндекс и видишь кучу рекламы
Ты заходишь в DuckDuckGo и видишь что вверх попадают сайты зачастую не относящиеся к запросу
Perplexity парсит сайты и выдает выжимку, но мне не нужен текст нейронки, мне нужны ссылки
ChatGPT (если его использовать как поисковик) часто галлюционирует и из него (без дополнительного промпта) не выманишь источников
Когда пользователь ищет что-то - он надеется как можно меньше времени провести в поисковике, но сам поисковик будто вынуждает пользователя отвлекаться и искать то, что нужно пользователю, всё дольше и дольше
🔥11 5❤1 1
Процесс ревью в Gitlab
Меня каждый раз коробит с того, как сделано ревью в Gitlab. Интерфейс ревью устарел лет этак на 5, уведомления не приходят, а сами замечания нельзя пометить тегами.
Для меня остается загадкой как можно было не сделать пуш-уведомления на комментарии?
Почему мне приходится смотреть ПОЧТУ для того чтобы увидеть что происходит с моим PR или PR разработчика, которого нужно проревьюить?
Большая часть разработчиков заходит на почту только для того чтобы ввести OTP-код при входе в какой-либо сервис. Для ведения диалогов существует Telegram, Slack, <вставьте любой мессенджер>, никто не переписывается в почте и не заходит в неё просто так (по крайней мере в пространстве СНГ). У большинства людей, которых я знаю, почта находится в состоянии последнего издыхания, где куча спама перемешана с сообщениями "Кто-то вошел в ваш аккаунт".
Кто. Придумал. Присылать. Уведомления. На. Почту?
Меня каждый раз коробит с того, как сделано ревью в Gitlab. Интерфейс ревью устарел лет этак на 5, уведомления не приходят, а сами замечания нельзя пометить тегами.
Для меня остается загадкой как можно было не сделать пуш-уведомления на комментарии?
Почему мне приходится смотреть ПОЧТУ для того чтобы увидеть что происходит с моим PR или PR разработчика, которого нужно проревьюить?
Большая часть разработчиков заходит на почту только для того чтобы ввести OTP-код при входе в какой-либо сервис. Для ведения диалогов существует Telegram, Slack, <вставьте любой мессенджер>, никто не переписывается в почте и не заходит в неё просто так (по крайней мере в пространстве СНГ). У большинства людей, которых я знаю, почта находится в состоянии последнего издыхания, где куча спама перемешана с сообщениями "Кто-то вошел в ваш аккаунт".
Кто. Придумал. Присылать. Уведомления. На. Почту?
❤9 3 1
Шелл
Каждый раз при сбросе на заводские настройки устройства на MacOS/Linux/Windows я задаюсь одним и тем же вопросом: какой шелл использовать?
С одной стороны, есть стандарт де-факто - Bash. Он простой, быстрый, но на этом его плюсы заканчиваются. У Bash большая экосистема, но у меня всегда было ощущение, что она развивается с невероятно медленной скоростью. Те же плагины всегда было удобнее и приятнее ставить на Zsh, а с Bash всё время были какие-то проблемы (это, если что, субъективная оценка)
В маках по дефолту идёт Zsh, но он невероятно медленный, если сравнивать его с тем же Bash. Да, плагины на него устанавливать удобно и экосистема кажется ещё больше, нежели у Bash. Тот же oh-my-zsh появился до oh-my-bash и oh-my-fish, однако, многие работают в терминале, потому что он позволяет делать сложные вещи невероятно просто и быстро.
Fish всегда казался мне черновым интерпретатором команд. Он невелирует ужасный синтаксис Bash и Zsh, потому что не является POSIX-совместимым, однако, у него очень маленькое коммьюнити и вы вряд ли найдете огромных гайдов по настройке как для Zsh и Bash.
Одной из проблем Fish лично для меня был внешний вид. Если для Zsh и Bash придумали нормальные темы, то из-за дефолтных тем для Fish мне хотелось выколоть глаза.
К счастью, я нашел промпт, который работает и на Zsh, и на Bash, и на Fish — Starship
Данная оболочка смогла объединить в себе хороший информативный дизайн и скорость.
Каждый раз при сбросе на заводские настройки устройства на MacOS/Linux/Windows я задаюсь одним и тем же вопросом: какой шелл использовать?
С одной стороны, есть стандарт де-факто - Bash. Он простой, быстрый, но на этом его плюсы заканчиваются. У Bash большая экосистема, но у меня всегда было ощущение, что она развивается с невероятно медленной скоростью. Те же плагины всегда было удобнее и приятнее ставить на Zsh, а с Bash всё время были какие-то проблемы (это, если что, субъективная оценка)
В маках по дефолту идёт Zsh, но он невероятно медленный, если сравнивать его с тем же Bash. Да, плагины на него устанавливать удобно и экосистема кажется ещё больше, нежели у Bash. Тот же oh-my-zsh появился до oh-my-bash и oh-my-fish, однако, многие работают в терминале, потому что он позволяет делать сложные вещи невероятно просто и быстро.
Fish всегда казался мне черновым интерпретатором команд. Он невелирует ужасный синтаксис Bash и Zsh, потому что не является POSIX-совместимым, однако, у него очень маленькое коммьюнити и вы вряд ли найдете огромных гайдов по настройке как для Zsh и Bash.
Одной из проблем Fish лично для меня был внешний вид. Если для Zsh и Bash придумали нормальные темы, то из-за дефолтных тем для Fish мне хотелось выколоть глаза.
К счастью, я нашел промпт, который работает и на Zsh, и на Bash, и на Fish — Starship
Данная оболочка смогла объединить в себе хороший информативный дизайн и скорость.
✍8 2
Коллеги, ко мне пришёл один из наших инвесторов (на картинке выше) и сказал что он крайне недоволен нашим отделом.
Мы выполнили все задачи, кроме двух самых важных, поэтому планируется двухдневный спринт:
12.06 (Сб): Пьем пиво и кушаем
13.06 (Вс): Пьем чуть меньше пива и кушаем, компенсируем острую недостаточность пива активным отдыхом
Бегом выполнять задачи!
Мы выполнили все задачи, кроме двух самых важных, поэтому планируется двухдневный спринт:
12.06 (Сб): Пьем пиво и кушаем
13.06 (Вс): Пьем чуть меньше пива и кушаем, компенсируем острую недостаточность пива активным отдыхом
Бегом выполнять задачи!
Я уже как-то писал о том, что новостная лента на Habr откровенно скатилась, но тогда не затрагивал другие площадки и не раскрывал этот вопрос подробнее.
К сожалению, на данный момент в русскоязычном пространстве нет ни одной качественной платформы, где бы системно публиковались материалы о разработке и смежных отраслях.
Habr, который ещё года 4 назад служил опорой для профессионального IT-сообщества, со временем превратился в витрину для крупных компаний. Сегодня там либо рекламные материалы от бигтехов, выпускаемых раз в несколько недель ради охвата и узнаваемости, либо статьи, которые не дают никакой практической ценности. Спору нет, полезные материалы всё ещё появляются, но это единичные публикации.
VC, который поначалу подавал надежды, окончательно ушёл в формат «бизнес-историй»: советы, как заработать миллион, или жалобы на сервисы и компании. Впрочем, данный сервис изначально рассчитывался на аудиторию связанную больше с бизнесом, а не именно с IT.
А больше особо вариантов и нет...
Есть Medium, который заблокирован. Есть dailydev, малопопулярный в русскоязычных странах. Есть Hacker News, который служит скорее агрегатором ссылок. Но все эти ресурсы либо не локализованы, либо не ориентированы на аудиторию из СНГ.
В итоге, на рынке остались лишь крупные платформы общего характера, где IT-аудитория — далеко не в приоритете.
Остаётся только надеяться, что со временем появится площадка, ориентированная на технических специалистов и профессиональные статьи 👀
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9 1
Тест-селекторы
Принёс вам полезное. При написании E2E-тестов я часто сталкивался с дилеммой, как правильно организовывать селекторы, чтобы они были устойчивы к изменениям.
Хотя сама тема стара как мир, по ней всегда существует множество совершенно противоположных мнений, поэтому я решил разобраться и найти более или менее универсальный способ организации селекторов.
https://tokiory.vercel.app/articles/test-selectors
---
by: Лог Разработчика
Принёс вам полезное. При написании E2E-тестов я часто сталкивался с дилеммой, как правильно организовывать селекторы, чтобы они были устойчивы к изменениям.
Хотя сама тема стара как мир, по ней всегда существует множество совершенно противоположных мнений, поэтому я решил разобраться и найти более или менее универсальный способ организации селекторов.
https://tokiory.vercel.app/articles/test-selectors
---
by: Лог Разработчика
🔥8❤2
Каждый раз, когда я подключаю ORM в новый проект, у меня всплывает один и тот же вопрос: а оно мне вообще нужно?
С одной стороны, ORM — это удобно. Написал модель, сделал миграцию, получил запросы из коробки, иногда даже CRUD не приходится писать. И вроде бы все хорошо. Но через несколько месяцев, когда проект начинает обрастать бизнес-логикой, начинается самое интересное.
То, что на первых порах казалось "магией", превращается в тормоз развития.
Сложные join'ы?
Нужно писать руками, ORM их или не умеет, или будет выполнять их так, что лучше бы я этого не видел.
Гибкая фильтрация по условию?
ORM генерирует монструозные SQL-запросы с ненужными подзапросами. И если в начале ты этого даже не замечаешь, то на проде это превращается в проблему.
Ленивая загрузка, связи, вложенные связи — вся эта "магия" работает до первой нетипичной бизнес-задачи. А дальше ты воюешь уже не с задачей, а с фреймворком, который "помогает". Пишешь DAO или Query Service, руками формируешь SQL, или используешь query builder. Потому что иногда проще написать три строки SQL, чем пытаться заставить ORM делать то, что тебе нужно.
Проблема не в том, что ORM плохие. Проблема в том, что магия не масштабируется. Она работает в маленьких проектах, она хороша для MVP, но в продакшене, где важна прозрачность и предсказуемость, тебе нужна не магия, а контроль.
by: Лог Разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3✍2 2
Нативные инпуты в браузерах — это какой-то застывший во времени реликт. Казалось бы, веб уже давно ушёл вперёд, а мы до сих пор мучаемся с базовыми компонентами форм, которые не дают почти никакой свободы для кастомизации. В 2025 году всё ещё нет нормального способа настроить селект, добавить комбобокс или сделать приличный дейтпикер. Про свитч я вообще молчу.
Возьмём селект. Это же классика, основа основ. Хотите поменять шрифт или цвет опций? Добавить иконку или анимацию для выпадающего списка? Всё, что можно, — это покрутить фон, рамку и отступы. И это при том, что современные интерфейсы требуют гибкости. В итоге приходится либо смириться с унылым видом, либо писать кастомный компонент на JavaScript. А это время, баги и вопросы с доступностью. Почему в 2025 году я должен изобретать велосипед, чтобы селект выглядел не как из Windows XP?
Комбобокс, он же селект с поиском. Его просто нет в нативном HTML. Пользователи хотят фильтровать опции прямо в выпадающем списке, но браузеры предлагают только
<datalist>
. И это не решение. Во-первых, поддержка в браузерах хромает — Safari, как обычно, выделяется. Во-вторых, стилизовать <datalist>
так, чтобы он выглядел современно, почти нереально. В-третьих, если вам нужно подгружать данные асинхронно, например, для списка из тысяч элементов, — готовьтесь писать всё с нуля. Итог: опять тянем в проект кастомные библиотеку для компонента или пишем кастом на Vue/React/Svelte. Зачем столько усилий для базовой вещи?Дейтпикеры — отдельная боль. Нативный
<input type="date">
есть, но попробуйте сделать его похожим на дизайн вашего приложения. Стилизация? Никакой. В каждом браузере он выглядит по-своему: в Chrome одно, в Firefox другое, в Safari вообще сюрприз. Хотите кастомный формат даты или поддержку диапазонов? Пишите свой компонент. А если нужен мультиязычный интерфейс или нестандартный календарь? Библиотеки типа Flatpickr или Datepicker.js в помощь, но опять же — почему это не решено на уровне браузера?Про свитч вообще говорить смешно. Его просто нет. Хотите красивый тоггл? Оборачивайте
<input type="checkbox">
в <div>
, стилизуйте, подключайте JavaScript для анимаций. И это за 20 лет развития веба.. Это же не ракетостроение, почему нельзя взять логику из чекбокса и просто поменять UI?В итоге, разработчики, тратят кучу времени на то, чтобы просто привести базовые элементы к современному виду. Библиотеки и кастомные решения спасают, но это лишний код, лишние зависимости и лишние баги. Хочется, чтобы браузеры наконец-то дали нормальные инструменты для кастомизации..
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14 5🔥2
Я тут на днях покумекал и решил сделать версию сайта прямо в телеграммовском мини-аппе, для того чтобы вам было удобнее читать статьи.
Думаю, что через недельку-вторую завезу в приложение кэширование, для того чтобы можно было читать статьи оффлайн.
В обозримом будущем, я планирую посмотреть зайдет ли вам формат "нотбуков" - статей, где материал написан слева, а сами примеры справа, однако, на их создание уходит намного больше времени, нежели на написание обычных статей, ибо темы будут сильно развернуты.
t.me/developerlog_bot/devtokiory
Думаю, что через недельку-вторую завезу в приложение кэширование, для того чтобы можно было читать статьи оффлайн.
В обозримом будущем, я планирую посмотреть зайдет ли вам формат "нотбуков" - статей, где материал написан слева, а сами примеры справа, однако, на их создание уходит намного больше времени, нежели на написание обычных статей, ибо темы будут сильно развернуты.
t.me/developerlog_bot/devtokiory
Telegram
/dev/tokiory
/dev/tokiory — место где обсуждаются технологии, обмениваются знаниями и просто смотрят на всякие интересности
❤5 4🔥2💅1
На днях копался в API телеграм, чтобы узнать что там нового придумали и по ходу чтения решил написать статью по мини-приложениям в Telegram
Приятного чтения!🍑
🗒 Открыть на сайте
🤖 Открыть в боте
P.S. На подходе статья по RabbitMQ, стараюсь сделать её максимально визуальной😮
by: Лог Разработчика
Приятного чтения!
P.S. На подходе статья по RabbitMQ, стараюсь сделать её максимально визуальной
by: Лог Разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM