Найкращі технічні статті IT-фахівців 2021 року. Підсумки DOU

Раніше ми вже опублікували підбірку найкращих статей ІТ-спеціалістів у 2021 році. Тепер поговоримо про технічні статті авторів DOU. У 2021 році в розділі «Технічні статті» було опубліковано понад 300 авторських матеріалів. У них ІТ-фахівці описували технічні рішення, кейси, приклади з різних напрямів розробки. У цьому огляді ми зібрали для вас найкращі технічні статті року. Критерії відбору: кількість переглядів, активність комʼюніті в коментарях і субʼєктивні враження редакції.

Автоматизація або нестандартні рішення

Автоматизируем передачу показаний счетчиков в коммунальные службы, не выходя из дома. В автора у квартирі був встановлений лічильник води, і йому потрібно було щомісяця «вручну» передавати показники, навіть якщо вони не змінювалися. Він вирішив автоматизувати передавання показників до комунальних служб і витратив на це декілька вечорів і 3620 гривень. Деталі читайте в статті.

Казочка про автоматизацію бізнесу. Створюємо кишеньковий пРРО. У цій статті Олександр Тішин розповідає, як створив найпростіший кишеньковий пРРО. А все тому, що його дружина, психологиня, зненацька стала зобов’язана видавати чеки. Він давно хотів автоматизовувати її бізнес. До цієї всієї історії в дружини вже був особистий вайберробот, який вираховував розмір єдиного податку. Цього разу автор створив робота у Телеграмі.

Разработка криптотрейдингового бота с помощью Python. Integration Engineer Олександр Вітер розповів про досвід автоматизації торгівлі криптовалютами за допомогою робота, написаного на Python. Також автор ділиться своїми висновками щодо торгівлі на криптобіржі.

Учим автомобиль парковаться самостоятельно с помощью 500 строк кода. Олексій Трехлеб, Software Engineer в Uber, розповідає, як за допомогою генетичного алгоритму розвинути мозок автомобіля та навчити його паркуватися самостійно.

Для джуніорів

Как перестать бояться и полюбить Clojure. Ілля Дозоренко пише про знайомство та початок роботи з мовою Clojure та про сфери її застосування. Стаття призначена для новачків у Clojure та для розробників, які цікавляться функціональним програмуванням.

WordPress. Гід для новачків. Сергій Поліщук — WordPress Developer у компанії YozmaTech. У цій статті він коротко розповідає про те, що таке WordPress, які знання необхідні для веброзробки на ній, а також додає список ресурсів для вивчення.

Ошибки, которые не учат: на что обратить внимание при изучении JavaScript. JavaScript — дуже об’ємна мова програмування з різними допоміжними та доповненнями, що може злякати програміста-початківця. Олексій Потюкаєв, Software Developer у NIX, зібрав у статті основні помилки новачків щодо JS. Читайте, на що звернути увагу під час самонавчання та на співбесіді.

Огляд фреймворків JavaScript. Що, для чого і коли використовувати. Розбігаються очі від світу JS-фреймворків? Їх на ринку велика кількість, адже кожний розв’язує певну проблему, а новачкам легко загубитися. Автор статті розібрав найпопулярніші JavaScript-фреймворки для поширених сценаріїв застосування у фронтенді, бекенді та мобільній розробці.

Хмарні технології: переваги та навички, потрібні для роботи з клаудами. Про навички, які варто опанувати програмістам, щоб працювати на потужному клауд-проєкті, та про основних провайдерів хмари розповідає Андрій Євчак, Lead Software Engineer в N-iX. На статтю його надихнуло зростання ринку cloud-інженерів.

Чистый код. Базовые принципы на примерах. У PHP найчастіше трапляються різноманітні «милиці» та «велосипеди». У цій статті Денис Оленін, Senior PHP Developer в AmoMedia, ділиться простими правилами, які допоможуть писати більш простий і підтримуваний код як новачкам, так і досвідченим розробникам.

Go

Як перекваліфікуватись з PHP на Go. Стаття буде цікава розробникам, які думають про перехід з PHP на Go. Ярослав Характерник детально порівнює мови, а також дає поради та список корисних ресурсів для вивчення. На момент написання статті автор мав 1,5 року досвіду роботи з Delphi, 4,5 роки — з PHP і 3 роки досвіду з Go.

