Ще зовсім недавно тут був допис про 300 людей у каналі, а сьогодні нас уже 500 🎉🎉🎉
Це дуже мотивує писати далі й ділитися ще більше інженерним контентом.
Дякую всім за те, що читаєте ❤️
Це дуже мотивує писати далі й ділитися ще більше інженерним контентом.
Дякую всім за те, що читаєте ❤️
🔥35👍12❤3
Найпотужніший курс за всі часи 😱
Якщо ви новачок і шукаєте курси програмування, то з імовірністю 100% натрапите на всяке ІТ сміття, де вчорашні джуни будуть вам розказувати про JS і React. Про джунів які викладають - не жарт.
Цей курс реально покращить ваше розуміння програмування і розробки загалом. Це звісно не умовне GoIT, а всього лише безіменна бурса - Harvard 😁. Але курс дуже крутий і, як на мене, обовʼязковий для початківців.
І так - це актуально в епоху АІ. Я б сказав, навіть актуальніше, ніж до неї.
Курс повністю безкоштовний, і якщо на англійській дивитись важко, то в інтернеті є укр/рос версії.
📎 - https://pll.harvard.edu/course/cs50-introduction-computer-science
Якщо ви новачок і шукаєте курси програмування, то з імовірністю 100% натрапите на всяке ІТ сміття, де вчорашні джуни будуть вам розказувати про JS і React. Про джунів які викладають - не жарт.
Цей курс реально покращить ваше розуміння програмування і розробки загалом. Це звісно не умовне GoIT, а всього лише безіменна бурса - Harvard 😁. Але курс дуже крутий і, як на мене, обовʼязковий для початківців.
І так - це актуально в епоху АІ. Я б сказав, навіть актуальніше, ніж до неї.
Курс повністю безкоштовний, і якщо на англійській дивитись важко, то в інтернеті є укр/рос версії.
📎 - https://pll.harvard.edu/course/cs50-introduction-computer-science
Harvard University
CS50: Introduction to Computer Science | Harvard University
An introduction to the intellectual enterprises of computer science and the art of programming.
🔥14👍5
Згадав одну цікаву задачу, яку колись зустрічав на live coding інтервʼю в одній EU компанії. Думаю багатьом буде цікаво її розвʼязати, щоб попрактикуватись.
Потрібно написати простий клон сервісу по типу onetimesecret.com.
User flow:
1. Користувач
2. Бекенд шифрує це повідомлення, зберігає його і повертає унікальний URL, за яким secret можна відкрити лише один раз. Наприклад:
3. Користувач
4. Бекенд знаходить secret, розшифровує його, повертає текст
Фактично потрібно реалізувати два ендпоінти:
- створити secret;
- прочитати secret один раз.
З інструментів можна використовувати будь-що, але для такої задачі достатньо Node.js + Express.js.
Потрібно написати простий клон сервісу по типу onetimesecret.com.
User flow:
1. Користувач
A відправляє на сервер повідомлення, наприклад: Hello, world!2. Бекенд шифрує це повідомлення, зберігає його і повертає унікальний URL, за яким secret можна відкрити лише один раз. Наприклад:
https://api.com/cmq0zrsky00003b6sxwxj8igk3. Користувач
B відкриває цей URL.4. Бекенд знаходить secret, розшифровує його, повертає текст
Hello, world! і одразу видаляє запис.Фактично потрібно реалізувати два ендпоінти:
- створити secret;
- прочитати secret один раз.
З інструментів можна використовувати будь-що, але для такої задачі достатньо Node.js + Express.js.
Onetime Secret
Share Secrets Securely
Share sensitive information securely with self-destructing links. Paste your secret, generate a link, and share it. Once viewed, it's gone forever
❤5
Що потрібно знати для першої роботи?
Декілька разів бачив питання від людей, які хочуть потрапити в ІТ-болото. Я буду розглядати позицію full-stack розробника, оскільки наразі вона найбільш актуальна.
Frontend не розглядаю, бо пройти туди набагато важче, тай не треба воно вам (ІМНО) 😑
Нижче наведу список знань, які вам потрібно буде освоїти, щоб пройти інтерв’ю на Junior позицію в галєру мрії. Відразу зазначу, що ІТ-курси вам не допоможуть і дадуть максимум 10–15% від усього, що потрібно для роботи. Чому так - опишу в окремому дописі.
HTML/CSS
Треба знати на рівні простої верстки. Зараз на інтерв’ю про них майже не питають.
JS
Будуть питати про основні теми: closures, promises тощо. З того, що бачу зараз, це буквально 3–5 питань з JS Core, навіть на Junior-рівні.
TS
Потрібне розуміння деяких “advanced” тем, наприклад, type narrowing і generics. Це дозволить вам добре виступити на інтерв’ю.
React
Будуть довбати, якщо інтерв’юер - це галерний frontend-гой, який уже 5 років не міняв проєкт. Тому, окрім загального розуміння, варто розібрати основні теми, які часто звучать на інтерв’ю: hooks, controlled/uncontrolled components тощо.
Node.js
Навіть на Junior-позицію від вас будуть очікувати розуміння асинхронної моделі, Event Loop, а інколи - process/thread, cluster, streams.
Databases
Якщо пощастить з інтерв’юером, то з базами даних буде пов’язано приблизно 40% інтерв’ю. Тому важливо розібрати основні теми: індекси, зв’язки, ACID тощо. Також варто підтягнути SQL до рівня розуміння JOIN і агрегацій.
Security
Навіть якщо позиція Junior, вас точно запитають про JWT, XSS і можливо, ще кілька топіків. Тому потрібно копнути й у цей бік.
Те, що я описав вище, потрібно для проходження інтерв’ю. Для навчання найбільш оптимальним варіантом були й залишаються pet projects паралельно з YouTube/Udemy.
Для них беріть щось потрібне в роботі, наприклад Nest.js/TypeORM/PostgreSQL для backend і React або Next.js для frontend. Наступайте на граблі, паралельно розбираючись в них.
Декілька разів бачив питання від людей, які хочуть потрапити в ІТ-болото. Я буду розглядати позицію full-stack розробника, оскільки наразі вона найбільш актуальна.
Frontend не розглядаю, бо пройти туди набагато важче, тай не треба воно вам (ІМНО) 😑
Нижче наведу список знань, які вам потрібно буде освоїти, щоб пройти інтерв’ю на Junior позицію в галєру мрії. Відразу зазначу, що ІТ-курси вам не допоможуть і дадуть максимум 10–15% від усього, що потрібно для роботи. Чому так - опишу в окремому дописі.
HTML/CSS
Треба знати на рівні простої верстки. Зараз на інтерв’ю про них майже не питають.
JS
Будуть питати про основні теми: closures, promises тощо. З того, що бачу зараз, це буквально 3–5 питань з JS Core, навіть на Junior-рівні.
TS
Потрібне розуміння деяких “advanced” тем, наприклад, type narrowing і generics. Це дозволить вам добре виступити на інтерв’ю.
React
Будуть довбати, якщо інтерв’юер - це галерний frontend-гой, який уже 5 років не міняв проєкт. Тому, окрім загального розуміння, варто розібрати основні теми, які часто звучать на інтерв’ю: hooks, controlled/uncontrolled components тощо.
Node.js
Навіть на Junior-позицію від вас будуть очікувати розуміння асинхронної моделі, Event Loop, а інколи - process/thread, cluster, streams.
Databases
Якщо пощастить з інтерв’юером, то з базами даних буде пов’язано приблизно 40% інтерв’ю. Тому важливо розібрати основні теми: індекси, зв’язки, ACID тощо. Також варто підтягнути SQL до рівня розуміння JOIN і агрегацій.
Security
Навіть якщо позиція Junior, вас точно запитають про JWT, XSS і можливо, ще кілька топіків. Тому потрібно копнути й у цей бік.
Те, що я описав вище, потрібно для проходження інтерв’ю. Для навчання найбільш оптимальним варіантом були й залишаються pet projects паралельно з YouTube/Udemy.
Для них беріть щось потрібне в роботі, наприклад Nest.js/TypeORM/PostgreSQL для backend і React або Next.js для frontend. Наступайте на граблі, паралельно розбираючись в них.
🔥19❤4👍2
Підігнали мені тут цікаву візуалізацію Event Loop
Буде корисно, якщо є пробіли в ньому і не розумієте порядок виконання синхронного і асинхронного коду. І на інтервʼю теж знадобиться, щоб пояснити черговість console.log
📎 - https://devops-daily.com/games/javascript-promises-async-await-simulator
Буде корисно, якщо є пробіли в ньому і не розумієте порядок виконання синхронного і асинхронного коду. І на інтервʼю теж знадобиться, щоб пояснити черговість console.log
📎 - https://devops-daily.com/games/javascript-promises-async-await-simulator
Devops-Daily
JavaScript Promises and Async/Await Simulator: Visualize Microtasks and the Event Loop - DevOps Daily
Visualize JavaScript promises, async/await, microtasks, task queues, setTimeout ordering, rejection handling, and Promise.all with an interactive...
❤10👌4
В багатьох досі існує думка, що для realtime не бажано використовувати православні бази даних(SQL), а треба обовʼязково брати NoSQL.
Хочу порекомендувати extension для PostgreSQL, який дозволяє ефективно працювати з time-series даними, наприклад telemetry, IoT, GPS… - TimescaleDB.
Це один із популярних інструментів, який багато де використовується, тому точно вартий уваги.
Заодно гляньте, що таке Hypertable. Це відповість на питання, чому таке можливо в PostgreSQL.
🔗 https://www.tigerdata.com/timescaledb
Хочу порекомендувати extension для PostgreSQL, який дозволяє ефективно працювати з time-series даними, наприклад telemetry, IoT, GPS… - TimescaleDB.
Це один із популярних інструментів, який багато де використовується, тому точно вартий уваги.
Заодно гляньте, що таке Hypertable. Це відповість на питання, чому таке можливо в PostgreSQL.
🔗 https://www.tigerdata.com/timescaledb
❤7👍7😱1
Вже хтось пробував новий Claude Fable?
Походу токенів він жере побільше, ніж всі Opus разом взяті, але має бути хороший інструмент, бо Fable погане не назвуть (хто грав цю легенду, той зрозуміє)😁
Походу токенів він жере побільше, ніж всі Opus разом взяті, але має бути хороший інструмент, бо Fable погане не назвуть (хто грав цю легенду, той зрозуміє)😁
❤2
DRY чи WET?
Як ми всі знаємо, реальність сучасної розробки дуже відрізняється від книжок. І часто мамкині любителі патернів та best practices на практиці створюють більше проблем, ніж вирішують.
Особливо коли треба швидко запиляти PoC або MVP, щоб отримати гроші на подальший розвиток і получку для всіх причасних.
DRY (Don’t Repeat Yourself) каже, що потрібно уникати дублювання коду, бо інакше зміни доведеться робити в багатьох місцях. Звучить благородно. Але на практиці це часто призводить до того, що сервіс, який можна було просто продублювати з невеликими змінами, перетворюється на switch/case атракціон, в якому ніхто не може розібратися.
Якщо проєкт на ранній стадії, іноді краще керуватися WET (Write Everything Twice). Це протилежність DRY і загалом вважається антипатерном, але добре підходить для ситуацій, коли ми не можемо собі дозволити best practices.
Основна ідея проста - дублювання коду краще, ніж погана абстракція. У багатьох випадках, коли бізнес логіка часто змінюється, універсальний сервіс, функція чи компонент можуть ускладнити код значно більше, ніж просте людське дублювання.
Як ми всі знаємо, реальність сучасної розробки дуже відрізняється від книжок. І часто мамкині любителі патернів та best practices на практиці створюють більше проблем, ніж вирішують.
Особливо коли треба швидко запиляти PoC або MVP, щоб отримати гроші на подальший розвиток і получку для всіх причасних.
DRY (Don’t Repeat Yourself) каже, що потрібно уникати дублювання коду, бо інакше зміни доведеться робити в багатьох місцях. Звучить благородно. Але на практиці це часто призводить до того, що сервіс, який можна було просто продублювати з невеликими змінами, перетворюється на switch/case атракціон, в якому ніхто не може розібратися.
Якщо проєкт на ранній стадії, іноді краще керуватися WET (Write Everything Twice). Це протилежність DRY і загалом вважається антипатерном, але добре підходить для ситуацій, коли ми не можемо собі дозволити best practices.
Основна ідея проста - дублювання коду краще, ніж погана абстракція. У багатьох випадках, коли бізнес логіка часто змінюється, універсальний сервіс, функція чи компонент можуть ускладнити код значно більше, ніж просте людське дублювання.
🔥18❤4🤔1
Чому курси не працюють❓
Часто бачу в інтернеті обговорення ІТ-курсів і хочу коротко та без хейту розповісти, чому вони працюють далеко не так, як очікує більшість.
Я буду розглядати full-stack курси, бо frontend майже не ведуть до роботи в ІТ, а backend курсів з Node.js немає.
У сучасних реаліях типовий ІТ курс - це орієнтовно 10 - 15% від усього, що вам потрібно для першої роботи, тому великих надій на нього покладати не варто.
Отже, ось чому курси не сильно допоможуть “зайти” в ІТ:
1️⃣ Поверхневість
Більшість курсу - це core технології: HTML, CSS, JS, трохи TS і зовсім трохи Node.js. Звичайно, усе, що складніше за JS, буде розглянуто максимально поверхнево, щоб не ускладнювати процес і не відлякати вас від ІТ у період, коли ще можна повернути кошти.
У дорожчих курсах є SQL, але це теж максимально поверхневий огляд на рівні SELECT/JOIN.
2️⃣ Застарілі технології
За відчуттями, курси не оновлюють десь із 2018 року, коли був популярний SASS/LESS і люди молилися на MERN стек (MongoDB, Express.js, React.js, Node.js).
3️⃣ Акцент на простоті
Якщо ви подивитеся програму курсів, то здебільшого це 70% frontend і трохи backend. І, звичайно, усе крутиться навколо React. Це знову ж таки зроблено для того, щоб не відлякати людину.
Бо якщо вона почне розбиратися з тим, що будуть питати на інтерв’ю, найімовірніше, вона зіллється ще в період, коли можна повернути кошти. Та й загалом продати такий курс буде важко, бо доведеться розвіяти міф, що ІТ - це просто.
От спробуйте продати людині ідею, що їй доведеться задрочити реляційні бази, замість того щоб писати тудуліст на React.
4️⃣ Джуни-ментори
У більшості курсів менторять у кращому випадку працюючі junior/middle розробники, а в гіршому - випускники цих же курсів. Звичайно, ніхто вам не допоможе зрозуміти складніші теми, ніж замикання в JS.
❗️Якщо ви початківець❗️
Замість того щоб купувати будь які курси, краще в цьому чаті попитайте людей, що дійсно треба знати для першої роботи. Думаю, багато хто, включно зі мною, накидає вам роадмапу, за якою ви зможете зорієнтуватися.
Часто бачу в інтернеті обговорення ІТ-курсів і хочу коротко та без хейту розповісти, чому вони працюють далеко не так, як очікує більшість.
Я буду розглядати full-stack курси, бо frontend майже не ведуть до роботи в ІТ, а backend курсів з Node.js немає.
У сучасних реаліях типовий ІТ курс - це орієнтовно 10 - 15% від усього, що вам потрібно для першої роботи, тому великих надій на нього покладати не варто.
Отже, ось чому курси не сильно допоможуть “зайти” в ІТ:
1️⃣ Поверхневість
Більшість курсу - це core технології: HTML, CSS, JS, трохи TS і зовсім трохи Node.js. Звичайно, усе, що складніше за JS, буде розглянуто максимально поверхнево, щоб не ускладнювати процес і не відлякати вас від ІТ у період, коли ще можна повернути кошти.
У дорожчих курсах є SQL, але це теж максимально поверхневий огляд на рівні SELECT/JOIN.
2️⃣ Застарілі технології
За відчуттями, курси не оновлюють десь із 2018 року, коли був популярний SASS/LESS і люди молилися на MERN стек (MongoDB, Express.js, React.js, Node.js).
3️⃣ Акцент на простоті
Якщо ви подивитеся програму курсів, то здебільшого це 70% frontend і трохи backend. І, звичайно, усе крутиться навколо React. Це знову ж таки зроблено для того, щоб не відлякати людину.
Бо якщо вона почне розбиратися з тим, що будуть питати на інтерв’ю, найімовірніше, вона зіллється ще в період, коли можна повернути кошти. Та й загалом продати такий курс буде важко, бо доведеться розвіяти міф, що ІТ - це просто.
От спробуйте продати людині ідею, що їй доведеться задрочити реляційні бази, замість того щоб писати тудуліст на React.
4️⃣ Джуни-ментори
У більшості курсів менторять у кращому випадку працюючі junior/middle розробники, а в гіршому - випускники цих же курсів. Звичайно, ніхто вам не допоможе зрозуміти складніші теми, ніж замикання в JS.
❗️Якщо ви початківець❗️
Замість того щоб купувати будь які курси, краще в цьому чаті попитайте людей, що дійсно треба знати для першої роботи. Думаю, багато хто, включно зі мною, накидає вам роадмапу, за якою ви зможете зорієнтуватися.
🔥14❤2👍2💯1
Цікава новина від Skynet Anthropic
Як на мене - це чіткий сигнал того, що стратегія по АІ міняється. Вже ніхто не говорить про заміну інженерів, натомість ставку будуть робити на AI Adoption (старий добрий vendor lock-in 😁)
В принципі, все як я казав раніше. Якщо ви backend розробник, то важливо розуміти як працювати з АІ, вміти інтегровувати його в продукти і розуміти його болячки.
📎 - https://www.anthropic.com/news/claude-corps
Як на мене - це чіткий сигнал того, що стратегія по АІ міняється. Вже ніхто не говорить про заміну інженерів, натомість ставку будуть робити на AI Adoption (старий добрий vendor lock-in 😁)
В принципі, все як я казав раніше. Якщо ви backend розробник, то важливо розуміти як працювати з АІ, вміти інтегровувати його в продукти і розуміти його болячки.
📎 - https://www.anthropic.com/news/claude-corps
Anthropic
Introducing Claude Corps
Anthropic is launching Claude Corps, a national fellowship program for people early in their careers who are passionate about extending the benefits of AI to communities across America.
👍10😁1
Всі пишуть і говорять про ACID, але дуже мало людей знають про BASE. Треба розуміти, що ACID - це локальні концепції, які працюють в рамках однієї бази даних, а BASE описує узгодженість даних між сервісами в розподіленій системі.
BA - Basically Available
Система намагається залишатися доступною навіть тоді, коли частина сервісів або інфраструктури має проблеми. Є багато способів забезпечити BA, наприклад Retry with Backoff, Circuit Breaker, Fallback, DLQ і так далі.
S - Soft State
Стан системи може бути тимчасовим, проміжним або не повністю синхронізованим, навіть якщо користувач прямо нічого не змінює в цей момент.
Так як здебільшого комунікація між сервісами є асинхронною, наприклад через Message Brokers, запит користувача може мати багато етапів. І кожен з цих етапів буде мати свій проміжний State.
Якщо хочете дослідити це глибше, то розберіть Saga Pattern. Як на мене - це найбільш наглядний приклад S.
E - Eventual Consistency
Узгодження даних відбувається, але не обовʼязково миттєво. Наприклад, користувач оплатив замовлення.
BA - Basically Available
Система намагається залишатися доступною навіть тоді, коли частина сервісів або інфраструктури має проблеми. Є багато способів забезпечити BA, наприклад Retry with Backoff, Circuit Breaker, Fallback, DLQ і так далі.
S - Soft State
Стан системи може бути тимчасовим, проміжним або не повністю синхронізованим, навіть якщо користувач прямо нічого не змінює в цей момент.
Так як здебільшого комунікація між сервісами є асинхронною, наприклад через Message Brokers, запит користувача може мати багато етапів. І кожен з цих етапів буде мати свій проміжний State.
Якщо хочете дослідити це глибше, то розберіть Saga Pattern. Як на мене - це найбільш наглядний приклад S.
E - Eventual Consistency
Узгодження даних відбувається, але не обовʼязково миттєво. Наприклад, користувач оплатив замовлення.
Payment Service вже знає, що оплата успішна, але Order Service ще не оновив статус замовлення, бо чекає подію з черги.❤5👍4
Кляті пєндоси забрали доступ до Fable 5 i Mythos 5 😱😱😱
Anthropic каже, що можлива причина - це jailbreak (спроба змусити модель обійти її правила безпеки). Але як на мене уряд США просто поступово бере під контроль ще одну стратегічну технологію
📎 - https://www.anthropic.com/news/fable-mythos-access
Anthropic каже, що можлива причина - це jailbreak (спроба змусити модель обійти її правила безпеки). Але як на мене уряд США просто поступово бере під контроль ще одну стратегічну технологію
📎 - https://www.anthropic.com/news/fable-mythos-access
Anthropic
Statement on the US government directive to suspend access to Fable 5 and Mythos 5
The US government has issued an export control directive to suspend all access to Fable 5 and Mythos 5 by any foreign national, whether inside or outside the United States.
👍1
Концепції TypeScript: Mixins vs Decorators
Думаю було б корисно почати створювати дописи і про TypeScript/JavaScript. Це звичайно не кодинг, а більш концептуальні теми, розуміння яких стало важливішим з приходом АІ.
Decorators
Фактично - це функція, яку можна прикріпити до класу, методу, параметра або поля за допомогою синтаксису
Наприклад, розберемо типовий метод контролера в Nest.js:
Post() - додає поведінку, яка вказує, що метод має обробляти HTTP POST запити.
UseGuards(AuthGuard) - додає поведінку, яка перевірить чи користувач авторизований, перед викликом цього метода.
Mixins
Вони теж дозволяють додавати поведінку, але працюють інакше, ніж decorators. Їхня основна задача - розширити клас через композицію (бо множинного наслідування немає).
Технічно - це функція, яка приймає клас і повертає новий клас з додатковими методами або полями.
Наприклад, в нас є бізнес логіка кешування (методи і поля), які спільні для всіх хто буде їх використовувати. Тоді логічно використати mixin, щоб розширити функціонал і паралельно не мати жорсткої завʼязки, як у випадку з наслідуванням.
Коли і що використовувати?
Тут все дуже просто, якщо потрібно розширити/змінити поведінку пробуєте використати decorators, в більшості випадків їх буде достатньо.
Якщо бачите, що вам потрібно створювати нові методи/поля, які будуть використовуватись в рамках класу, тоді створюєте mixin.
Думаю було б корисно почати створювати дописи і про TypeScript/JavaScript. Це звичайно не кодинг, а більш концептуальні теми, розуміння яких стало важливішим з приходом АІ.
Decorators
Фактично - це функція, яку можна прикріпити до класу, методу, параметра або поля за допомогою синтаксису
@. Його задача додати або змінити поведінку конкретної сутності.Наприклад, розберемо типовий метод контролера в Nest.js:
@Post()
@UseGuards(AuthGuard)
async createTrip() {}
Post() - додає поведінку, яка вказує, що метод має обробляти HTTP POST запити.
UseGuards(AuthGuard) - додає поведінку, яка перевірить чи користувач авторизований, перед викликом цього метода.
Mixins
Вони теж дозволяють додавати поведінку, але працюють інакше, ніж decorators. Їхня основна задача - розширити клас через композицію (бо множинного наслідування немає).
Технічно - це функція, яка приймає клас і повертає новий клас з додатковими методами або полями.
Наприклад, в нас є бізнес логіка кешування (методи і поля), які спільні для всіх хто буде їх використовувати. Тоді логічно використати mixin, щоб розширити функціонал і паралельно не мати жорсткої завʼязки, як у випадку з наслідуванням.
class CachedTripsService extends WithCache(TripsService) {}
// В нас немає завʼязки з класом і при необхідності можна розширити його ще більше
Sentry(With)class CachedTripsService extends WithCache(TripsService) {}Коли і що використовувати?
Тут все дуже просто, якщо потрібно розширити/змінити поведінку пробуєте використати decorators, в більшості випадків їх буде достатньо.
Якщо бачите, що вам потрібно створювати нові методи/поля, які будуть використовуватись в рамках класу, тоді створюєте mixin.
👍5❤2
Авторизація vs автентифікація
Дуже коротко про ці важливі поняття, бо багато хто не знає, що воно таке. Самі назви запамʼятовувати не обовʼязково, але важливо розуміти, які етапи контролю доступу до системи в нас є.
Автентифікація
Простими словами, система запитує: Хто ти?
Наприклад, ти вводиш свій email і пароль. Якщо вони правильні, система ідентифікує тебе як конкретного користувача і видає JWT токен.
Цей токен потім використовується в наступних запитах, щоб система розуміла, від імені якого користувача виконується дія.
Авторизація
Простими словами, система визначає: Що тобі дозволено робити?
Після того, як система зрозуміла хто ти, тобто перевірила чи JWT токен валідний, вона має визначити чи тобі дозволена операція.
Є багато способів це зробити, але ось декілька в якості прикладу:
RBAC (role-based access control) - доступ визначається через ролі, наприклад:
PBAC (permission-based access control) - доступ визначається через конкретні permissions, тобто дозволи на окремі дії. Наприклад:
Дуже коротко про ці важливі поняття, бо багато хто не знає, що воно таке. Самі назви запамʼятовувати не обовʼязково, але важливо розуміти, які етапи контролю доступу до системи в нас є.
Автентифікація
Простими словами, система запитує: Хто ти?
Наприклад, ти вводиш свій email і пароль. Якщо вони правильні, система ідентифікує тебе як конкретного користувача і видає JWT токен.
Цей токен потім використовується в наступних запитах, щоб система розуміла, від імені якого користувача виконується дія.
Авторизація
Простими словами, система визначає: Що тобі дозволено робити?
Після того, як система зрозуміла хто ти, тобто перевірила чи JWT токен валідний, вона має визначити чи тобі дозволена операція.
Є багато способів це зробити, але ось декілька в якості прикладу:
RBAC (role-based access control) - доступ визначається через ролі, наприклад:
admin, moderator, user.PBAC (permission-based access control) - доступ визначається через конкретні permissions, тобто дозволи на окремі дії. Наприклад:
user:create, user:delete, post:update, billing:read.👍14🔥6
Кому цікаво, LangChain викотили ще один безкоштовний курс по LangSmith. Це звичайно не курси з інстаграма від гуру вайбкодингу, але теж дуже навіть непогано.
Вже якось згадував LangChain Academy і те що в них доволі багато курсів по Core технологіям (LangChain/LangGraph/LangSmith).
Звісно більшість на Python, але для тих хто поки не душить змія є версії і на JavaScript.
📎 - https://academy.langchain.com/courses/langsmith-deployment
Вже якось згадував LangChain Academy і те що в них доволі багато курсів по Core технологіям (LangChain/LangGraph/LangSmith).
Звісно більшість на Python, але для тих хто поки не душить змія є версії і на JavaScript.
📎 - https://academy.langchain.com/courses/langsmith-deployment
LangChain Academy
LangSmith Deployment: Deploy your agents to the cloud
Learn how to deploy and manage your long-running Deep Agents with LangSmith Deployment.
👍12
Гарна стаття про ті 10% проблем, які не можна вирішити з найкращою базою в світі (PostgreSQL)😁
📎 - https://www.tigerdata.com/blog/when-postgresql-isnt-the-right-fit
📎 - https://www.tigerdata.com/blog/when-postgresql-isnt-the-right-fit
👍11
Хто такий сучасний розробник?
Усі пишуть, що ринок змінюється і що AI змінив правила гри, але майже ніхто не пояснює, як саме.
Якщо говорити про нас - роботяг/інженерів, то як на мене, ринок тут не стільки змінюється, скільки прискорюється.
Коли я прийшов працювати в першу продуктову компанію після галер, то був здивований: усім було байдуже на таке поняття, як «красівий код». Згодом я зрозумів, що надмірне вилизування коду й концентрація на його «красі» виникають через віддаленість від бізнесу та нерозуміння реальних потреб продукту.
Так от, моя думка така: ринок змінився вже давно, а AI лише прискорив незворотний процес трансформації нашої професії.
Як на мене, сучасному розробнику варто фокусуватися на кількох речах, щоб залишатися затребуваним на ринку:
1️⃣ Fullstack
Якщо зайти на вакансії EU або навіть українських компаній із получкою хоча б від €5000, то все стане зрозуміло.
2️⃣ Soft skills
Це не дічь про nice guy, яку пишуть HR помагатори. Справжні soft skills - це вміння нормально комунікувати, доносити свою думку, ставити правильні питання, делегувати і брати відповідальність.
3️⃣ Розуміння системи
Тенденція така, що АІ точно буде використовуватись для генерації коду і закриття локальних проблем. Але справа в тому що АІ не зможе зрозуміти бізнес, накласти його на систему і прийняти найбільш раціональне рішення чи зробити потрібний «Костиль».
І тут точно потрібна людина, яка розуміє систему цілісно, вміє декомпозувати проблему й делегувати для AI локальні задачі.
4️⃣ Вміння вчитись
Якщо в тебе рік-два досвіду, ти можеш не розуміти цієї проблеми, бо скоріш за все, ще багато вчишся.
Але правда в тому, що більшість розробників з часом перестають вчитися і застрягають на одному місці. Дописи людей, які шукають роботу по пів року - це яскраве підтвердження, що розвиток є важливою складовою в сервісній сфері.
Усі пишуть, що ринок змінюється і що AI змінив правила гри, але майже ніхто не пояснює, як саме.
Якщо говорити про нас - роботяг/інженерів, то як на мене, ринок тут не стільки змінюється, скільки прискорюється.
Коли я прийшов працювати в першу продуктову компанію після галер, то був здивований: усім було байдуже на таке поняття, як «красівий код». Згодом я зрозумів, що надмірне вилизування коду й концентрація на його «красі» виникають через віддаленість від бізнесу та нерозуміння реальних потреб продукту.
Так от, моя думка така: ринок змінився вже давно, а AI лише прискорив незворотний процес трансформації нашої професії.
Як на мене, сучасному розробнику варто фокусуватися на кількох речах, щоб залишатися затребуваним на ринку:
1️⃣ Fullstack
Якщо зайти на вакансії EU або навіть українських компаній із получкою хоча б від €5000, то все стане зрозуміло.
2️⃣ Soft skills
Це не дічь про nice guy, яку пишуть HR помагатори. Справжні soft skills - це вміння нормально комунікувати, доносити свою думку, ставити правильні питання, делегувати і брати відповідальність.
3️⃣ Розуміння системи
Тенденція така, що АІ точно буде використовуватись для генерації коду і закриття локальних проблем. Але справа в тому що АІ не зможе зрозуміти бізнес, накласти його на систему і прийняти найбільш раціональне рішення чи зробити потрібний «Костиль».
І тут точно потрібна людина, яка розуміє систему цілісно, вміє декомпозувати проблему й делегувати для AI локальні задачі.
4️⃣ Вміння вчитись
Якщо в тебе рік-два досвіду, ти можеш не розуміти цієї проблеми, бо скоріш за все, ще багато вчишся.
Але правда в тому, що більшість розробників з часом перестають вчитися і застрягають на одному місці. Дописи людей, які шукають роботу по пів року - це яскраве підтвердження, що розвиток є важливою складовою в сервісній сфері.
👍19❤2
Релізнувся TypeScript 7.0 RC🍾🔥
Що цікавого:
- Новий нативний компілятор на Go (таке я одобряю😁)
- Завезли паралелізацію процесів, що дозволяє паралельно виконувати парсинг, type-checking, emit
- Покращення --watch режиму (тепер працює набагато швидше)
- Покращення Language Server Protocol, для тих в кого нема грошей на WebStorm
📎 - https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-rc/
Що цікавого:
- Новий нативний компілятор на Go (таке я одобряю😁)
- Завезли паралелізацію процесів, що дозволяє паралельно виконувати парсинг, type-checking, emit
- Покращення --watch режиму (тепер працює набагато швидше)
- Покращення Language Server Protocol, для тих в кого нема грошей на WebStorm
📎 - https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-rc/
Microsoft News
Announcing TypeScript 7.0 RC
The Release Candidate for TypeScript 7.0 is now available!
🔥14👍1🏆1🍾1
Дуже гарна новина для тих, хто працює віддалено 🔥
Починаючи з лютого 2026 року, Шрі-Ланка запустила свою Nomad Visa, яка видається на 1 рік з можливістю продовження.
По вимогам все +- стандартно:
- віддалена робота або бізнес;
- клієнти або роботодавець знаходяться за межами Шрі-Ланки;
- мінімальний дохід від 2000$;
Ціна візи - 500$ на рік.
Починаючи з лютого 2026 року, Шрі-Ланка запустила свою Nomad Visa, яка видається на 1 рік з можливістю продовження.
По вимогам все +- стандартно:
- віддалена робота або бізнес;
- клієнти або роботодавець знаходяться за межами Шрі-Ланки;
- мінімальний дохід від 2000$;
Ціна візи - 500$ на рік.
🔥13
Шок контєнт: зʼявився новий HTTP метод 😱😱😱
Новий HTTP метод QUERY вирішує одну з наболівших проблем метода GET, а саме відсутність Body.
Технічно, ви можете відправити його в GET і так дехто робить (привіт ElasticSearch), але згідно семантики HTTP, Body там не передбачений. Це в свою чергу несе ризики того, що умовний Gateway, Proxy чи інший Middleware будуть його ігнорувати.
QUERY є ідемпотентним, як GET і створений для пошуку та lookup запитів, які занадто великі або складні, щоб поміститися в Query Params.
Новий HTTP метод QUERY вирішує одну з наболівших проблем метода GET, а саме відсутність Body.
Технічно, ви можете відправити його в GET і так дехто робить (привіт ElasticSearch), але згідно семантики HTTP, Body там не передбачений. Це в свою чергу несе ризики того, що умовний Gateway, Proxy чи інший Middleware будуть його ігнорувати.
QUERY є ідемпотентним, як GET і створений для пошуку та lookup запитів, які занадто великі або складні, щоб поміститися в Query Params.
❤18👍8