Жабаскрипт (веде Віктор Турський)
4.57K subscribers
21 photos
2 videos
270 links
Авторський контент для JavaScript розробників, але не завжди про JS:). Пишу про архітектуру, best practices, продуктивність, безпеку, інструментарій.

Viktor Turskyi (@koorchik), Cofounder at Webbylab, SWE at Google

Рекламу не розміщую!
Download Telegram
Чому алгоритми важливі?
Записав нове відео, у якому спробував пояснити:
Що таке алгоритмічна складність на реальних прикладах.
Чому алгоритмічна складність й швидкість виконнання це різні речі.
Як працюють індекси в базах даних.

Це моє перше відео в форматі скрінкасту. Як вам такий формат, коли розбираємо тему на прикладі реального коду?

Підписуйтесь! По темі відео залишайте коментарі на ютубі під відео
https://youtu.be/9Gtwj0Eo8IY
👍47🔥62
Навіщо потрібні індекси в базі даних? Розберемо на прикладі
Запланував серію відео про бази даних. Почнемо з простого🙂:
Чому ваші база працює повільно?
10 млн рядків в базі, чи це багато?
Навіщо потрібні індекси в базах даних?
Як працюють індекси в базах даних?

Підписуйтесь! По темі відео залишайте коментарі на ютубі під відео
https://youtu.be/YF8xDeYlG9w
👍43🔥11
Ціль 3 тис підписників 😎
Дякую всім, хто проголосував. Більше половини за додавання патріону, а що дуже приємно, що є люди, які вже готові стати патронами 🙏. Але майже половина за те, що варто почекати поки канал стане більшим. Тому вирішив, що додам патріон, коли буде більше 3тис підписників (зараз майже 1тис).
Як допомогти каналу без патріону:
Ділиться посиланням на канал з друзями
Залишайте лайкі й коментарі під відео
Діліться ідеями відносно покращення каналу
Всім дякую за підтримку!
33👍11🔥4
Service Weaver - концепція модульного моноліту від Google
В продовження теми моноліти чи мікросервіси хотів поділитися новиною про новий фреймворк від Гугл. Фреймворк для Go, але нас в першу чергу цікавить сам підхід. Основна ідея, що він розділяє процес деплойменту й процес написання коду. Тобто ми пишемо моноліт, який можно задеплоїти як мікросервіси. Я в Гуглі теж використовую схожий фреймворк.

Що Гугл думає про моноліти й мікросервіси:
While writing microservices-based applications, we found that the overhead of maintaining multiple different microservice binaries—with their own configuration files, network endpoints, and serializable data formats—significantly slowed our development velocity. More importantly, microservices severely impacted our ability to make cross-binary changes.
As a result, we wished we had a single monolithic binary to work with. Monolithic binaries are easy to write: they use only language-native types and method calls. They are also easy to update: just edit the source code and re-deploy. They are easy to run locally or in a VM: simply execute the binary.

Тобто хочеться писати моноліт й мати можливість його легко рефакторити (в мікросервісах переміщувати код між сервісами складно, а міняти API ще складніше), релізити цілим бінарем (в мікросервісах треба думати про сумісність сервісів), менеджерити один конфіг (а не для кожного мікросервісу окремо), не паритися з сервіс дісковері, трейсебіліті, не мати оверхеду на RPC поки це не стано реально потрібне та великою кількістю інших проблем.
Service Weaver якраз намагається розідлити те, як ми пишем код й як він потім запускається.
Пост про фреймворк - https://opensource.googleblog.com/2023/03/introducing-service-weaver-framework-for-writing-distributed-applications.html

PS: в цьому контексті він мені дещо нагадує підходи в Python WSGI, Perl PSGI, Ruby Rack (дивно, що такого не зробили в NodeJS), але йде значно далі - не тільки абстрагує запуск компонента, але цілої системи й внутрішньої взаємодії
🔥31👍10
Дерева. Пошук. Алгоритми.
Нове відео на каналі https://youtu.be/7xoYPVZVHX4

PS: це підготовче відео, а в наступний раз розберемо, як індекси працюють ще більш детальному рівні й будемо робити практичні висновки. Як ці знання впливають на наші рішення в контексті використання бази даних
👍58
18 березня (субота) DevOps fwdays’23!
Безкоштовна для всіх, за умови реєстрації.

Конференція від FWDays - завжди їх раджу. Перегляд прямих трансляцій безкоштовно. Щоб мати доступ до записів всіх ефірів та поспілкуватися зі спікерами потрібен платний квиток. Промокод на знижку в 10% - 6399F10B98

Спікери та доповіді:
PJ Hagerty (Spotify) — виступить із доповіддю “Innovation and Iteration - Understanding how we improve”
Geert van der Cruijsen (Xpirit) — презентує доповідь “Building resilient cloud applications with Chaos engineering & Azure Chaos Studio”
Serg Hospodarets (Global Head of Engineering) — розповість про “Platform Engineering in practice — Why and How to start”

