Evo Dev Club


Гео и язык канала: Украина, Русский
Категория: Технологии


Посилання, анонси, корисні відео для розробників від dev-команди EVO
Про Evo https://jobs.dou.ua/companies/evo/
Автор @brabadu

Связанные каналы

Гео и язык канала
Украина, Русский
Категория
Технологии
Статистика
Фильтр публикаций


🍠 GitLab написали довгий пост про те, як вони боролися з лейтенсі у Redis.

https://about.gitlab.com/blog/2022/11/28/how-we-diagnosed-and-resolved-redis-latency-spikes/

Redis - відносно проста штука, яка під навантаженням їсть і памʼять і процессор. Головне, що можна винести з цього великого допису - не дотягуйте розмір вашого редіса до maxmemory, який встановлений. Те саме і щодо CPU - якщо стандартне навантаження вже перевалює за 70-80%, то краще пошукати способи знизити навантаження.

Інакше при будь-якому збільшенні навантаження матимете змогу (або й необхідність) використати круті перфоманс-тули, які намалаюють вам багато графіків і вам доведеться з ними розбиратися.

#redis #performance


Репост из: Євгеній Гизила
prefetch_related в Django

Недавно займався код-ревю Django проєктів і постійно бачив одну й ту ж проблему — N+1 запит. Для прикладу, ви робите один запит, щоб дістати 100 оголошень у вашому маркетплейсі, а потім ще 100 додаткових запитів, щоб дістати дані про магазин по кожному оголошенню. Сумарно у вас виходить 101 запит 😨: ваша база навантажена, клієнти довго очікують відповідь від сервера і ви прогріваєте повітря марною роботою.

В Django таку проблему легко може не помітити навіть досвідчений розробник, оскільки в Django ORM об’єкти є “розумними” і якщо ви дістаєте атрибут підв’язаної моделі, то Django зробить додатковий запит, щоб дістати підв’язану модель. Найлегше такі речі віднайти рев’юверу в циклах, де спочатку автор дістає список чогось з бази даних, а потім, обробляючи список у циклі, дістає підв’язану модель:

products = Product.objects.all()
for product in products:
print(product.shop.name)

Але є місця, де цикли заховані в самому Django і в такому випадку приходиться уважно передивлятися як отриманий список об’єктів обробляється до самого кінця запиту. На прикріпленому фото канонічний приклад такого захованого циклу.

Найлегше вирішити цю проблему, додавши .prefetch_related до запиту, який дістає список чогось (або .select_related, якщо ви розумієте різницю між цими методами). Метод .prefetch_related зробить додатковий запит і дістане всі підв’язані моделі одним запитом і покладе у внутрішній кеш. Унаслідок чого Django зробить два запити: один, щоб дістати оголошення, а один, щоб дістати магазини :

Products.objects \
.prefetch_related('shop') \
.all()

Щоб уникнути N+1 запиту в майбутньому, треба, в першу чергу, знати про таку проблему, можна спробувати тестувати кількість запитів або, найпростіше, при локальній розробці запускати базу в режимі логування всіх запитів і уважно слідкувати, щоб там не було сотні однотипних запитів.


⚙️ Лінк від нашого найкращого спеціаліста із Data Science Данила Петраківського

Всі ж пам'ятають з університету предмет "Архітектура комп'ютера" / "Принципи побудови комп'ютера"? А представлення чисел у ньому? Терміни byte, int, long, float, double вам про щось говорять, вірно?

Саме час брати на озброєння новий тип даних: bfloat16. Він особливо стане вам у нагоді, якщо перетинаєтеся з глибоким навчанням. Як саме? Читаємо в статті: https://www.johndcook.com/blog/2018/11/15/bfloat16/

#architecture


Репост из: Неизвестно
Fwdays team продовжує підтримувати захисників та захисниць України 🇺🇦, до чого закликаємо і вас!

В рамках подкасту Fwdays Tech Talks, 9 серпня (вівторок) о 18:00 (GMT+3) ми проведемо благодійний live stream з Анастасією Войтовою: кібербезпека під час війни.

