Node.js Recipes
3.23K subscribers
174 photos
7 videos
1 file
622 links
По буднях нотатки по #Nodejs розробці, по вихідним огляди конференцій та доповідей (с) @galkin_nikita
Download Telegram
Чому числа іноді поводяться неінтуїтивно?
#tc39

Числа та арифметика JavaScript визначені в IEEE-754. Перегляньте 0.30000000000000004.com

Питання та відповідь є перекладом з репозиторію tc39/faq. А ціль посту познайомити з цим репозиторієм.
👍20
​​TypeScript Origins: The Documentary
#worth_seeing

Anders Hejlsberg, Steve Lucco, Luke Hoban, Daniel Rosenwasser, Ryan Cavanaugh, Amanda Silver, Matt Pocock, Josh Goldberg... Саме це люди зробили TypeScript. Перегляньте відео, щоб знати їх в обличчя.
👍19🔥2
Варто винести події на каналі окремим дописом:
👀 Кожного понеділка о 19:00 Node.js Weekly у форматі YouTube Stream. Посилання на сьогоднішній стрім.
👍 Експериментую з форматами. Минулого тижня з'явився новий формат #like_and_share, деталі тут: t.me/node_recipes/693.
👍25
Як зберігати enum у базах даних?

У цьому рецепті ми не будемо зупинятися на перевагах та недоліках використання enum на рівні коду. Натомість, ми розглянемо, як можна представити enum у базі даних. Під enum ми розуміємо набір рядкових значень, які може приймати певне поле. Розглянемо конкретний приклад для таблиці "users":
gender: MALE, FEMALE, UNKNOWN, NON_BINARY
status: ACTIVE, BANNED, SELF_DELETED
Важливо відзначити, що список можливих значень визначається доменною моделлю, і, отже, буде змінюватися з розвитком проекту.
Можливі підходи:
1. Зберігати значення як varchar без перевірки на рівні бази даних, чи належить значення до enum.
2. Нормалізація даних. Для кожного enum створюється окрема таблиця у форматі id, value, яка використовується для зв'язку через foreign key. У основній таблиці зберігається не саме значення, а id з відповідної таблиці.
3. Enum на рівні бази даних. Більшість баз даних підтримують enum.
4. Довідник. Цей метод є проміжним варіантом між нормалізацією та використанням enum у базі даних. Таблиця-довідник об'єднує поля id та value в одне.

При виборі підходу, який підходить для конкретної ситуації, я звертаю увагу на:
1. розмір, необхідний для зберігання даних. Нормалізація та enum у базі даних зменшують обсяг.
2. простоту отримання даних. При нормалізації потрібні join-операції
3. легкість зміни enum. Простіше з довідником та при нормалізації, а enum-in-DB потребує міграцію.
4. необхідність перевірки на рівні бази даних. Можливо, перевірка не потрібна.
5. Забезпечення консистентності підходу в рамках проекту.
6. При нормалізації - який метод генерації id буде використовуватися: uuid, sequence, nanoid.
7. На останньому місці, але не менш важливе - яка база даних використовується?
👍30
#code_only
Такий код я написав вчора для створення PDF. Це скрипт для багаторазового використання фронтенд-розробником для верстки темплейту. Коли FE закінчить верстку, я загорну код у лямду, яку буду викликати з коду Node.js.
🔥33👍5👏1
Чому використовувати void з промісом у JavaScript?

Використання void з промісом у JavaScript сигналізує, що відсутність await або .then() є навмисною, забезпечуючи читабельність коду та запобігаючи попередженням про необроблені проміси. Код буде виконуватися однаково як з void так і безнього.

У NodeJS розробки це мовна конструкція майже завжди буде у файлі, який стартує додаток/скрипт.
👍31👎2🤔2
😁517👍5🤡2
​​Я неодноразово згадував exercism.org для навчання програмуванню. Я вважаю цю платформу більш практичною, ніж LeetCode, оскільки вона пропонує курси з різних мов програмування.
Минулорічна програма "12in23" дозволяла щомісяця вивчати нову мову, а цьогорічна "48in24" викликає учасників вирішити 48 завдань за допомогою різних підходів та мов. Це чудова можливість стати гнучким інженером, а не просто розробником однієї мови.
31🔥7👍5
У дописі з хештегом #worth_seeing я ділюся відео, яке я подивився і хотів би вам порекомендувати. Сьогодні це не технічне відео, але потрібне майже будь-якому розробнику України:
Декларація ФОП 3 група 5% за 2023 рік

Навіть якщо бухгалтерію за вас веде бухгалтер, варто розуміти, як його перевірити. Адже це складова фінансової грамотності, яка безпосередньо впливає на вашу кар'єру.
23👍11
Агенда на сьогоднішній прямий ефір:
- JS ecosystem in 2023
- що таке Stripe-level SDK
- AWS Community Builders

