Node.js Recipes
3.21K subscribers
173 photos
7 videos
1 file
610 links
Download Telegram
Змушений визнати, що мені не вдається робити відеоконтент у тому вигляді як я хочу. Настав час залишити спроби навчитися робити візуалізацію патернів коду, інфраструктури та архітектури у відео форматі. Це вимагає надто великої кількості зусиль, щоб зробити результат, який би мене влаштував. Мабуть, недаремно на ютубі є формат наукпоп (приклад https://www.youtube.com/@3blue1brown), але немає технопоп для пояснення в такому стилі інженерних концепцій.

У зв'язку з цим зараз опублікую пару опитувань.
👍9😢3
Чи цікаві відео які рекомендуються в постах #worth_seeing? Я їх публікую у вихідні, але вони традиційно мають слабкий відгук. Хочу зрозуміти чому
Final Results
52%
Та я їх дивлюся. Публікація на вихідних чудова ідея
13%
Вони корисні, але не треба публікувати у вихідні
36%
Я їх не дивлюсь.
👍4
Як, і, найголовніше, для чого розпарсювати JWT?

Я не переказуватиму застосування та структуру JWT. Це вже добре зроблено у https://jwt.io/introduction.

Власне питання в заголовку я використовую для перевірки як кандидатів, так і AI. Так минулого літа Copilot пропонував мені лише варіант із викликом методу decode бібліотеки jsonwebtoken. Проте вже наприкінці осені він покращився і зміг запропонувати ще й щось таке:
const payloadBase64 = token.split('.')[1];
if (!payloadBase64) ...
const decodedJson = Buffer.from(payloadBase64, 'base64').toString();
const parsed = JSON.parse(decodedJson) as Record<string, unknown>;

З того часу до часу Copilot додався ChatGPT/Bard/etc, але що вони всі не вміють належним чином записувати jwt.verify помилки у логи. Вони або виводить JWT повністю до логів, створюючи серйозну security уразливість, або взагалі не логують нічого. Що саме логувати залежить від проекту, але нагадаю критерій добрих логів - з них можна зрозуміти, що відбувається з вашим застосунком. Для цього потрібно розпарсувати JWT (до verify або невдачного verify). Тоді можна залогувати його header/payload, але не signature.

На завершення наведу два приклади застосування:
– велика кількість JWT із завершеним строком дії може вказувати на те, що розробники клієнтської частини не контролюють термін дії JWT та не оновлюють його заздалегідь.
– велика кількість JWT з неправильною сигнатурою може свідчити про хакерську атаку або проблеми у процесах DevOps – наприклад, невірний напрямок трафіку через некоректне середовище.
👍32🔥1💩1
Як правильно вибрати тип установки пакета?
😁53🤯7👍2🤨21
Звичайно має бути так. Ставте залежності правильно!
😁31
Зробив тестовий стрим. Не дивлячись на всю підготовку, звичайно, щось пішло не так. Поки що не зрозумів це проблема провайдера чи перегрів роутера.
Із запланованого контенту вийшло лише 15 хвилин. З ним можна ознайомитись, щоб зрозуміти формат. Поки що я його бачу як щотижневий стрим, присвячений продуктовій розробці із застосуванням Node.js. Демонстрації коду у відео немає, але це точно буде.
Дякую всім за підтримку. Наступний ефір буде наступної середи.
🔥30👍6😢1
Новини Node.js розробки за минулий тиждень
#weekly_review

Node.js Security Releases – нові функції відсутні, виправлення безпеки не критичні, тому його можна пропустити.
Announcing TypeScript 5.2 RC – реліз спрямований на підтримку нових фіч EcmaScript: using та Decorator Metadata.
2023 State of the API Report – вийшов щорічний звіт про розробку API, Postman опитав 40000 розробників.
Is Jamstack Toast? – здається, термін вийшов у відставку, але сам підхід залишається актуальним для статичних сайтів.
Google introduced IDX, це web-IDE (Web Visual Studio), на основі Google Cloud Workstations з Codey AI.
👍31
​​Next Gen Package Management
#worth_seeing

Сьогоднішнє відео з конференції REFACTOR DX 2023, що відбулася минулого місяця в Торонто. Як можна здогадатися з назви, вона була присвячена досвіду розробника (Developer Experience). Дарсі Кларк виступив із захоплюючим keynote на заключення першого дня. Дарсі впродовж 4 років очолював інженерію npm. Наразі він працює над своїм стартапом, продовжуючи підтримувати проєкт Node.js та зусилля Фонду OpenJS Foundation у різних робочих групах. З таким багатим досвідом Дарсі дійсно має чим поділитися щодо JavaScript Package Management. Доповідь вийшла зрозумілою та насиченою інформацією, тому настійно рекомендую її переглянути.
👍29
Минуло два місяці, як я рекламував вам eslint-plugin-unicorn. Хочу це зробити ще раз. Якщо у вас його немає на проекті – встановіть його. Встановіть прямо зараз.

Приклади правил, які він додає:
replaceAll замість replace
– заборона використання array.forEach
– імпортування вбудованих модулів тільки з node:

Повний список правил тут. У багатьох є автофікс, тому їх впровадження це питання кількох хвилин.
👍27🤔5🌚2
This media is not supported in your browser
VIEW IN TELEGRAM
За допомогою Postman можна в пару кліків відтворювати запити з Chrome.
👍84😍16🔥3
З Днем Незалежності🇺🇦
Node Recipes – Weekly Review можна подивитися тут
👍5018❤‍🔥1😁1🙏1
Через 4 години наступний огляд новин щодо продуктової Node.js розробки.
Підключайтеся подивитися та поставити запитання.
🔥33👍10
Forwarded from GDG Cloud Kyiv (Nikita)
За годину відбудеться ефір з Нікітою Галкіним та Віктором Турським. Хлопці розберуть новинки, представлені на Google Next 2023.
До зустрічі в ефірі!
👍11
На написання рецептів не вистачає часу. Але я радий з вами поділитися backstage з програми конференції.
Для тих, хто не розуміє причини моєї радості: Matteo Collina – один з найкрутіших Node.js контриб'юторів та автор Fastify.
👍37🔥141
Нагадаю, що наступного тижня я роблю доповідь на Software Architecture fwdays'23 conference. Тому я маю промокод на 100% знижку на онлайн квиток. Він одноразовий, тому я зробив micro hack challange:
new URL('SzLS7kC7', 'https://ss.galk.in')
Правильна відповідь складається з 10 символів. Приклад промокоду на 10% знижку – 577310D705.

UPDATE промокод був використаний
👍13
Якщо у вас на проекті використовується sharp щоб конвертувати зображення, то у мене для вас важливи новини. Цього тижня у libwebp, який sharp використовує під капотом, знайдена вразливість. Вона дозволяє зробити виконання довільного коду.

Деталі і як захистити ваш код доки ми чекаємо оновленої версії описані у issue.
👍217😱5
Чому розробнику необхідно використати термінал?
#cli
Під час інтерв'ю чи сесії парного програмування я часто даю зворотний зв'язок використовувати термінал замість click-based інструментів. Термінал, на відміну візуальних інструментів, веде історію. Вона доступна за командою history і при локальній розробці, і при віддаленому налагодженні Docker або EC2. З її допомогою можна зрозуміти як система прийшла до поточного стану. У разі використання візуальних click-based інструментів у нас такої можливості немає.

Розробникам-початківцям освоєння терміналу для повсякденного використання найкраще почати з cli версії git. Там є чудова команда git reflog, яка неодноразово допомагала повернути втрачені коміти.

Чи зміниться ця відповідь на це запитання через кілька років, коли додатковим інструментом розробника до пари миша/клавіатура додасться голос, я не знаю. Тому що цю нотатку я набираю для вас саме голосом.
25👍16😁4❤‍🔥3
Сьогодні був перший дзвінок програмного комітету Node.js fwdays'23. На ньому я познайомився з Олександром Зіневичем. Він веде Node.js Digest на DOU. Судячи з кількості переглядів у тисячу, ком'юніті не знає про цей дайджесет. Хочу це виправити!

👉 Читати вересневий випуск
26👍1