JWT и Go. Как их «‎подружить» с тренованими безопасности. У цій статті Олександр Бричак, Golang Developer в NIX, обговорює проблеми, які виникають під час використання JWT-токенів у клієнтських застосунках, а також розглядає деякі цікаві рішення для бекенд-сервера, реалізованого на Golang.

50 відтінків Go по-українськи. Аналізуємо помилки. У цій статті Ярослав Характерник зібрав приклади помилок в Go та перевіряє чи знаходить їх статичний аналізатор коду. Матеріал буде цікавий Go-розробникам: як спеціалістам, так і новачкам.

Go ClickHouse example. Зберігаємо статистику. Стаття Ярослава Характерника про швидкість збереження в ClickHouse та організацію процесу збереження. На прикладі проєкту анонімного пошуку роботи, якому треба зберігати в статистику різноманітні події: онлайн, перегляд вакансії та відгук на вакансію. У матеріалі розглядається саме збереження подій, але щоб побачити повну картину, треба пофантазувати, яку статистику буде цікаво побачити користувачам.

.NET

Какие фичи C# 9 упростят тебе жизнь. Шпаргалка .NET-разработчику. Ця стаття — своєрідна шпаргалка для девелоперів з найкориснішими фічами C# 9, а також декількома функціями з попередніх версій. З кожною новою версією C# розробники прагнуть зробити весь процес програмування зручним. Цього разу найбільшу увагу приділили змінам властивостей об’єктів, новому типу Record і не тільки. Більше читайте в статті.

Більше ніяких паролів і секретів в Azure. Де зберігати секрети, паролі до баз даних та інше? Мабуть, на кожному проєкті точилися гарячі дискусії з цього приводу. Сергій Крам, Solution Architect в Intellias, розповідає про еволюцію керування секретами та про те, як можна працювати без них, а відповідно — без проблем.

.NET спустя 10 лет: актуальность технологий и навыков. Ця стаття покаже, як змінилася розробка на .NET за останні 10 років, які навички стали актуальнішими, а які вже застарілі. Її автор, Влад Фурдак, з платформою .NET працює близько 10 років і вирішив провести ретроспективу і заодно спрогнозувати, до чого все рухається і що варто знати.

Як масштабувати мікросервіси в Azure за допомогою принципу CQRS. Принцип імперативного програмування CQRS, його походження, складові та практичне використання для масштабування мікросервісів в Azure — у статті Сергія Селецького, Senior Solution Architect в Intellias. Автор розглядає реальні приклади структури проєкту та згадує тестування систем з CQRS-архітектурою.

Прокидывает ли async/await код в тот же поток. Одне з найпопулярніших питань, пов’язаних з async/await: як він прокидає код у той же потік? І чи прокидає взагалі? Якщо так, то за яких обставин? Володимир Вердиш, Senior Software Engineer, безпосередньо розбирає у статті це питання.

Тонкости C# : то, что вы всегда хотели знать, но боялись спросить. Владислав Фурдак, .NET-розробник, проводив велику кількість технічних інтерв’ю та стикався з тим, що навіть люди з великим досвідом часто не знають нюансів мови C#. Ця стаття допоможе заповнити прогалини. Буде корисна як новачкам, так і досвідченим розробникам.

С++

Чепурні мультиметоди для сучасного С++. Мультиметоди, або ж множинна диспетчеризація, — це механізм вибору однієї з декількох функцій залежно від динамічних типів або значень аргументів. Потреба в такому механізмі виникає, наприклад, в архітектурних рішеннях, де численні класи взаємодіють між собою у специфічний для кожної пари спосіб. C++ на рівні мови не підтримує такий механізм, а пропозиції щодо розширення C++ схожими інструментами не входять до попереднього плану C++23. У цій статті автор розглядає, які підходи можна застосувати для різних сценаріїв використання.

Front-end

Розбираємось з Union-типами в TypeScript. Сергій Білик, Front-end Developer, розбирає, чому краще використовувати Union types замість Enum та як правильно з ними працювати. Більшість прикладів, які він описує, взяті із запитань на Stack Overflow, тобто, найімовірніше, будуть корисні на практиці.

Архитектура фронтенд-приложений — миф или реальность. Дмитро Брагинець вважає, що фронтенд-інженери схильні до технологічних рішень, а не архітектурних. Знайти проєкти зі справді крутими та «навороченими» локальними рішеннями легко, але розширювати чи модифікувати їх доводиться радше всупереч. У статті йдеться про архітектурні підходи на фронтенді.