Початок о 19 по Києву. До зустрічі в ефірі!
👍25🔥63
AWS відкрив прийом заявок на наступну когорту Community Builders.

Я сам є учасником цієї програми. Ось, що надає участь в цій програмі:
👉 доступ до Slack разом з іншими AWS Community Builders, AWS Hero та співробітниками AWS;
👉 доступ до закритих вебінарів та альфа-версій продуктів;
👉 500 доларів AWS кредитів, з можливістю запитати ще від керівника мого напрямку;
👉 ваучер на одну сертифікацію щорічно;
👉 річна підписка на Cloud Academy;
👉 swag kit (мерч)

У свою чергу, AWS очікує від мене публікацію контенту про AWS на основі мого особистого досвіду. Це, власне кажучи, те, що я робив в рамках цього телеграм-каналу до того, як потрапив до цієї програми.

Зверніть увагу, що не має значення мати 10+ років досвіду. Контент від Junior спеціаліста для Junior спеціалістів також потрібен. Тому, якщо ви створюєте контент, а тим більше українською, подайте заявку.
14👍2🔥2
Для налагодження веб-хуків я використовую ngrok. У нього є конкурент, про який варто знати:
🔗 webhook.cool безкоштовна веб версія
🔗 localcan.com платна дестопна версія

webhook.cool чудово підходить як перший крок в інтеграціях з іншою командою розробки. Так я можу почати інтеграцію до того, як піднято частину, яка відповідає за прийняття запитів. А включений guest access дозволяє спільно бачити запити, що входять.
👍34🔥5🍓1
Сьогодні у нас нова гра #like_and_share. Мета гри - поділитися своїм досвідом та дізнатися про досвід інших учасників. Правила:

1. Публікація в каналі визначає тему. Сьогодні це Chrome Extensions.
2. У коментарях кожен може залишити посилання на extension, який він використовує, і коротко описати, чому цей extension є корисним.
3. Учасники голосують за extension, використовуючи лайки. Не ставте негативні лайки, вони також зараховуються як позитивні.
4. У понеділок ми підведемо підсумки на YouTube-стрімі. Переможець отримає 12-місячну персональну підписку на будь-яке IDE від JetBrains.
15🔥6
на сайті exploringjs.com можна безкоштовно прочитати:
📕 JavaScript for impatient programmers (ES2022 edition)
📗 Deep JavaScript
📘 Tackling TypeScript
📙 Shell scripting with Node.js
👍48🔥52👀2
​​Using docker in unusual ways
#worth_seeing

Відмінне відео, яке можна назвати "Docker-based development in 2024". Рекомендую не тільки подивитися, але й спробувати підходи запропоновані у відео.
👍344
Агенда на сьогоднішній прямий ефір:
- Chrome Extensions
- emails in Node.js
- Q&A

Початок о 19 по Києву. До зустрічі в ефірі!
👍281🔥1
Тема сьогоднішнього прямого ефіру: What I learned last year?
Я розповім, що змінилося в моїх підходах у розробці за минулий рік на рівні коду, залежностей та frameworks.

Початок о 19 по Києву. До зустрічі в ефірі!
20👍11
This media is not supported in your browser
VIEW IN TELEGRAM
Сьогодні на консалтинг сесії говорив про Developer Experience. Як приклад показав LocatorJS. Це chrome extension, яке дозволяє на локальному оточенні по кліку в UI перейти до коду компонента, на який клікнули.

LocatorJS змінює DevEx так, що інженер, незнайомий з кодовою базою, здатний вносити правки на рівні компонента так само швидко, як і code owner.
👍57🔥6🍌1🍓1
Сьогодні у прямому ефірі я зроблю розбір: UnJS Ecosystem та nitro.

Початок о 19 по Києву. До зустрічі в ефірі!
👍17
Тема сьогоднішнього прямого ефіру: GitHub Ecosystem for Node.js Development
Екосистема GitHub не обмежується збереженням коду. У сьогоднішньому огляді ми подивимося повний цикл розробки та які інструменти використовувати на якому кроці.

Початок о 19 по Києву. До зустрічі в ефірі!
👍20🔥9🤩1
Forwarded from GDG Cloud Kyiv (Nikita)
Раптом ви пропустили, сьогодні стартує новий потік програми "Розвивайте кар’єру з Google Cloud"
🔗 Реєстрація на програму за посиланням

Учасники програми отримають:
✔️45 днів безкоштовного доступу до платформи Google Cloud Skills Boost;
✔️доступ до лекцій, воркшопів, карʼєрних консультацій та сесій запитань-відповідей від фахівців Google;
✔️практичний досвід та бейджі Google Cloud, якими можна підкріпити свій профіль LinkedIn;
✔️індивідуальні напрями навчання, зокрема з фокусом на AI та Data;
✔️цінні нагороди від Google;
✔️ваучери на сертифікаційний іспит Google Cloud;
9👍2