Cписок освітніх платформ
#list
Розв'язання алгоритмічних завдань:
🔗 leetcode.com – безумовний лідер
🔗 geeksforgeeks.org – якщо ви гуглите алгоритм, то швидше за все потрапите на цей сайт.
🔗 hackerrank.com – крім алгоритмічних завдань, є ще й з тести з фреймворків.
Для вивчення мови
🔗 freecodecamp.org – відмінно підходить для тих, хто тільки починає вчити JavaScript
🔗 exercism.org – підійде і новачкові, який освоює нову мову, і інженеру, який хоче покращити навички код ревью.
Для вивчення Cloud Providers
☁️ aws
☁️ google
☁️ azure
#list
Розв'язання алгоритмічних завдань:
🔗 leetcode.com – безумовний лідер
🔗 geeksforgeeks.org – якщо ви гуглите алгоритм, то швидше за все потрапите на цей сайт.
🔗 hackerrank.com – крім алгоритмічних завдань, є ще й з тести з фреймворків.
Для вивчення мови
🔗 freecodecamp.org – відмінно підходить для тих, хто тільки починає вчити JavaScript
🔗 exercism.org – підійде і новачкові, який освоює нову мову, і інженеру, який хоче покращити навички код ревью.
Для вивчення Cloud Providers
☁️ aws
☁️ azure
👍36❤2
🆕 Heroku прибирає free tier
#news
Для багатьох Node.js розробників Heroku був першою хмарою, де ми розвертали наші перші застосунки. Наприкінці жовтня Heroku прибирає free tier. Тому новачкам рекомендувати його більше нема рації. Що використовувати замість Heroku? Free tier мають Fly.io та Replit. Або одразу використати щось з великої трійки: AWS, GCP та Azure.
🔗 Першоджерело
#news
Для багатьох Node.js розробників Heroku був першою хмарою, де ми розвертали наші перші застосунки. Наприкінці жовтня Heroku прибирає free tier. Тому новачкам рекомендувати його більше нема рації. Що використовувати замість Heroku? Free tier мають Fly.io та Replit. Або одразу використати щось з великої трійки: AWS, GCP та Azure.
🔗 Першоджерело
😢17👍6
Звернув увагу, що у продуктах для інженерів добре продумані гарячі клавіші.
Наприклад, спробуйте у GitHub, Jira, AWS, GCP, etc
🔥
🔥
🔥
#productivity
Наприклад, спробуйте у GitHub, Jira, AWS, GCP, etc
🔥
? – допомога, список гарячих клавіш🔥
/ – пошук🔥
cmd/ctrl+k – виклик меню команд#productivity
👍27❤6🙏1
Сьогоднішній матеріал буде корисний:
- для авторів бібліотек
- для розробників Electron додатків
- для тех.лідів команд, де пишуть код на різних платформах
👉 CrossPlatform Node Guide
- для авторів бібліотек
- для розробників Electron додатків
- для тех.лідів команд, де пишуть код на різних платформах
👉 CrossPlatform Node Guide
👍8🔥6
Хочу підтримати українське ком'юніті🇺🇦, присвячене блокчейну Near промо-постом.
Near – wе блокчейн, який просувають через інженерів, а чи не маркетологів. Тобто бюджети на просування витрачають на проведення хакатонів та гранти для Web3 продуктів. Для Node.js розробників блокчейн цікавий тим, що в ньому можна писати контракти на JS/TS або Rust.
Ком'юніті дуже доброзичливе до новачків, а для людей з досвідом можна завести нові знайомства, для участі в хакатонах. Через 2 години у них буде Voice Chat.
👉 чат комьюніті @nearprotocolua
👉 канал із анонсами @nearprotocoluachannel
Near – wе блокчейн, який просувають через інженерів, а чи не маркетологів. Тобто бюджети на просування витрачають на проведення хакатонів та гранти для Web3 продуктів. Для Node.js розробників блокчейн цікавий тим, що в ньому можна писати контракти на JS/TS або Rust.
Ком'юніті дуже доброзичливе до новачків, а для людей з досвідом можна завести нові знайомства, для участі в хакатонах. Через 2 години у них буде Voice Chat.
👉 чат комьюніті @nearprotocolua
👉 канал із анонсами @nearprotocoluachannel
👍15🔥3
10 lightning tips by testing enthusiasts
#worth_seeing
Я вважаю, що найскладніший формат – це lightning talk. У сьогоднішньому відео представлено не одна така доповідь, а одразу 10. В ньому спікери мають замість 10-15 хвилин лише 3 хвилини. Відео з NodeTLV 22 та присвячене тестуванню.
👀 Відео
#worth_seeing
Я вважаю, що найскладніший формат – це lightning talk. У сьогоднішньому відео представлено не одна така доповідь, а одразу 10. В ньому спікери мають замість 10-15 хвилин лише 3 хвилини. Відео з NodeTLV 22 та присвячене тестуванню.
👀 Відео
👍16
Architecture decisions records?
#architecture
Гарною інженерною практикою є документування прийнятих тех рішень – Architecture Decision Records (ADR). Це можуть бути зміни в технічному стеку, вибір технології, спосіб оплати технічного боргу та інше. Така документація допомагає зрозуміти, чому так склалося історично. Для ADR можна використовувати різні інструменти. Мій особистий вибір log4brains.
Посилання:
🔗 ADR
🔗 log4brains
#architecture
Гарною інженерною практикою є документування прийнятих тех рішень – Architecture Decision Records (ADR). Це можуть бути зміни в технічному стеку, вибір технології, спосіб оплати технічного боргу та інше. Така документація допомагає зрозуміти, чому так склалося історично. Для ADR можна використовувати різні інструменти. Мій особистий вибір log4brains.
Посилання:
🔗 ADR
🔗 log4brains
👍22❤2
Forwarded from GDG Cloud Kyiv (Nikita)
Google запускає навчальну програму "Розвивайте кар’єру з Google Cloud" для підтримки українського бізнесу та ІТ-фахівців. Вона пройде з 4 жовтня до 3 грудня 2022 року.
🔗 Анонс у Блоґ - Google Україна
🔗 Реєстрація у програмі
🔗 Анонс у Блоґ - Google Україна
🔗 Реєстрація у програмі
❤21👍12
Node.js має графік релізів. Він показує, що у 16-а версії час підтримки вже менше року, а 18 версія стане рекомендованою 25 жовтня. Тому стартувати нові проекти треба на 18-й версії.
Ще нагадаю кілька речей:
1️⃣ Непарні версії є експериментальними. Їхній термін життя півроку. Використовувати їх як runtime для комерційного коду є ознакою непрофесіоналізму.
2️⃣ Парні версії є LTS. Потрібно планувати перехід на нову мажорну LTS версію щорічно.
Ще нагадаю кілька речей:
1️⃣ Непарні версії є експериментальними. Їхній термін життя півроку. Використовувати їх як runtime для комерційного коду є ознакою непрофесіоналізму.
2️⃣ Парні версії є LTS. Потрібно планувати перехід на нову мажорну LTS версію щорічно.
👍45❤3
Forwarded from Fwdays
Fwdays team продовжує підтримувати захисників та захисниць України 🇺🇦, до чого закликаємо і вас!
В рамках конференції Software Architecture fwdays'22, 16 вересня (п’ятниця) о 17:00 (GMT+3) ми проведемо благодійний live stream з Дмитром "Метр": Артилерія і технології.
У мирному житті Дмитро – Lead DevOps Engineer у Kasta, наразі Дмитро "Метр" – військовослужбовець 45 оабр, лейтенант.
Ведучий стріму – Олександр Соловйов.
Під час стріму будемо обговорювати теми артилерії та технологій, кібер сек’юріті, волонтерство, відносин армії, людей і грошей. Також, кожен зможе приєднатись до обговорення і поставити своє питання Дмитру чи Олександру.
І, вже традиційно, ми збиратимемо кошти для наших бійців з передової.
🎯 Наша ціль – зібрати 200 000 грн на покращення інфраструктури розвідки 45 оабр (мережеве і комп'ютерне обладнання, покращення автомобілів тощо).
Серед 10 найбільших донейтів ми рандомно розіграємо сувеніри від 45 оабр🎁
Дізнатись більше про стрім, теми, а також задонейтити вже зараз – https://fwdays.com/event/architecture-fwdays-2022/review/artillery-and-technologies
Посилання на Youtube стрім – https://bit.ly/3BCBltp
Ставте нагадування, підписуйтесь і до зустрічі завтра!
Слава Україні! 💙💛
В рамках конференції Software Architecture fwdays'22, 16 вересня (п’ятниця) о 17:00 (GMT+3) ми проведемо благодійний live stream з Дмитром "Метр": Артилерія і технології.
У мирному житті Дмитро – Lead DevOps Engineer у Kasta, наразі Дмитро "Метр" – військовослужбовець 45 оабр, лейтенант.
Ведучий стріму – Олександр Соловйов.
Під час стріму будемо обговорювати теми артилерії та технологій, кібер сек’юріті, волонтерство, відносин армії, людей і грошей. Також, кожен зможе приєднатись до обговорення і поставити своє питання Дмитру чи Олександру.
І, вже традиційно, ми збиратимемо кошти для наших бійців з передової.
🎯 Наша ціль – зібрати 200 000 грн на покращення інфраструктури розвідки 45 оабр (мережеве і комп'ютерне обладнання, покращення автомобілів тощо).
Серед 10 найбільших донейтів ми рандомно розіграємо сувеніри від 45 оабр🎁
Дізнатись більше про стрім, теми, а також задонейтити вже зараз – https://fwdays.com/event/architecture-fwdays-2022/review/artillery-and-technologies
Посилання на Youtube стрім – https://bit.ly/3BCBltp
Ставте нагадування, підписуйтесь і до зустрічі завтра!
Слава Україні! 💙💛
Fwdays
Артилерія і технології
Найбільші IT конференції в Україні: Software Architecture, Highload, DevOps, Management (leads, C-level), JavaScript, Frontend, React, Data Science та AI, PHP, Python та ін.
👍11👎1
Forwarded from GDG Cloud Kyiv (Nikita)
Як безкоштовно отримати Cloud Digital Leader?
Cloud Digital Leader є початковою сертифікацією. Її наявність показує, що власник розуміє як працює GCP. Цільова аудиторія: інженери без досвіду роботи в Cloud та менеджери. Детальніше. Звичайна ціна сертифікації 99 $ (55 $ для України).
Індійська компанія Hack2skill проводить Cloud Tech Camp. У його рамках відбудеться роздача ваучерів на безкоштовну сертифікацію.
Алгоритм дій:
1. Реєстрація на cloudskillsboost
2. Реєстрація на tech camp. Реєстрацію на першу когорту ще не закрили.
3. Отримуємо всі 4 бейджі. Для отримання необхідно пройти quizzes (перегляд відео не є обов'язковим). Кожен курс із переглядом відео займає близько години. Якщо ж використовивати google, то можна вкластися за 30 хвилин на всі 4 бейджі.
4. У dashboard вже є посилання для отримання ваучера. Основне в цій google-формі це посилання на ваш публічний профайл з cloudskillsboost, де є бейджи.
5. Нагадаю, проводять індуси. Тому не варто витрачати час на перегляд вебінару або участь у WhatsApp.
6. Опціонально. Зареєструватись на Associate Cloud Engineer.
Cloud Digital Leader є початковою сертифікацією. Її наявність показує, що власник розуміє як працює GCP. Цільова аудиторія: інженери без досвіду роботи в Cloud та менеджери. Детальніше. Звичайна ціна сертифікації 99 $ (55 $ для України).
Індійська компанія Hack2skill проводить Cloud Tech Camp. У його рамках відбудеться роздача ваучерів на безкоштовну сертифікацію.
Алгоритм дій:
1. Реєстрація на cloudskillsboost
2. Реєстрація на tech camp. Реєстрацію на першу когорту ще не закрили.
3. Отримуємо всі 4 бейджі. Для отримання необхідно пройти quizzes (перегляд відео не є обов'язковим). Кожен курс із переглядом відео займає близько години. Якщо ж використовивати google, то можна вкластися за 30 хвилин на всі 4 бейджі.
4. У dashboard вже є посилання для отримання ваучера. Основне в цій google-формі це посилання на ваш публічний профайл з cloudskillsboost, де є бейджи.
5. Нагадаю, проводять індуси. Тому не варто витрачати час на перегляд вебінару або участь у WhatsApp.
6. Опціонально. Зареєструватись на Associate Cloud Engineer.
👍10🔥3
знайшов у пошті, що OpenJS Foundation оголосило до кінця місяця знижку 60% на Node.js сертифікації. Промокод JAVA60
Нагадаю, що існує дві сертифікації:
1️⃣ OpenJS Node.js Services Developer (JSNSD) – простіша, потребує досвіду, як робити Web API.
2️⃣ OpenJS Node.js Application Developer (JSNAD) – складніша, потребує розуміння всій Node.js документації.
Сертифікацію можна буде скласти протягом року. Промокод працює на бандли сертифікація + курс. Але курси там відверто слабкі, і я б їх не рекомендував.
PS Промокод викликає сміх 😂, але він працює.
Нагадаю, що існує дві сертифікації:
1️⃣ OpenJS Node.js Services Developer (JSNSD) – простіша, потребує досвіду, як робити Web API.
2️⃣ OpenJS Node.js Application Developer (JSNAD) – складніша, потребує розуміння всій Node.js документації.
Сертифікацію можна буде скласти протягом року. Промокод працює на бандли сертифікація + курс. Але курси там відверто слабкі, і я б їх не рекомендував.
PS Промокод викликає сміх 😂, але він працює.
👍16😁7🔥1
Що таке .nvmrc?
#cli
Для локальної розробки я рекомендую встановлювати Node.js через nvm. Це дозволяє легко перемикатися між версіями Node.js.
Після встановлення nvm необхідно налаштувати ваш shell, щоб
Залишилося створити .nvmrc:
PS Не плутайте .npmrc та .nvmrc
#cli
Для локальної розробки я рекомендую встановлювати Node.js через nvm. Це дозволяє легко перемикатися між версіями Node.js.
Після встановлення nvm необхідно налаштувати ваш shell, щоб
nvm use автоматично викликався при заході в папку де є .nvmrc. Як це зробити описано тут.Залишилося створити .nvmrc:
node -v > .nvmrcgit commit -am 'Add nvmrc'PS Не плутайте .npmrc та .nvmrc
👍43🔥11
Як правильно налаштувати TypeScript?
#typenoscript
Більшість стартерів генерує неправильний
Є такий репозиторій tsconfig/bases. З нього генеруються пакети виду
Детальніше в репозиторії. Там, до речі, є і React.
#typenoscript
Більшість стартерів генерує неправильний
tsconfig.json. Наприклад, після nest new project-name необхідно правильно налаштувати compilerOptions.target. ДетальнішеЄ такий репозиторій tsconfig/bases. З нього генеруються пакети виду
@tsconfig/node18. Я рекомендую починати tsconfig.json із "extends": "@tsconfig/node18/tsconfig.json" і перевизначати тільки потрібні параметри. Для фанатів типізації можна використовувати @tsconfig/node18-strictestДетальніше в репозиторії. Там, до речі, є і React.
👍51
Що таке glob шаблони (або globbing)?
#cli #npm
JavaScript розробники нерідко роблять помилку у glob шаблонах. Ми їх використовуємо, щоб задати маску для файлів. Приклад:
Ці glob шаблони (або globbing) йдуть з Unix та нагадують RegExp. У JavaScript екосистемі є пакет minimatch який конвертую glob шаблон у RegExp. Звичайно ж, є і пакет glob від того самого автора, який є обгорткой до minimatch. Тому зустрічається термін minimatch syntax (приклад у eslint). Але правильний термін – glob/globbing.
Покажу, як виглядає типова помилка у використанні:
Очікування: будуть переформатовані всі файли у src.
Реальність: будуть переформатовані лише файли на першому рівні вкладеності.
Треба мати на увазі, що
👉 Інструмент для перевірки/тренування тут.
#cli #npm
JavaScript розробники нерідко роблять помилку у glob шаблонах. Ми їх використовуємо, щоб задати маску для файлів. Приклад:
eslint --fix 'src/*.js'. Ці glob шаблони (або globbing) йдуть з Unix та нагадують RegExp. У JavaScript екосистемі є пакет minimatch який конвертую glob шаблон у RegExp. Звичайно ж, є і пакет glob від того самого автора, який є обгорткой до minimatch. Тому зустрічається термін minimatch syntax (приклад у eslint). Але правильний термін – glob/globbing.
Покажу, як виглядає типова помилка у використанні:
prettier --write 'src/*.js'Очікування: будуть переформатовані всі файли у src.
Реальність: будуть переформатовані лише файли на першому рівні вкладеності.
Треба мати на увазі, що
*/?/etc працюють лише у path segments, тобто у іменах файлів/директорії. Для рекурсивного пошуку необхідно використовувати **. Тому правильна команда:prettier --write 'src/**/*.js'👉 Інструмент для перевірки/тренування тут.
👍42👌2❤1
Що таке теги електронної пошти?
Більшість поштових серверів доставлять повідомлення на
Багато сервісів (GitHub, Figma, etc) використовують такі скриньки, щоб дозволити користувачеві надіслати коментар до чогось через пошту. Приклад:
Використання емейлів з тегами особливо зручне під час тестування фіч, пов'язаних з онбоардингом. Це дозволяє не видаляти старих користувачів, і отримувати емейли на одну поштову скриньку.
Node.js розробнику буде корисно використовувати тег для вказівки оточення в емейлі. Приклад env vars:
Більшість поштових серверів доставлять повідомлення на
<local-part>+<tag>@<domain> до скриньки <local-part>@<domain>. Така поведінка не визначена специфікацією. Тому кожен проект повинен приймати рішення чи дозволяти користувачам використовувати такі емейли при реєстрації.Багато сервісів (GitHub, Figma, etc) використовують такі скриньки, щоб дозволити користувачеві надіслати коментар до чогось через пошту. Приклад:
issues+2618235@github.com, де 2618235 – Issue ID.Використання емейлів з тегами особливо зручне під час тестування фіч, пов'язаних з онбоардингом. Це дозволяє не видаляти старих користувачів, і отримувати емейли на одну поштову скриньку.
Node.js розробнику буде корисно використовувати тег для вказівки оточення в емейлі. Приклад env vars:
SENDGRID_API_KEY=SG....SENDGRID_FROM=info+dev@your-domain.com👍32
Що таке AsyncIterator?
AsyncIterator в JavaScript - це інтерфейс, який дозволяє робити асинхронний перебір колекцій. Він поєднує два інтерфейси JavaScript - Iterator і AsyncIterable - щоб створити об'єкт, який можна використовувати для асинхронного перебору елементів колекції. Це дозволяє писати код, який може асинхронно обробляти дані по одному елементу за раз, не створюючи зайву оперативну пам'ять чи блокуючи дані запити. Для використання AsyncIterator, ви повинні використовувати конструкцію
Один з прикладів використання AsyncIterator в Node.js - це асинхронне оброблення багатьох файлів. Наприклад, якщо у вас є кілька CSV-файлів, які ви хочете пострічати і обробити їх дані по одному файлу за раз, ви можете використовувати AsyncIterator для цього. Наступний приклад показує, як це може виглядати:
У цьому прикладі, ми створюємо масив з шляхами до файлів CSV, з якого створюємо AsyncIterator, використовуючи метод
Цей текст був вступом до новини, що контент згенерований за допомогою ChatGPT заборонен на Stack Overflow. #news
AsyncIterator в JavaScript - це інтерфейс, який дозволяє робити асинхронний перебір колекцій. Він поєднує два інтерфейси JavaScript - Iterator і AsyncIterable - щоб створити об'єкт, який можна використовувати для асинхронного перебору елементів колекції. Це дозволяє писати код, який може асинхронно обробляти дані по одному елементу за раз, не створюючи зайву оперативну пам'ять чи блокуючи дані запити. Для використання AsyncIterator, ви повинні використовувати конструкцію
for await...of, яка дозволяє асинхронно обробляти елементи колекції.Один з прикладів використання AsyncIterator в Node.js - це асинхронне оброблення багатьох файлів. Наприклад, якщо у вас є кілька CSV-файлів, які ви хочете пострічати і обробити їх дані по одному файлу за раз, ви можете використовувати AsyncIterator для цього. Наступний приклад показує, як це може виглядати:
const fs = require('fs');const path = require('path');async function processCSVFiles() { // Створюємо масив з шляхами до файлів CSV const csvFiles = [ path.join(__dirname, 'file1.csv'), path.join(__dirname, 'file2.csv'), path.join(__dirname, 'file3.csv') ]; // Створюємо AsyncIterator з масиву файлів const csvFilesIterator = csvFiles[Symbol.asyncIterator](); // Використовуємо конструкцію for await...of для асинхронного перебору файлів for await (const csvFile of csvFilesIterator) { // Читаємо файл CSV const csvData = await fs.promises.readFile(csvFile, 'utf-8'); // Обробляємо дані файлу CSV // ... }}processCSVFiles();У цьому прикладі, ми створюємо масив з шляхами до файлів CSV, з якого створюємо AsyncIterator, використовуючи метод
Symbol.asyncIterator. Потім ми використовуємо конструкцію for await...of для асинхронного перебору файлів CSV і читаємо їх дані за допомогою методу fs.promises.readFile. Цей код буде асинхронно обробляти кожен файл по одному, не блокуючи інші запити до сервера. Після обробки кожного файлу, цей код буде очікувати наступний запит до сервера, щоб продовжити обробку файлів.Цей текст був вступом до новини, що контент згенерований за допомогою ChatGPT заборонен на Stack Overflow. #news
👍32😁7❤5💩1