Анастасія (security software engineer у Cossack Labs) є експертом у сфері криптографії та захисту даних.
Ведучий – Олександр Соловйов.

В рамках стріму поговоримо про використання консюмерської техніки у війні (очікування vs реальність), про захист даних та криптографію ”на колінці”, про кібербезпеку під час війни: appsec + datasec + iot sec та волонтерів, які розробляють застосунки і веб-проєкти для переселенців або підтримки військових. Також, кожен зможе приєднатись до обговорення і поставити своє питання Анастасії чи Олександру.

І, вже традиційно, ми збиратимемо кошти для наших бійців з передової.
🎯 Наша ціль – зібрати 200 000 грн на зв’язок для 14ої бригади ЗСУ.

Серед учасників ми розіграємо прапор України підписаний захисниками та 2 марки про рускій корабль 🎁

Дізнатись більше про стрім, теми, а також задонейтити вже зараз – https://fwdays.com/event/stream-voitova

Посилання на Youtube стрім – https://bit.ly/3bJCDcR
Ставте нагадування, підписуйтесь і до зустрічі у вівторок!

Слава Україні! 💙💛


🧑‍🏫 Projector створив платформу, на якій за донат можна поспілкуватися з менторами по різним напрямкам.

Я долучився до команди менторів. Тож якщо у вас є питання щодо розробки, команд, процесів, бігом букайте зустріч зі мною або натовпом інших менторів.

Також від Ево серед менторів є:
- Микита Артемчук, наш кращий спеціаліст з розвитку продуктів і Chief Product Officer у Prom.ua
- Свят Логін, наш кращий спеціаліст з тестування та безпеки і Head of QA Evo, та автор тематичного тг-каналу

#people #evo


🎙 Нарешті записали випуск WatEvoCast, цього разу без гостей. Говорили про прийдешній Python 3.11, але як завжди згадали всього потроху

https://podcast.evo.run/episodes/19/

Також на Apple Podcasts та Google Podcasts

#watevocast


⛓ Наш колишній колега Андрій Бовсуновський, у своєму блозі розказує про свій погляд на роботу з технічним боргом.

Звертайте увагу на вартість функціоналу (feature cost) та повну цінність технічного рішення (LTV), замість технічного боргу. А от намагання занадто прискорити випуск нового функціоналу веде до проблем, з якими потім доведеться розбиратися. Надійне рішення вимагає адекватного планування та часу, щоб його зробити.

Єдине, що не можу погодитися з першим же заголовком Technical Debt is Fiction, бо коли от він перед тобою, то його вже не розвидиш

#architecture


📽 Я дуже люблю MyPy у Python. На великих проектах ця штука дозволяє хоча б мінімально розуміти які дані ходять в тебе між функціями.

Розумію і всі мінуси, і складність в деяких випадках, і неможливість покрити все зовсім. Але як на мене, це значно краще ніж нічого.

На останньому PyCon US один кор-девів Łukasz Langa зробив кейноут, в якому розказав як спростити собі життя, коли пишете аннотації типів

https://www.youtube.com/watch?v=wbohVjhqg7c

#video #python


👩‍🚀 Один мій колишній колега і добрий знайомий ще давно казав, що програмування в тому вигляді, як воно є зараз це страшний, жахливий олдскул. В нас сплошні полотна тексту, які в кращому випадку розмальовані ІДЕшкою в різні кольори. Нам, як програмістам, має бути все одно в якому конкретному файлі лежить конкретна функція чи структура. Ми хочемо взяти її і використовувати. Тому мають зʼявитися інструменти, які нас від цього абстрагують.

От один з таких прикладв - на JS або Python. Виглядає класно, все у окремих блоках, аутпут одного можна передати до іншого. Є імпорти, прикольна візуалізація масивів і ще багато різних приколів. Але важко собі уявити великий продукт, розроблений в такому стилі. Версіонування, рефакторинг, пошук по коду - все це можна накрутити зверху, але якщо подібне і стане мейнстрімом, то із зовсім новою мовою, адекватно адаптованою під подібні середовища. Щось більше схоже на SmallTalk.