Деталі за посиланням 🔗https://bit.ly/3ynN0Lp
👍14
Хешування, шифрування, кодування
Часто бачу плутанину в цих поняттях. Тому вирішив зняти коротке відео про:
Шифрування
Хешування
Кодування
В подальших відео будемо розбирати все в деталях.

По темі відео залишайте коментарі на ютубі під відео
ВІДЕО: https://www.youtube.com/watch?v=GQ0rDbJCKhQ
👍54
JavaScript fwdays’23! - 16 та 20 травня (вівторок та субота)

Є два варіанти участі:
✔️FREE ONLINE
✔️FULL ONLINE (доступ до записів всіх ефірів після івенту, участь у воркшопах)
Промокод F01624DEAF на 10% знижки.

🎙 Доповіді, які я планую подивитися:
Eric Meier - Build better apps using CRDTs. Я багато копався в свій час в різних CRDT
Олексій Левжинський – Grokking System Design interview for Front-end Engineer. Цікаво, як воно проходить в Grammarly
Ілля Климов (поки без теми)
Роман Савіцький (поки без теми)
Arman Murzabulatov - Easy and scalable serverless backend for your next mobile or web app. Цікаво, оскільки сам працюю в GCP Serverless

Але інші доповіді теж варті уваги.
Деталі тут: https://bit.ly/3n5yMfw
🔥23👍32🤔1
Як працюють індекси в базах на прикладі. MySQL vs Postgres. UUID vs Auto Increment.
Нове відео на каналі.

Спробував відповісти на наступні питання:
Як працюють індекси?
Що таке кластерний індекс?
Різниця між MySQL та Postgres при роботі з індексами?
Пару слів про MVCC й Heap Only Tuple
Чому UUID може з'їсти ваші гроші?
Що таке covering index?
Як OFFSET впливає на виборки?
Як індекси впливають на INSERT?

По темі відео залишайте коментарі на ютубі під відео
ВІДЕО: https://youtu.be/Ot7b03Fj_mo
37🔥167👍4
Сергій Бабіч та Дивовижний світ веб-розробки
Радий, що стає більше якісного україномовного контенту на ютубі. 🇺🇦 💪
Й хочу порадити ще один канал - канал Сергія Бабіча про веб-розробку.

У Сергія на каналі є речі, яких у мене на каналі мабуть ніколи не буде(бо я в них не шарю 🙈) - про верстку й CSS. Тому й сам вчуся на його відео :)

З Бабічем ми випили не одне пиво на різних автепаті, а тепер обмінюємся досвідом вже в форматі ютуб відео 😁

Підписуйтесь - https://www.youtube.com/@babichweb 👍
👍459🔥6
Як працює Base64 й навіщо він потрібен?
Нове відео на каналі.

Спробував відповісти на наступні питання:
Навіщо потрібен Base64?
Як працює Base64 й чому об'єм даних зростає?
Чи буває Base32 та Base16 й навіщо він потрібен?
Що всередині JSON Web Token?
Чи передає Basic Auth пароль відкритим текстом?
Як закодувати картинку в Base64?
UUID Hex vs Binary

По темі відео залишайте коментарі на ютубі під відео
ВІДЕО: https://youtu.be/QCL0EOKDqKY
🔥57👍114
Прямий ефір з обговоренням цікавих доповідей з Google IO в четвер 11 травня в 19:00
Наступного тижня пройде Google IO 2023. Це івент для девелоперів, де Google розповідає про різні свої нові технології й фічі. Виникла ідея влаштувати обговорення цікавих штук в форматі стріму разом з GDG Cloud Kyiv.

Анонс стріму - https://xn--r1a.website/GDGCloudKyiv/26 (вже можна реєструватися 😉)
Список доповідей - https://io.google/2023/program/
Посилання на стрім - https://www.youtube.com/watch?v=Zq-Pv4g3JC4

