Prisma
Поговоримо трішки про бекенд. Якийсь час тому ми коротко розповідали про ORM. Якщо раптом пропустили пост чи забули, переглянути можна тут.
На днях мені довелось сетапити бекенд і я стикнувся з питанням ORM.
До цього я користувався TypeORM та трішки Sequalize. Цього разу вирішив спробувати Prisma і зараз готовий поділитись першими враженнями. Поки вони тільки позитивні.
Мені подобається те, що моделі таблиць відділенні від коду. Єдиний нюанс - вони всі зберігаються в одному файлі. Добре це чи погано - вирішуйте самі. Тут дуже потужний клієнт, який генерує усі потрібні типи, тому вам не потрібно їх писати для CRUD операцій. Також тут дуже зручно працювати з різними типами запитів до БД.
АЛЕ я стикнувся з однією проблемкою. Я використовую Nest.js фреймворк і так як Prisma генерує саме типи в Typescript, використати їх для валідації та генерації Swagger не вийде. Проте, здається жодна ORM не надає такого функціоналу, тому важко назвати це недоліком. З наданими типами ви з легкістю зможете створити потрібні класи.
Раджу обовʼязково звернути увагу на Prisma, адже це дійсно крутий інструмент 😉
Читати більше
Псс: а ще цікаво, чи багато у нас тут людей, яким цікава тема бекенду?
#experience
Поговоримо трішки про бекенд. Якийсь час тому ми коротко розповідали про ORM. Якщо раптом пропустили пост чи забули, переглянути можна тут.
На днях мені довелось сетапити бекенд і я стикнувся з питанням ORM.
До цього я користувався TypeORM та трішки Sequalize. Цього разу вирішив спробувати Prisma і зараз готовий поділитись першими враженнями. Поки вони тільки позитивні.
Мені подобається те, що моделі таблиць відділенні від коду. Єдиний нюанс - вони всі зберігаються в одному файлі. Добре це чи погано - вирішуйте самі. Тут дуже потужний клієнт, який генерує усі потрібні типи, тому вам не потрібно їх писати для CRUD операцій. Також тут дуже зручно працювати з різними типами запитів до БД.
АЛЕ я стикнувся з однією проблемкою. Я використовую Nest.js фреймворк і так як Prisma генерує саме типи в Typescript, використати їх для валідації та генерації Swagger не вийде. Проте, здається жодна ORM не надає такого функціоналу, тому важко назвати це недоліком. З наданими типами ви з легкістю зможете створити потрібні класи.
Раджу обовʼязково звернути увагу на Prisma, адже це дійсно крутий інструмент 😉
Читати більше
Псс: а ще цікаво, чи багато у нас тут людей, яким цікава тема бекенду?
#experience
👍30❤3🔥2👏1🤔1🤩1
ІТ - це така швидкоплинна індустрія. Буває, не встигнеш щось підівчити, а вже завтра випускають щось ще новіше. І хоч всього, що існує, не вивчиш і не переглянеш, деколи хочеться хоча б краєм ока глянути на якусь технологію чи мову програмування.
На сайті Learn X in Y minutes ви зможете, хоч і поверхнево, вивчити основи обраної мови. Не треба додавати собі цю мову в сівішку після прочитання відповідної статті, адже навряд чи ви зможете одразу писати щось серйозне, проте коротке ознайомлення з синтаксисом та фішками мови ви там обовʼязково знайдете.
А ще тут можна долучатись і додавати переклад статей українською!
Відкрити сайт
#tips
На сайті Learn X in Y minutes ви зможете, хоч і поверхнево, вивчити основи обраної мови. Не треба додавати собі цю мову в сівішку після прочитання відповідної статті, адже навряд чи ви зможете одразу писати щось серйозне, проте коротке ознайомлення з синтаксисом та фішками мови ви там обовʼязково знайдете.
А ще тут можна долучатись і додавати переклад статей українською!
Відкрити сайт
#tips
🔥14👍3❤2🤩2🥰1👏1
Вчора дісталось двом моїм найріднішим місцям в Україні - селу на Черкащині, де я народилась і виросла, і Львову, де я проживаю вже більше 5 років ❤️🩹 І, на жаль, дісталось ще багатьом місцям в нашій країні.
Тому давайте зберемо на помсту, щоб пришвидшити кінець цьому жаху!
Тиць 👉
https://send.monobank.ua/jar/2vPxZALuVz
Тому давайте зберемо на помсту, щоб пришвидшити кінець цьому жаху!
Тиць 👉
https://send.monobank.ua/jar/2vPxZALuVz
❤59😢12🔥4👍2🐳1
🔥59😁18👍5🕊4🎉2👎1👏1🤩1
Вчора мені прийшов лист, що JetBrains запустили свій редактор коду Fleet в публічному доступі. Я хоч і був у списку тих, хто очікує даний редактор в приватній беті, проте отримав доступ тільки зараз, разом з усіма.
Дуже цікаво, чи вийде їм створити конкуренцію VS Code. Особисто я вже скачав цей редактор і пробую тестувати.
А що ви думаєте про даний редактор і чи будете пробувати користуватись Fleet 🤔
Відкрити посилання
Дуже цікаво, чи вийде їм створити конкуренцію VS Code. Особисто я вже скачав цей редактор і пробую тестувати.
А що ви думаєте про даний редактор і чи будете пробувати користуватись Fleet 🤔
Відкрити посилання
🤔22👍5👎4❤2🔥1👏1😁1
💙💛 Вітаємо зі святом наших захисників і захисниць
14 жовтня — це день, про який не можна забувати. Адже це свято тих, завдяки яким ми все ще маємо можливість жити, вчитись та працювати!
Тому в честь сьогоднішнього свята закликаємо вас задонатити на перемогу!
14 жовтня — це день, про який не можна забувати. Адже це свято тих, завдяки яким ми все ще маємо можливість жити, вчитись та працювати!
Тому в честь сьогоднішнього свята закликаємо вас задонатити на перемогу!
❤56❤🔥6🎉3🔥2🥰1
Київ, ви як? 💔
Друзі, ми пропадемо на тиждень. Обіцяємо повернутись з новими силами і підготувати для вас дещо цікаве! Тільки дочекайтесь 💛
Друзі, ми пропадемо на тиждень. Обіцяємо повернутись з новими силами і підготувати для вас дещо цікаве! Тільки дочекайтесь 💛
❤87👍13🥰9❤🔥3
Розіграш курсів від Web Overflow 🚀
Друзі, скоро буде рік нашому каналу! Аж не віриться. Ми створювали цей блог, тому що просто хотіли ділитись нашим досвідом і знаннями. А вийшло так, що за цей час ми самі дуже виросли і багато чого навчились. Дякуємо вам за це! Без вашої підтримки, ми б так довго не протримались! 😄💛
Тому на честь свята ми вирішили розіграти між вами курси на будь-якій платформі!
Як це працює? Буде троє переможців, які зможуть обрати курс на будь-якій платформі (Udemy, Coursera або іншій), а ми його оплатимо. Курс має бути хоч якось пов’язаний з ІТ і бути ціною до $50. Зі знижками, які мають перечислені платформи, ви зможете отримати будь-який.
Умови:
1. Бути підписаним на Web Overflow.
2. Пошарити в будь-якій соціальній мережі (від лінкедін до тікток), що ви берете участь у розіграші курсів від Web Overflow (з посиланням на наш канал). Псс: за оригінальність жанру буде свій приз.
3. Кинути посилання на ваш сторіс/пост в коментарях до даного розіграшу. Після того як ми перевіримо, ви отримаєте даний смайлик 👍 від Насті або Юри на ваш коментар і це означатиме, що ви стали учасником конкурсу!
Результути будуть 8 листопада - на річницю нашого каналу! 🎊
Успіхів 💛
Друзі, скоро буде рік нашому каналу! Аж не віриться. Ми створювали цей блог, тому що просто хотіли ділитись нашим досвідом і знаннями. А вийшло так, що за цей час ми самі дуже виросли і багато чого навчились. Дякуємо вам за це! Без вашої підтримки, ми б так довго не протримались! 😄💛
Тому на честь свята ми вирішили розіграти між вами курси на будь-якій платформі!
Як це працює? Буде троє переможців, які зможуть обрати курс на будь-якій платформі (Udemy, Coursera або іншій), а ми його оплатимо. Курс має бути хоч якось пов’язаний з ІТ і бути ціною до $50. Зі знижками, які мають перечислені платформи, ви зможете отримати будь-який.
Умови:
1. Бути підписаним на Web Overflow.
2. Пошарити в будь-якій соціальній мережі (від лінкедін до тікток), що ви берете участь у розіграші курсів від Web Overflow (з посиланням на наш канал). Псс: за оригінальність жанру буде свій приз.
3. Кинути посилання на ваш сторіс/пост в коментарях до даного розіграшу. Після того як ми перевіримо, ви отримаєте даний смайлик 👍 від Насті або Юри на ваш коментар і це означатиме, що ви стали учасником конкурсу!
Результути будуть 8 листопада - на річницю нашого каналу! 🎊
Успіхів 💛
🎉25👍9❤4❤🔥2👏2🥰1
Proxy
Як думаєте, який патерн програмування реалізовує цей обʼєкт? 😄
Об’єкт Proxy обгортає інший об’єкт і перехоплює операції, такі як читання/запис властивостей та інші, за бажанням обробляючи їх самостійно, або прозоро дозволяючи об’єкту обробляти їх. Створити проксі досить просто - new Proxy(target, handler), де target - це ціль (ваш обʼєкт), а handler - це обʼєкт з налаштуваннями перехоплювання. Що ж можна перехоплювати в обʼєкті?
Найпростішими діями з обʼєктом є зчитування та додавання за ключем. Виходить, що ви можете контролювати, що буде повертати конструкція objectkey, чи як саме спрацює objectkey = value. Це чимось схоже на get та set методи у класах, тільки в класах це обмежено одним ключем. Proxy - це справді потужний інструмент. Окрім get та set він може перехоплювати інші методи, наприклад, delete чи has.
Не буду писати ще одну детальну статтю про даний об'єкт, адже розумні люди вже написали такі, тому просто пораджу прочитати одну з них.
Читати статтю
#interview
Як думаєте, який патерн програмування реалізовує цей обʼєкт? 😄
Об’єкт Proxy обгортає інший об’єкт і перехоплює операції, такі як читання/запис властивостей та інші, за бажанням обробляючи їх самостійно, або прозоро дозволяючи об’єкту обробляти їх. Створити проксі досить просто - new Proxy(target, handler), де target - це ціль (ваш обʼєкт), а handler - це обʼєкт з налаштуваннями перехоплювання. Що ж можна перехоплювати в обʼєкті?
Найпростішими діями з обʼєктом є зчитування та додавання за ключем. Виходить, що ви можете контролювати, що буде повертати конструкція objectkey, чи як саме спрацює objectkey = value. Це чимось схоже на get та set методи у класах, тільки в класах це обмежено одним ключем. Proxy - це справді потужний інструмент. Окрім get та set він може перехоплювати інші методи, наприклад, delete чи has.
Не буду писати ще одну детальну статтю про даний об'єкт, адже розумні люди вже написали такі, тому просто пораджу прочитати одну з них.
Читати статтю
#interview
👍16🔥6❤3🤔1🤯1
Що виведе консоль?
Anonymous Quiz
45%
Jane Doe, John Smith, Anonymous
14%
Jane Doe, John Smith, undefined
27%
Doe, Smith, Anonymous
13%
Doe, Smith, undefined
👍22🤔5🤯4🔥3👏2❤1
#todo описати останній таск, який став для вас справжнім челенджем 🤯
👍14❤2🔥1👏1🤔1😢1
Setup frontend project
Як човен назвеш - так він і попливе. А в нашому випадку - як засетапиш проект 😉
Насправді, це дуже важливо грамотно налаштувати проект напочатку, адже вам далі з ним працювати. Також важливо нічого не забути, щоб потім не допилювати і не переробляти все на ходу. Тому ловіть від мене коротенький гайд, який (сподіваюсь) допоможе вам у цій справі.
- обрати фреймворк/бібліотеку. Якщо ви працюєте на компанію, думаю, цей вибір зроблять без вас і просто поставлять перед фактом на чому має бути написаний поект. Якщо це ваша відповідальність - оцініть з чим ви вмієте добре працювати (адже ваша ефективність - це важливо), і найголовніше, що підходить даному проекту.
- обрати мову. Вибір між JS або TS (якщо такий вибір є). Ну тут зрозуміло, що я рекомендую (TYPESCRIPT).
- безпосереднє налаштування. Маю на увазі вибір чим зібрати проект (webpack, vite, rollup тощо), або, якщо це реалізовано під капотом, то трішки покопатись в налаштуваннях також не завадить.
- налаштування стилів. Сюди входить вибір бібліотеки/препроцесору і його налаштування. Якщо будете писати на чистому css, не спішіть пропускати даний крок - ресетнути стилі, додати всі необхідні фонти також потрібно.
- eslint/prettier/stylelint. Якщо хочете мати безлад в коді, прошу дуже, можете пропустити цей крок.
- git hooks. Маєте пост на дану тему - відкрити посилання.
- git actions. Автоматичний деплой, перевірка пулл реквестів, запуск тестів на GitHub само не з’явиться, це також бажано налаштувати.
- state manager. Будете використовувати зовнішню бібліотеку чи обійдетесь вбудованим функціоналом важливо вирішити напочатку і налаштувати все для зберігання даних.
- тести. Якщо є потреба покривати проект тестами (а вона точно є), підготуйте все для цього.
- структура. Створіть всі необхідні для початку папки, щоб бачити, що і де у вас буде знаходитись.
- деплой. Не завжди дану задачу покладають на тендітні плечі фронтенд розробника, але якщо це ваша відповідальність - це також потрібно налаштувати відразу.
*оновіть favicon та title відповідно до проекту. Не знаю куди це віднести. Просто не забудьте.
Я ще люблю напочатку налаштувати лоадер і базові сповіщення, але це можна винести в окремі таски і залогувати на це ще мільйон годин (як я, в принципі, завжди і робила).
На цьому все. Успіхів вам! 💛
#experience
❗️До кінця розіграшу залишилось 12 днів - доєднатись
Як човен назвеш - так він і попливе. А в нашому випадку - як засетапиш проект 😉
Насправді, це дуже важливо грамотно налаштувати проект напочатку, адже вам далі з ним працювати. Також важливо нічого не забути, щоб потім не допилювати і не переробляти все на ходу. Тому ловіть від мене коротенький гайд, який (сподіваюсь) допоможе вам у цій справі.
- обрати фреймворк/бібліотеку. Якщо ви працюєте на компанію, думаю, цей вибір зроблять без вас і просто поставлять перед фактом на чому має бути написаний поект. Якщо це ваша відповідальність - оцініть з чим ви вмієте добре працювати (адже ваша ефективність - це важливо), і найголовніше, що підходить даному проекту.
- обрати мову. Вибір між JS або TS (якщо такий вибір є). Ну тут зрозуміло, що я рекомендую (TYPESCRIPT).
- безпосереднє налаштування. Маю на увазі вибір чим зібрати проект (webpack, vite, rollup тощо), або, якщо це реалізовано під капотом, то трішки покопатись в налаштуваннях також не завадить.
- налаштування стилів. Сюди входить вибір бібліотеки/препроцесору і його налаштування. Якщо будете писати на чистому css, не спішіть пропускати даний крок - ресетнути стилі, додати всі необхідні фонти також потрібно.
- eslint/prettier/stylelint. Якщо хочете мати безлад в коді, прошу дуже, можете пропустити цей крок.
- git hooks. Маєте пост на дану тему - відкрити посилання.
- git actions. Автоматичний деплой, перевірка пулл реквестів, запуск тестів на GitHub само не з’явиться, це також бажано налаштувати.
- state manager. Будете використовувати зовнішню бібліотеку чи обійдетесь вбудованим функціоналом важливо вирішити напочатку і налаштувати все для зберігання даних.
- тести. Якщо є потреба покривати проект тестами (а вона точно є), підготуйте все для цього.
- структура. Створіть всі необхідні для початку папки, щоб бачити, що і де у вас буде знаходитись.
- деплой. Не завжди дану задачу покладають на тендітні плечі фронтенд розробника, але якщо це ваша відповідальність - це також потрібно налаштувати відразу.
*оновіть favicon та title відповідно до проекту. Не знаю куди це віднести. Просто не забудьте.
Я ще люблю напочатку налаштувати лоадер і базові сповіщення, але це можна винести в окремі таски і залогувати на це ще мільйон годин (як я, в принципі, завжди і робила).
На цьому все. Успіхів вам! 💛
#experience
❗️До кінця розіграшу залишилось 12 днів - доєднатись
👍32❤12🤔1🤩1
Хей 👋
На минулому тижні разом з вами ми придумали спільну традицію - кожну п'ятницю спілкуватись в чаті лише англійською! Так як це ми проводимо вперше, давайте дізнаємось більше один про одного. Тому ...
👉 Name three facts about yourself - two of them must be true and one must be a lie. Guess the lying fact from other guys.
Good luck and have a good Friday! 💛
#english_friday
❗️До кінця розіграшу залишилось 11 днів - доєднатись
На минулому тижні разом з вами ми придумали спільну традицію - кожну п'ятницю спілкуватись в чаті лише англійською! Так як це ми проводимо вперше, давайте дізнаємось більше один про одного. Тому ...
👉 Name three facts about yourself - two of them must be true and one must be a lie. Guess the lying fact from other guys.
Good luck and have a good Friday! 💛
#english_friday
❗️До кінця розіграшу залишилось 11 днів - доєднатись
👍21❤3❤🔥2🔥2🎉1🤩1
12-factor application
Коли ви розробляєте додаток, ви приймаєте різні рішення щодо його архітектури та стилю. Для покращення якості проектів часто створюють різні набори принципів, практик та правил, або, якщо коротко, методології. Один сильно технічний замовник з немалим досвідом розповів мені про одну з них, яку ми потім намагались застосувати для нашого проекту.
Застосунок 12-ти факторів - це методологія для створення веб-застосунків, яка описує фактори, що впливають на масштабованість, переносимість та можливість розгортання на хмарних платформах, або просто ті, які зможуть значно полегшити вам життя та розробку.
Давайте глянемо на декілька з них:
- оголошення та ізоляція залежностей - всі залежності вашого застосунку мають бути описані (package.json, Pipfile) для того, щоб можна було з легкістю зрозуміти, що потрібно встановити, та мають бути ізольованими (node_modules/, virtualenv).
- конфігурація - налаштування, що можуть змінюватись для різних середовищ, мають перебувати саме в змінних оточення. Щоб було простіше, згадайте .env файли, process.env або os.getenv.
- dev/prod паритет - застосунок проектується для Continuous Deployment, отже потрібно мінімізувати різницю між dev та prod середовищами. Завдяки цьому, ви зможете побачити однакову поведінку при розробці та в релізі, тому зможете релізитись хоч щогодини.
Як не дивно, там є ще 9 правил (бо всього 12), тому переходьте за посиланням і дивіться повний опис.
Читати документацію
Звісно, буває нелегко дотримуватись багатьох правил. Дану методологію, наприклад, часто критикують через її заточеність під Heroku (саме розробники платформи Heroku описали правила 12-factor додатку).
Насправді методологій існує дуже багато і вони надзвичайно різняться між собою, тому я, переважно, ознайомлююсь з ними і обираю тільки ті практики, які зможуть значно покращити мій проект.
#article
❗️До кінця розіграшу залишилось 11 днів - доєднатись
Коли ви розробляєте додаток, ви приймаєте різні рішення щодо його архітектури та стилю. Для покращення якості проектів часто створюють різні набори принципів, практик та правил, або, якщо коротко, методології. Один сильно технічний замовник з немалим досвідом розповів мені про одну з них, яку ми потім намагались застосувати для нашого проекту.
Застосунок 12-ти факторів - це методологія для створення веб-застосунків, яка описує фактори, що впливають на масштабованість, переносимість та можливість розгортання на хмарних платформах, або просто ті, які зможуть значно полегшити вам життя та розробку.
Давайте глянемо на декілька з них:
- оголошення та ізоляція залежностей - всі залежності вашого застосунку мають бути описані (package.json, Pipfile) для того, щоб можна було з легкістю зрозуміти, що потрібно встановити, та мають бути ізольованими (node_modules/, virtualenv).
- конфігурація - налаштування, що можуть змінюватись для різних середовищ, мають перебувати саме в змінних оточення. Щоб було простіше, згадайте .env файли, process.env або os.getenv.
- dev/prod паритет - застосунок проектується для Continuous Deployment, отже потрібно мінімізувати різницю між dev та prod середовищами. Завдяки цьому, ви зможете побачити однакову поведінку при розробці та в релізі, тому зможете релізитись хоч щогодини.
Як не дивно, там є ще 9 правил (бо всього 12), тому переходьте за посиланням і дивіться повний опис.
Читати документацію
Звісно, буває нелегко дотримуватись багатьох правил. Дану методологію, наприклад, часто критикують через її заточеність під Heroku (саме розробники платформи Heroku описали правила 12-factor додатку).
Насправді методологій існує дуже багато і вони надзвичайно різняться між собою, тому я, переважно, ознайомлююсь з ними і обираю тільки ті практики, які зможуть значно покращити мій проект.
#article
❗️До кінця розіграшу залишилось 11 днів - доєднатись
❤15👍4🔥2🤔1🤯1