Які є альтернативи Nest.js?
Я багато говорю про Nest.js і про те, що це дуже крутий Node.js фреймворк, але він не єдиний.
Є ще AdonisJS, який має схожі принципи, але менш роздутий і, як на мене, краще підходить для невеликих монолітів та простих мікросервісів.
Кому цікаво подивитися, що це за звір, - заходьте в документацію
Я багато говорю про Nest.js і про те, що це дуже крутий Node.js фреймворк, але він не єдиний.
Є ще AdonisJS, який має схожі принципи, але менш роздутий і, як на мене, краще підходить для невеликих монолітів та простих мікросервісів.
Кому цікаво подивитися, що це за звір, - заходьте в документацію
Adonisjs
AdonisJS - The batteries-included TypeScript framework
Everything you need in one Node.js framework. Authentication, ORM, validation, mail, file uploads, testing - all working together. Built for teams who want to ship
👍8🤡1
Нове відео на каналі🍾🔥🔥
Так як наближається сезон хайрингу, я вирішив зробити невелике відео про найбільш розповсюджені помилки на технічному інтервʼю.
Всі вони засновані на моєму досвіді, тому щоб не наступати на ті ж самі граблі, вам достатньо подивитись відео 😁
📎 - https://www.youtube.com/watch?v=CmkpNrA3j3k
Так як наближається сезон хайрингу, я вирішив зробити невелике відео про найбільш розповсюджені помилки на технічному інтервʼю.
Всі вони засновані на моєму досвіді, тому щоб не наступати на ті ж самі граблі, вам достатньо подивитись відео 😁
📎 - https://www.youtube.com/watch?v=CmkpNrA3j3k
YouTube
5 помилок, через які ви провалюєте технічне інтервʼю
Сьогодні поговоримо про набільш поширені помилки, які роблять розробники на технічному інтервʼю.
Підготовка до технічного інтервʼю - https://devs-hive.tech/
Linkedin - тут пишу багато цікавого про ІТ
https://www.linkedin.com/in/oleksandr-kazmirchuk-0aba41330/…
Підготовка до технічного інтервʼю - https://devs-hive.tech/
Linkedin - тут пишу багато цікавого про ІТ
https://www.linkedin.com/in/oleksandr-kazmirchuk-0aba41330/…
🔥15❤5👍4
Для чого потрібен Graceful Degradation?
Anonymous Quiz
5%
Щоб автоматично збільшувати кількість інстансів сервісів під навантаженням
52%
Щоб система продовжувала частково працювати навіть при збоях окремих сервісів
6%
Щоб повторювати невдалі запити, доки зовнішній сервіс не відповість успішно
25%
Щоб зупиняти залежні компоненти системи при виникненні критичної помилки
12%
Не знаю
👍3❤1
Нас вже більше 1000 😍😍😍
Це дуже мотивує писати далі й ділитися ще більше інженерним контентом.
Дякую всім за те, що читаєте ❤️
Це дуже мотивує писати далі й ділитися ще більше інженерним контентом.
Дякую всім за те, що читаєте ❤️
❤45👍5🔥4
Elasticsearch більше не нужонний! 😱😱😱
Заява, звісно, доволі гучна, але зараз усе розпишу. Любителі PostgreSQL, робіть кохве - зараз буде цікаво ☕️
У 2026 році Tiger Data оголосила про production-ready реалізацію BM25 у PostgreSQL -
BM25 - це алгоритм ранжування результатів повнотекстового пошуку за релевантністю. Простими словами, він визначає, які документи найкраще відповідають пошуковому запиту, і показує їх першими.
В цілому, PostgreSQL має повнотекстовий пошук з коробки, якого достатньо для більшості простих кейсів. Але коли потрібен ranking за релевантністю чи top-K search, стандартного пошуку вже недостатньо.
У таких випадках раніше часто використовували сторонні search engines, наприклад Elasticsearch або Solr. Вони створюють власні пошукові індекси, а дані з PostgreSQL постійно туди реплікуються. Такий підхід створював дуже багато проблем з синхронізацією і eventual consistency.
З появою
Також,
📎 - https://github.com/timescale/pg_textsearch
Заява, звісно, доволі гучна, але зараз усе розпишу. Любителі PostgreSQL, робіть кохве - зараз буде цікаво ☕️
У 2026 році Tiger Data оголосила про production-ready реалізацію BM25 у PostgreSQL -
pg_textsearch. BM25 - це алгоритм ранжування результатів повнотекстового пошуку за релевантністю. Простими словами, він визначає, які документи найкраще відповідають пошуковому запиту, і показує їх першими.
В цілому, PostgreSQL має повнотекстовий пошук з коробки, якого достатньо для більшості простих кейсів. Але коли потрібен ranking за релевантністю чи top-K search, стандартного пошуку вже недостатньо.
У таких випадках раніше часто використовували сторонні search engines, наприклад Elasticsearch або Solr. Вони створюють власні пошукові індекси, а дані з PostgreSQL постійно туди реплікуються. Такий підхід створював дуже багато проблем з синхронізацією і eventual consistency.
З появою
pg_textsearch у багатьох випадках можна відмовитися від сторонніх пошукових сервісів і реалізувати складніший пошук безпосередньо в PostgreSQL. Звичайно, для дуже складних сценаріїв все ще можуть знадобитися спеціалізовані рішення по типу Elasticsearch, але на практиці вони зустрічаються не так часто.Також,
pg_textsearch можна комбінувати з pgvector для гібридного пошуку.📎 - https://github.com/timescale/pg_textsearch
GitHub
GitHub - timescale/pg_textsearch: PostgreSQL extension for BM25 relevance-ranked full-text search. Postgres OSS licensed.
PostgreSQL extension for BM25 relevance-ranked full-text search. Postgres OSS licensed. - timescale/pg_textsearch
👍14🔥5❤4
Push vs Pull у брокерах повідомлень 💌💌💌
Одна з речей, які дадуть вам краще розуміння роботи брокерів - це моделі доставки повідомлень.
Насправді все доволі просто й логічно, але багато хто не приділяє цьому уваги. Через це потім не до кінця зрозуміло, коли і який брокер варто використовувати.
А від незнання, в вашій голові завжди буде звучати фраза: «беремо Kafka, вона сама лучча» 😁
Push
Брокер сам відправляє повідомлення consumer-у, щойно воно з’явилося. Такий спосіб найбільш простий і очевидний, оскільки дозволяє дуже швидко отримати та обробити повідомлення.
Але є суттєвий мінус - повідомлень може надходити більше, ніж consumer здатен обробити. Виникає backpressure: повідомлення накопичуються швидше, ніж обробляються.
На практиці, в умовному Datadog, ви будете бачити графік де розмір черги лінійно повзе вгору. Зазвичай, всі роблять вигляд, що не бачать його, а потім рандомний розробник отримує по шапці і страждаючи фіксить корінь проблеми.
Pull
Тут система трохи складніша. Consumer сам запитує у брокера наступну порцію повідомлень і таким чином контролює швидкість їх отримання. Це спрощує роботу з backpressure (але тільки частково), оскільки consumer сам вирішує, коли забирати нові повідомлення.
Загалом pull-модель дає consumer-у більше контролю над тим, коли, скільки і як опрацьовувати повідомлення.
Яскравий представник pull-моделі - Kafka.
#microservices #brokers
Одна з речей, які дадуть вам краще розуміння роботи брокерів - це моделі доставки повідомлень.
Насправді все доволі просто й логічно, але багато хто не приділяє цьому уваги. Через це потім не до кінця зрозуміло, коли і який брокер варто використовувати.
А від незнання, в вашій голові завжди буде звучати фраза: «беремо Kafka, вона сама лучча» 😁
Push
Брокер сам відправляє повідомлення consumer-у, щойно воно з’явилося. Такий спосіб найбільш простий і очевидний, оскільки дозволяє дуже швидко отримати та обробити повідомлення.
Але є суттєвий мінус - повідомлень може надходити більше, ніж consumer здатен обробити. Виникає backpressure: повідомлення накопичуються швидше, ніж обробляються.
На практиці, в умовному Datadog, ви будете бачити графік де розмір черги лінійно повзе вгору. Зазвичай, всі роблять вигляд, що не бачать його, а потім рандомний розробник отримує по шапці і страждаючи фіксить корінь проблеми.
Pull
Тут система трохи складніша. Consumer сам запитує у брокера наступну порцію повідомлень і таким чином контролює швидкість їх отримання. Це спрощує роботу з backpressure (але тільки частково), оскільки consumer сам вирішує, коли забирати нові повідомлення.
Загалом pull-модель дає consumer-у більше контролю над тим, коли, скільки і як опрацьовувати повідомлення.
Яскравий представник pull-моделі - Kafka.
#microservices #brokers
👍16🔥3
❤4
Новий розіграш підʼїхав! ☕️
Цього разу, книга по православному JavaScript.
Книга не моя, а Myloslava Martynova за що їй дуууже велике Дякую!
Умови цього разу трошки інші, книгу зможемо відправити тільки по Україні. Для участі в розіграші напишіть js, @нік нейм, наприклад js, @o_kazm.
Розіграємо книгу 22.08 (субота) біля 11:00 по Києву.
Також, лишаю LinkedIn Милослави, вона пише багато про навчання - https://www.linkedin.com/in/myloslava-martynova/
Цього разу, книга по православному JavaScript.
Книга не моя, а Myloslava Martynova за що їй дуууже велике Дякую!
Умови цього разу трошки інші, книгу зможемо відправити тільки по Україні. Для участі в розіграші напишіть js, @нік нейм, наприклад js, @o_kazm.
Розіграємо книгу 22.08 (субота) біля 11:00 по Києву.
Також, лишаю LinkedIn Милослави, вона пише багато про навчання - https://www.linkedin.com/in/myloslava-martynova/
👍25❤10🔥1🤡1
Для чого потрібен Strangler Fig Pattern?
Anonymous Quiz
33%
Щоб поступово мігрувати legacy систему
11%
Щоб автоматично відновлювати сервіс після падіння
14%
Щоб синхронізувати дані між усіма мікросервісами
8%
Щоб обмежувати кількість запитів до API
34%
Не знаю
❤4👏1
Я декілька разів писав про Eventual Consistency, і нещодавно Мамкін Архітектор розписав цікавий кейс, де ця модель може добряче підпалити зад користувачу 😁
Хороший приклад того, як цілком нормальне архітектурне рішення може вилізти дуже неприємним UX.
Посилання на допис - https://t.me/mamkin_architect/676
Хороший приклад того, як цілком нормальне архітектурне рішення може вилізти дуже неприємним UX.
Посилання на допис - https://t.me/mamkin_architect/676
Telegram
Мамкін Архітектор
Для звʼязку пишіть @ska_9000
Канал про айтішечку, автор якого трохи пожив життя і може пояснити за бекенд, веб, мобайл, автоматизацію, клауди або як раніше було краще.
Канал про айтішечку, автор якого трохи пожив життя і може пояснити за бекенд, веб, мобайл, автоматизацію, клауди або як раніше було краще.
❤8
Для чого в Nest.js потрібні Guards?
Anonymous Quiz
74%
Щоб вирішувати, чи дозволено виконувати запит
9%
Щоб перехоплювати й змінювати відповідь API
2%
Щоб обробляти помилки в API
10%
Щоб створювати та контролювати сервіси в Dependency Injection
4%
Не знаю
👍6🔥1😁1🤡1
Devs Hive
Новий розіграш підʼїхав! ☕️ Цього разу, книга по православному JavaScript. Книга не моя, а Myloslava Martynova за що їй дуууже велике Дякую! Умови цього разу трошки інші, книгу зможемо відправити тільки по Україні. Для участі в розіграші напишіть js, @нік…
Книгу розіграно!🍾🔥🔥
Всього прийняло участь 95 людей, а переможець в нас @bulmak_nadiia (напиши пліз поштову інформацію сюди @o_kazm, щоб ми відправили книгу)
Хто не виграв, не розстраюйтесь, розіграші ще будуть і походу багато 😁📕📕
Всього прийняло участь 95 людей, а переможець в нас @bulmak_nadiia (напиши пліз поштову інформацію сюди @o_kazm, щоб ми відправили книгу)
Хто не виграв, не розстраюйтесь, розіграші ще будуть і походу багато 😁📕📕
🍾17🔥5❤2
Для чого потрібен Dependency Injection?
Anonymous Quiz
7%
Щоб автоматично створювати новий потік для кожної залежності
15%
Щоб приховувати реалізацію класу від інших модулів
2%
Щоб кешувати всі створені об’єкти в пам’яті
73%
Щоб об’єкт отримував залежності ззовні
3%
Не знаю
👍7
Мав трохи вільного часу і завайбкодив можливість створювати контент для користувачів.
Якщо хочете написати статтю або поділитися питаннями з інтервʼю — реєструйтеся на сайті та заходьте в «Мої публікації».
Після створення контенту я перевірю, чи це не якийсь скам 😁, і якщо все ок — опублікую.
Особливо цікаві питання по frontend, бо зараз на сайті переважає backend, а по frontend є лише кілька питань.
📎 - https://devs-hive.tech/uk/my-content
Якщо хочете написати статтю або поділитися питаннями з інтервʼю — реєструйтеся на сайті та заходьте в «Мої публікації».
Після створення контенту я перевірю, чи це не якийсь скам 😁, і якщо все ок — опублікую.
Особливо цікаві питання по frontend, бо зараз на сайті переважає backend, а по frontend є лише кілька питань.
📎 - https://devs-hive.tech/uk/my-content
🔥17❤2👍2
Для чого потрібен never у TypeScript?
Anonymous Quiz
9%
Щоб дозволити будь-який тип без перевірки
4%
Щоб зробити значення необов’язковим
5%
Щоб автоматично перетворити тип на undefined
6%
Не знаю
76%
Щоб позначити значення, яке ніколи не може існувати
🔥6👎3
Новий інструмент для Nest.js - Observe 🔭🔭🔭
Пару днів тому відбувся реліз Observe — це інструмент для швидкого налаштування Observability без зайвого гемороя.
І, як на мене, це доволі крутий інструмент. Звісно, якщо на проєкті є розробник, який вміє в Observability і може швидко накидати сетап з умовним OpenTelemetry, прикрутивши туди пару дашбордів, то Observe там не потрібен.
Але в реальності такої людини може не бути, бо в команді всі джуни/мідли, які вже побудували потужне Observability, використовуючи самий надійний інструмент — console.log. Або це маленький проєкт, де взагалі не потрібно заморочуватися, і Observe вирішить всі болі продукту.
📎 - https://www.observe.nestjs.com/
Пару днів тому відбувся реліз Observe — це інструмент для швидкого налаштування Observability без зайвого гемороя.
І, як на мене, це доволі крутий інструмент. Звісно, якщо на проєкті є розробник, який вміє в Observability і може швидко накидати сетап з умовним OpenTelemetry, прикрутивши туди пару дашбордів, то Observe там не потрібен.
Але в реальності такої людини може не бути, бо в команді всі джуни/мідли, які вже побудували потужне Observability, використовуючи самий надійний інструмент — console.log. Або це маленький проєкт, де взагалі не потрібно заморочуватися, і Observe вирішить всі болі продукту.
📎 - https://www.observe.nestjs.com/
NestJS Observe | Zero-Config Observability for NestJS
Auto-instrumented observability for NestJS applications — tracing, error monitoring, logs and alerts, set up in minutes.
❤9😁3🔥2👍1🤡1
Халява! 🔥🔥🔥
Натрапив на допис в LinkedIn про те, що Redis роздає безкоштовні сертифікації. До сьогодні я навіть не знав, що можна бути Redis Certified.
Як на мене, Redis — це один із поважних інструментів інженера, розуміючи який, можна вирішити багато нетривіальних проблем.
Навіщо воно вам?
Враховуючи те, як шатає ІТ ринок, будь-яка "бумажка" від Big Tech компанії може дати плюс у CV і на інтервʼю. А якщо ви раніше не працювали з Redis, то під час підготовки до сертифікації розберетеся з основами і не тільки.
З податками мені нарахували 218 USD, але якщо скористатися купоном з сайту, вони перетворюються на 0. Тому, звісно я не втримався і забронював Associate Developer. Навіть, якщо ви дуже зайняті, можете забукати дату через пару місяців, а якщо і далі не буде часу - перенести 😁
Забукати сертифікацію можна тут - https://redis.io/certifications/
Натрапив на допис в LinkedIn про те, що Redis роздає безкоштовні сертифікації. До сьогодні я навіть не знав, що можна бути Redis Certified.
Як на мене, Redis — це один із поважних інструментів інженера, розуміючи який, можна вирішити багато нетривіальних проблем.
Навіщо воно вам?
Враховуючи те, як шатає ІТ ринок, будь-яка "бумажка" від Big Tech компанії може дати плюс у CV і на інтервʼю. А якщо ви раніше не працювали з Redis, то під час підготовки до сертифікації розберетеся з основами і не тільки.
З податками мені нарахували 218 USD, але якщо скористатися купоном з сайту, вони перетворюються на 0. Тому, звісно я не втримався і забронював Associate Developer. Навіть, якщо ви дуже зайняті, можете забукати дату через пару місяців, а якщо і далі не буде часу - перенести 😁
Забукати сертифікацію можна тут - https://redis.io/certifications/
Redis
Redis Associate Developer certification | Redis
Developers love Redis. Unlock the full potential of the Redis database with Redis Enterprise and start building blazing fast apps.
👍19🔥8
Для чого в Redis потрібен SET ... NX?
Anonymous Quiz
49%
Щоб записати значення лише якщо ключ ще не існує
13%
Щоб оновити тільки вже існуючий ключ
10%
Щоб автоматично видалити ключ після читання
1%
Щоб продублювати значення
26%
Не знаю