Чому числа іноді поводяться неінтуїтивно?
#tc39
Числа та арифметика JavaScript визначені в IEEE-754. Перегляньте 0.30000000000000004.com
Питання та відповідь є перекладом з репозиторію tc39/faq. А ціль посту познайомити з цим репозиторієм.
#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. Перегляньте відео, щоб знати їх в обличчя.
#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.
👀 Кожного понеділка о 19:00 Node.js Weekly у форматі YouTube Stream. Посилання на сьогоднішній стрім.
👍 Експериментую з форматами. Минулого тижня з'явився новий формат #like_and_share, деталі тут: t.me/node_recipes/693.
👍25
Як зберігати enum у базах даних?
У цьому рецепті ми не будемо зупинятися на перевагах та недоліках використання enum на рівні коду. Натомість, ми розглянемо, як можна представити enum у базі даних. Під enum ми розуміємо набір рядкових значень, які може приймати певне поле. Розглянемо конкретний приклад для таблиці "users":
Важливо відзначити, що список можливих значень визначається доменною моделлю, і, отже, буде змінюватися з розвитком проекту.
Можливі підходи:
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. На останньому місці, але не менш важливе - яка база даних використовується?
У цьому рецепті ми не будемо зупинятися на перевагах та недоліках використання enum на рівні коду. Натомість, ми розглянемо, як можна представити enum у базі даних. Під enum ми розуміємо набір рядкових значень, які може приймати певне поле. Розглянемо конкретний приклад для таблиці "users":
gender: MALE, FEMALE, UNKNOWN, NON_BINARYstatus: 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.
Такий код я написав вчора для створення PDF. Це скрипт для багаторазового використання фронтенд-розробником для верстки темплейту. Коли FE закінчить верстку, я загорну код у лямду, яку буду викликати з коду Node.js.
🔥33👍5👏1
Чому використовувати
Використання
У NodeJS розробки це мовна конструкція майже завжди буде у файлі, який стартує додаток/скрипт.
void з промісом у JavaScript?Використання
void з промісом у JavaScript сигналізує, що відсутність await або .then() є навмисною, забезпечуючи читабельність коду та запобігаючи попередженням про необроблені проміси. Код буде виконуватися однаково як з void так і безнього.У NodeJS розробки це мовна конструкція майже завжди буде у файлі, який стартує додаток/скрипт.
👍31👎2🤔2
Я неодноразово згадував exercism.org для навчання програмуванню. Я вважаю цю платформу більш практичною, ніж LeetCode, оскільки вона пропонує курси з різних мов програмування.
Минулорічна програма "12in23" дозволяла щомісяця вивчати нову мову, а цьогорічна "48in24" викликає учасників вирішити 48 завдань за допомогою різних підходів та мов. Це чудова можливість стати гнучким інженером, а не просто розробником однієї мови.
Минулорічна програма "12in23" дозволяла щомісяця вивчати нову мову, а цьогорічна "48in24" викликає учасників вирішити 48 завдань за допомогою різних підходів та мов. Це чудова можливість стати гнучким інженером, а не просто розробником однієї мови.
❤31🔥7👍5
У дописі з хештегом #worth_seeing я ділюся відео, яке я подивився і хотів би вам порекомендувати. Сьогодні це не технічне відео, але потрібне майже будь-якому розробнику України:
Декларація ФОП 3 група 5% за 2023 рік
Навіть якщо бухгалтерію за вас веде бухгалтер, варто розуміти, як його перевірити. Адже це складова фінансової грамотності, яка безпосередньо впливає на вашу кар'єру.
Декларація ФОП 3 група 5% за 2023 рік
Навіть якщо бухгалтерію за вас веде бухгалтер, варто розуміти, як його перевірити. Адже це складова фінансової грамотності, яка безпосередньо впливає на вашу кар'єру.
❤23👍11
Агенда на сьогоднішній прямий ефір:
- JS ecosystem in 2023
- що таке Stripe-level SDK
- AWS Community Builders
Початок о 19 по Києву. До зустрічі в ефірі!
- JS ecosystem in 2023
- що таке Stripe-level SDK
- AWS Community Builders
Початок о 19 по Києву. До зустрічі в ефірі!
YouTube
Node.js Weekly 2024-W3: JS ecosystem in 2023, Stripe-level SDK, AWS Community Builders
👍25🔥6❤3
AWS відкрив прийом заявок на наступну когорту Community Builders.
Я сам є учасником цієї програми. Ось, що надає участь в цій програмі:
👉 доступ до Slack разом з іншими AWS Community Builders, AWS Hero та співробітниками AWS;
👉 доступ до закритих вебінарів та альфа-версій продуктів;
👉 500 доларів AWS кредитів, з можливістю запитати ще від керівника мого напрямку;
👉 ваучер на одну сертифікацію щорічно;
👉 річна підписка на Cloud Academy;
👉 swag kit (мерч)
У свою чергу, AWS очікує від мене публікацію контенту про AWS на основі мого особистого досвіду. Це, власне кажучи, те, що я робив в рамках цього телеграм-каналу до того, як потрапив до цієї програми.
Зверніть увагу, що не має значення мати 10+ років досвіду. Контент від Junior спеціаліста для Junior спеціалістів також потрібен. Тому, якщо ви створюєте контент, а тим більше українською, подайте заявку.
Я сам є учасником цієї програми. Ось, що надає участь в цій програмі:
👉 доступ до 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 дозволяє спільно бачити запити, що входять.
🔗 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.
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
📕 JavaScript for impatient programmers (ES2022 edition)
📗 Deep JavaScript
📘 Tackling TypeScript
📙 Shell scripting with Node.js
👍48🔥5❤2👀2
Using docker in unusual ways
#worth_seeing
Відмінне відео, яке можна назвати "Docker-based development in 2024". Рекомендую не тільки подивитися, але й спробувати підходи запропоновані у відео.
#worth_seeing
Відмінне відео, яке можна назвати "Docker-based development in 2024". Рекомендую не тільки подивитися, але й спробувати підходи запропоновані у відео.
👍34❤4
Агенда на сьогоднішній прямий ефір:
- Chrome Extensions
- emails in Node.js
- Q&A
Початок о 19 по Києву. До зустрічі в ефірі!
- Chrome Extensions
- emails in Node.js
- Q&A
Початок о 19 по Києву. До зустрічі в ефірі!
YouTube
Node.js Weekly 2024-W4: chrome extensions and emails in Node.js
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
👍28❤1🔥1
Тема сьогоднішнього прямого ефіру: What I learned last year?
Я розповім, що змінилося в моїх підходах у розробці за минулий рік на рівні коду, залежностей та frameworks.
Початок о 19 по Києву. До зустрічі в ефірі!
Я розповім, що змінилося в моїх підходах у розробці за минулий рік на рівні коду, залежностей та 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.
LocatorJS змінює DevEx так, що інженер, незнайомий з кодовою базою, здатний вносити правки на рівні компонента так само швидко, як і code owner.
👍57🔥6🍌1🍓1
Сьогодні у прямому ефірі я зроблю розбір: UnJS Ecosystem та nitro.
Початок о 19 по Києву. До зустрічі в ефірі!
Початок о 19 по Києву. До зустрічі в ефірі!
👍17
Тема сьогоднішнього прямого ефіру: GitHub Ecosystem for Node.js Development
Екосистема GitHub не обмежується збереженням коду. У сьогоднішньому огляді ми подивимося повний цикл розробки та які інструменти використовувати на якому кроці.
Початок о 19 по Києву. До зустрічі в ефірі!
Екосистема GitHub не обмежується збереженням коду. У сьогоднішньому огляді ми подивимося повний цикл розробки та які інструменти використовувати на якому кроці.
Початок о 19 по Києву. До зустрічі в ефірі!
YouTube
Node.js Weekly 2024-W7: GitHub Ecosystem for Node.js Development
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
👍20🔥9🤩1