TypeScript — это не только про аннотацию типов. Примеры из практики. Здавалося б, у 2021 році говорити про TypeScript дещо пізно — технологія вже відома та популярна. Проте Віталій Рубан, TechLead в Itera, приніс кілька цікавих і суто практичних кейсів, щоб показати, що TS може значно більше, ніж дехто думає.

JavaScript

В чем разница между Subject, BehaviorSubject, ReplaySubject и AsyncSubject. RxJS важко уявити без Observers та Observables. Але з Subjects часто виникають труднощі: розробники, особливо початківці, не до кінця розуміють різницю між їхніми видами. У цій статті Владислав Василенко, Software Engineer у Dev.Pro, наводить приклади коду та аналогії з життя, які мають максимально спростити цю тему для розуміння.

Архитектура JS Back-end: подводные камни, принципы работы, лайфхаки. Олександр Бідюк, Full Stack, JS техлід у CoreTech, написав керівництво для вибору стеку та підходів до розробки продукту на JS. А ще розповів про можливості Node.js та архітектуру, підводні камені й лайфхаки.

Как создать безопасную авторизацию пользователей с помощью UUID. Створити прозору, розширювану та безпечну систему авторизації користувачів — завдання, з яким зіткнувся Микита Мачехін, Node.js-розробник в OBRIO. У статті він розповідає про рішення, порівнює підходи, розбирає, які підводні камені бувають при створенні модуля авторизації, і пише авторизацію в застосунку з нуля на прикладі Node.js.

Node.js: Worker Threads проти C++ Addons. CPU-bound завдання — одна з найбільших проблем JavaScript. У цій статті Олексій Новохацький, Software Engineer, розкриває шляхи її вирішення. А щоб донести основну ідею, процес та результати досліджень, він обрав найпопулярнішу, найкрутішу та найпросунутішу гру 1999 року — Heroes of Might and Magic III. Читайте про боротьбу команди Node.js зі злом!

Тестування

Как тестировать продукты с AI под капотом. Ця стаття буде корисною керівникам команд тестування та менеджерам з управління якістю на проєктах, де планують або вже впровадили ML. Досвід Артема Прищепова, який оптимізує QA-процеси, може також стати в пригоді тестувальникам, які хочуть зрозуміти принципи тестування ML в реальній роботі.

Проверка доступности сайта: обзор инструментов для accessibility testing. У статті автор розповідає про різноманітні інструменти для тестування доступності. Оскільки сам список може здатися не дуже цікавим, автор показує, що саме можна протестувати за допомогою котрогось інструмента. У статті розглядають рівень доступності АА (за стандартом Web Content Accessibility Guidelines).

Разбираемся с DevTools в Selenium 4. Selenium — один із найпопулярніших інструментів UI автоматизації. У новому релізі є API для роботи з кожним блоком DevTools, що виводить взаємодію з браузером на новий рівень. Як використовувати ці можливості, читайте у статті Дмитра Будима, SDET в pdfFiller.

Тестируем микросервисную архитектуру. Кирило, Head of QA в Slotegrator, працює з платформою для онлайн-казино з дуже різноманітним функціоналом: модуль реєстрації та авторизації, підтвердження користувачів, поповнення балансу та відстеження статусу, бонусний модуль тощо. Ця стаття про те, які проблеми вдалося вирішити, перейшовши на мікросервісну архітектуру, і про її тестування.

Cucumber и Spock для автоматизации API-тестов. В чем польза этих фреймворков. Що таке API та які інструменти та технології можна використовувати для його мануального та автоматизованого тестування, розповідає Володимир Пасюга, QA Engineer із 7 роками досвіду в IT-сфері. Він також ділиться досвідом застосування фреймворків Cucumber і Spock для автоматизації API-тестів. Матеріал буде корисний початківцям QA.

Git

Что такое pre-commit hooks для Git и зачем они нужны. Олексій Волошин, Team lead та Python Dev у Raccoon Gang, розповідає про спеціальний механізм для запуску скриптів та/або команд з певної події у Git, завдяки якому можна автоматизувати деякі рутинні операції.

Git на практике. Учимся поддерживать репозиторий в порядке. Git — щоденний інструмент розробника. Але далеко не всі приділяють йому достатньо уваги та вміють тримати свій репозиторій у чистоті та порядку. Про корисний функціонал Git та його використання на практиці — читайте у статті.