PS:
Якщо цікаво, чому давно не викладав відео на ютуб, то мав встигнути фічу на Google IO. Буде доповідь - https://io.google/2023/program/0c366b38-22a6-419f-bad6-305e4f92bcf8/
👍21🔥3
Жабаскрипт (веде Віктор Турський)
JavaScript fwdays’23! - 16 та 20 травня (вівторок та субота) Є два варіанти участі: ✔️FREE ONLINE ✔️FULL ONLINE (доступ до записів всіх ефірів після івенту, участь у воркшопах) Промокод F01624DEAF на 10% знижки. 🎙 Доповіді, які я планую подивитися: Eric…
Нарешті офлайн зустріч від Fwdays 😎
Вже завтра конфа JavaScript fwdays 23 (деталі в пості https://xn--r1a.website/jabascript/247) й мені тільки що сказали, що Fwdays також підготували місця, де можна зібратися, щоб подивитися конференцію 🍿

Це безкоштовно, але потрібна реєстрація:
📍 Wroclaw, Poland, Proxet office, зареєструватися: https://bit.ly/3njTlp1
📍 Krakow, Poland, Wix Engineering office, зареєструватися: https://bit.ly/3NQtQ9W
📍 Київ, офіс Sigma Software, зареєструватися: https://bit.ly/3AIUgCH
📍 Львів, офіс Avenga, зареєструватися: https://bit.ly/3NvpDs0
📍 Хмельницький, Avenga (iHUB), зареєструватися: https://bit.ly/3NNqTHd
📍 Житомир, офіс Infopulse, зареєструватися: https://bit.ly/42j4s0N

❇️ Й РОЗІГРАШ ПЛАТНОГО КВИТКА: ❇️
Є один платний квиток для підписників, який ми розіграємо. Дає доступ до воркшопів й доступ до записіввсіх ефірів після івенту.
Умови розіграшу: Пишіть в коментарях до цього поста, яка доповідь найбільш цікава й сьогодні після 22:00 розіграємо. По одному повідомленню від користувача

PS: Й ще промокод на знижку в 10% F01624DEAF для всіх підписників
14🔥2👍1🤔1
Як працює повнотекстовий пошук?
Найдовше відео на каналі. Чи не занадто? 🙈

Як й обіцяв, пишемо на JS інвертований індекс 🤓

В відео спробував відповісти на наступні питання:
Навіщо потрібні інвертовані індекси й які їх можливості?
Чому не працюють звичайні індекси для повнотекстового пошуку?
Як влаштовані інвертовані індекси всередені?
Що таке стемінг й лематизація?
Які є механізми компресії інвертованих індексів?
Як працює VByte Encoding?
Як використати Map Reduce для побудови інвертованого індексу, коли індекс не влазить в пам'ять?
Як створити інвертований індекс в MySQL

По темі відео залишайте коментарі на ютубі під відео
ВІДЕО: https://youtu.be/nu5Le4YDhPA
👍5711🔥11
2 роки в Google
Сьогодні 2 роки, як я працюю в команді Google Cloud. Можу сказати, що тільки зараз я починаю по трохи розуміти, як все працює в Гуглі в контексті технологій й в контексті процесів. Не очікував, що це вимагає стільки часу, але інфраструктура Гугла величезна. Також можу сказати, що кількість всього з чим доводиться працювати достатня велика, тому навіть пишучи 2 роки на TypeScript й Angular я все ще не можу назвати себе експертом в цих технологіях (хоча до цього я багато років працював з React й вважаю себе експертом в ньому, з версії 0.4 він у мене був вже продакшені).

Які основні висновки можна зробити:
1. В Гуглі дуже крута команда й рівень всіх Гуглерів дуже високий (інженери, менеджмент, продакти, UX й так далі).
2. Те, що за межами Гугла, ви звикли робити за пару місяців, в Гуглі ви будете робити півроку. Й причина не в бюрократії (її практично немає), а в масштабі - величезна кількість різних підсистем, які треба між собою узгодити. Також інший підхід, бо на базі Google Cloud побудована величезна кількість інших продуктів клієнтів й краще вам не ламати Google Cloud.
3. Повний овнершип за фічу добре працює, але підходить не всім. Я вже 2-3 тижні не заходив на віртуалку, де пишу код, бо весь цей час я пишу й читаю гугл доки. Моя задача (як сеніор інженера) разпланувати роботу до кінця року, оцінити й узгодити її з усіма іншими (менеджерами, продактами, іншими інженерними командами й так далі). Ну, й звісно разом з моєю командю все це релізнути до кінця. Оскільки в Гуглі немає проджект менеджерів (але є engineering managers), то кожен інженер сам відповідає за менеджмент свого міні-проекту (фічі). В результаті в Гуглі інженеру доводиться розвивати скіли вшир (й в контексті технологій теж).
4. Навіть з бюджетами Гугла роботи завжди більше, ніж є людей на неї.
5. Чи ідеальний код в Гуглі? Ні. Технічний борг існує практично в кожному проекті. Але технічний борг не ігнорується й його менеджмент це частина процесу розробки.

Спочатку я звертав увагу на різні аспекти роботи, які відрізняються від того, що я бачив за межами Гугла. Але потім перестаєш помічати й зараз навіть складно це побачити, оскільки вже довгий час знаходишся всередені іншої системи.
👍1519👨‍💻5🔥4🎉4🤔2👎1
LIVR - можливо найшвидший валідатор під JS 🙊
Колись вже писав про LIVR - https://xn--r1a.website/jabascript/218

Але в цей раз вирішив зробити бенчмарк. Ніколі до цього не тестував його перформанс й був вражений, наскільки інші популярні валідатори повільніші. Поки порівняв з Joi й JSON Schema - результати

Напишіть в коментарях під постом, який валідатор користуєте й чому. Хочу розширити бенчмарк.
👍12🔥2