Як думаєте, через 10 років так і будемо створювати файлики, чи перейдемо на програмування мишкою?

#future #ornot


Репост из: Fwdays
Прем’єра доповіді “Web Vitals monitoring & optimizations” від Ерiка Гiмiранова вже на нашому YouTube каналі 😊

Перфоманс — один з ключових факторів, що визначають користувацький досвід продукту. Дуже важливо, щоб сайт швидко завантажувався, був адаптивним і інтерактивним, а контент залишався стабільним.
У доповіді Ерік розповідає навіщо потрібно стежити за перфомансом додатків, розповість про Web Vitals метрики та інструменти для їх вимірювання. А також, наводить приклади оптимізацій, які можуть позитивно вплинути на метрики та які результати можна з цього отримати.

Відео за посиланням ➡️ https://youtu.be/6cgitaV72A4

Мова доповіді - російська


Наш кращий спеціаліст, лід команди розробки Ерік Гіміранов розказував на FWDays JS як навести порядок з Core Web Vitals на вашому сайті.


Ну що, війна триває, ми тримаємося, підтримуємо один одного та ЗСУ. Більшість повернулися в робочий режим, я тут на каналі теж намагатимуся повернутися. Чим краще підготуємося, навчимося новому та ефективніше будемо працювати - тим швидше переможемо.

Все буде Україна 🇺🇦 !


Репост из: DOU #tech
Видео недоступно для предпросмотра
Смотреть в Telegram
🙌 Привіт від Святослава Логіна, Head of QA в компанії EVO. Відео – короткий екскурс з інструкцією та порадами як DDOSити рашистські сайти. Приєднатися до кібер-війська зможе кожен, а з такою інструкцією тим більше!

00:00 – овервью
01:02 – про Святослава Логіна
01:45 – чому варто відволіктися від новин
03:55 – короткий екскурс як долучитися до кібер-війська (інструкція як DDOSити російські сайти)
06:05 – який VPN обрати

Долучайтеся на форумі до обговорення відео-інструкції від Святослава: https://dou.ua/forums/topic/37662/

💌А тим, хто бажає поділитися цікавою технічною інформацією у вигляді короткого відео чи аудіо звертайтеся у приватні повідомлення до @d_goncharuk

Разом ми п
ереможемо!🇺🇦

Сподобалось відео?

999 0 14 2 15

Наш найкращий спеціаліст з тестування Свят розказує як ДДОСити ворога ❤️


Содержимое скрыто


https://t.me/itarmyofukraine2022
З назвою помудохалися, видно :)


Репост из: Неизвестно


Содержимое скрыто


🧠 Разработчики EVO поддерживают более 30 опен-сорс проектов. Подробнее о некоторых мы уже писали, а сегодня решили осветить тему того, как разработчикам поддерживать свои проекты.

Вот несколько простых вещей, которые вы, как разработчик открытого проекта, можете сделать за пару дней:

Опишите ваш Contributing Guidelines
Сделайте CONTRIBUTING.md файл и опишите то, что считаете необходимым, чтобы новым контрибьюторам было легче вам помочь. Это может быть архитектура проекта, правила именования файлов, описание как запускать тесты, как быстро развернуть дев энвайромент и т.д.

Сделайте шаблоны для Issue и Pull Request
Это снимет вам гору с плеч и сильно ускорит рассмотрение issues и pull requests. Шаблоны можно подсмотреть у других проектов.

Эти и много других советов можно прочитать в этой классной обзорной статье от опытного опен-сорс солдата.

#opensource


♻️ СТО Prom.ua Виталий Харитонский на последнем Software Architecture FWDays рассказывал о том, как Пром обрабатывает запросы пользователя. Все детали от ДНС, лоад балансинга, до авторизации и самого маленького микросервиса

Другие видео с конференции тоже становятся постепенно доступны, советую посмотреть

https://www.youtube.com/watch?v=urR97QharXs

#video #architecture

Показано 20 последних публикаций.

732

подписчиков
Статистика канала