Git Pre-Commit вместо лишнего стресса. У кожного розробника є унікальний «почерк» і улюблена IDE зі своєю системою автоматичного форматування коду. Унаслідок цього в одному проєкті втрачається однорідність коду та виникають складнощі з використанням усіх благ IDE. Юрій Бондаренко, Senior Software Engineer, у статті розкриває тему форматування коду в контексті Python, але ідея та інструменти універсальні та можливі для інших мов.

Data Science

Як працює Spark під капотом і як створити ефективний Big Data пайплайн. Spark — один із найпопулярніших фреймворків для обробки великих масивів даних (Big Data). Він має складну структуру, тож якщо у роботі виникають проблеми, вони часто комплексні. У статті Дмитро Лазаренко розбирає основи Spark та підводні камені роботи з ним. Цей базис може допомогти уникнути багатьох труднощів у написанні архітектури програми.

SQL: мне только спросить. Как писать скрипты для получения выборок. Як писати SQL-скрипти для отримання нескладних вибірок та підрахунку статистики, у статті пояснює Андрій Ніколаєнко, Data Analyst у Genesis. Він аналізує, як витягувати дані з таблиць, коректно їх об’єднувати, фільтрувати та групувати. Матеріал орієнтований на новачків у SQL.

LeetCode

Решаем задачи с LeetCode. Вирішення завдань з LeetCode дає змогу по-новому поглянути на свою мову програмування та оптимізацію коду, упевнений Павло Дмитрієв, Full Stack iOS Developer у Postindustria. У цій статті на прикладі кількох завдань він показує, як можна прокачатись на LeetCode і навіщо це потрібно.

Flutter

React Native vs Flutter. Обзор архитектур и что под капотом. Олексій Закіра, Lead React/React Native розробник в Customertimes, розповідає про кросплатформні рішення для мобільної розробки React Native і Flutter. У статті ви знайдете огляд архітектур та того, що під капотом, а також дізнаєтеся про особливості та обмеження обох платформ.

Безпека

Детально о SSL/TLS. Как работает его криптографическая система. Багато хто знає про HTTPS, а дехто може налаштувати SSL/TLS для свого вебсерверу. Але чи глибоко розуміють, як працює система? Ця стаття детально розповідає про SSL/TLS, надзвичайно важливу складову безпеки в інтернеті.

Java

Навіщо використовують DTO. Приклади в Java-застосунках. Сергій Моренець, Java Developer, розповідає про патерн DTO та його призначення. У своїй статті автор впорядковує свої знання з цієї теми та ділиться прикладами з практики.

DevOps

Порівнюємо інструменти для CI/CD: Teamcity, Jenkins, Bitbucket та інші. Матеріал буде корисний девопсам і всім, хто починає роботу над проєктом і думає, яку саме систему безперервної інтеграції обрати. Вибір такої системи може бути доволі складним, адже наразі доступно багато різних інструментів безперервної інтеграції. Деякі з них більш популярні, ніж інші, але це ще не означає, що саме вони ефективніше розв’язуватимуть задачі проєкту. Авторка порівнює їхні переваги та недоліки.

UI

Image-Driven Development: как минимизировать время разработчиков при реализации MVP-функционала. Ця стаття — про підхід, який допоможе реалізовувати MVP-функціонал практично без участі розробників, заощадивши дорогоцінний час. Щоб читачі могли застосувати це у себе, автор розробив невелику бібліотеку.


Редакція DOU дякує авторам за статті, а спільноті — за обговорення. Продовжуйте писати у 2022-му!

Похожие статьи:
В мире много информации. Без графиков и других методов визуализации она просто не влезла бы в наши головы. Визуализация значительно...
Минуло майже два роки після закінчення найдивнішої пригоди у моєму житті, що тривала цілих чотири місяці. З того часу я вже...
62-річний Михайло Стрелков уже 40 років в IT. Нині працює керівником проєктів групи розробки ETL УРВІС AT UKRSIBBANK BNP Paribas Group....
Олександр Лисий вже три роки працює в британській компанії контрактором, тобто прямо на замовника, без...
Ссылки, на которые лучше таки нажать (по мнению автора), отмечены знаком (!) 2018 Raw String Literals не попадают...
Яндекс.Метрика