Пропустити навігацію EPAM

Як не потонути під час планування дата-інжинірингового продукту: огляд та ключові тези вебінару

Юрій Башкатов

Lead Software Engineer
Огляд подій
  • Data

Запис вебінару наприкінці статті

Нещодавно відбувся вебінар із Юрієм Башкатовим, Lead Software Engineer в EPAM, який був присвячений технологічному напряму Data Engineering та його актуальному розвитку. Під час вебінару спікер зачепив аспекти проєктування, розказав про принципи Extreme Programming, а також проаналізував сутність концепцій YAGNI (You Aren't Gonna Need It) та KISS (Keep It Super Simple).

Але давайте по черзі.

Юрій розпочав доповідь зі згадування принципу YAGNI (You Aren't Gonna Need It). Це принцип у розробці програмного забезпечення, який закликає відкладати реалізацію будь-якої функціональності, доки не з’явиться чітка потреба в ній. Основна ідея полягає в тому, щоб не витрачати час і ресурси на створення коду, який може ніколи не використовуватися. Спікер наводить цитату Рона Джеффріса, одного із засновників методології екстремального програмування (XP): «Запроваджуйте функціональність лише тоді, коли вона дійсно потрібна, а не наперед, керуючись лише передбаченнями».

Тож, чому принцип YAGNI важливий:

  • економія ресурсів: зосередьтеся на тому, що дійсно потрібно зараз, а не на гіпотетичних потребах майбутнього;
  • підвищення гнучкості: легше змінювати та адаптувати код, який не перевантажений непотрібними функціями;
  • спрощення: менше коду — менше можливостей для помилок;
  • вища чіткість: код стає більш зрозумілим, коли в ньому немає зайвих елементів.

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

Наступним пунктом доповіді Юрія стало питання «достатнього дизайну» та що для нього треба.

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

Спікер також переконаний, що ідеального дизайну не існує, оскільки в кожному окремому випадку ідеальний дизайн буде різний. Тож обирати треба мінімально достатній.

ПРИЄДНУЙСЯ ДО НАШОЇ КОМАНДИ

Далі спікер ділиться наступними кроками та в першу чергу досвідом вибору хмарної платформи. Вони є достатньо різні, але несуть у собі схожий функціонал. Тож варто робити вибір на користь того сервісу, який найбільше підходить для реалізації задумів та дотримуватися балансу між кількістю сервісів і їхнім прямим використанням. Ну а для того, щоби почати розробку потрібно створити мінімальну інфраструктуру. Водночас спікер радить керуватися принципом «Що потрібно від інфраструктури, щоб ми могли почати розробку?».

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

У другій частині вебінару спікер перейшов до принципу KISS, який він трактує як Keep It Super Simple. Це принцип, який заохочує до максимальної простоти в будь-якій діяльності. Він ґрунтується на ідеї, що найкращі рішення — це найпростіші, які не обтяжені зайвою складністю.

Цей принцип можна застосовувати до багатьох сфер життя, включно з такими:

  • розробка програмного забезпечення: KISS рекомендує писати код, який легко зрозуміти, модифікувати та підтримувати;
  • дизайн: KISS заохочує створювати простий, елегантний дизайн, який чітко передає ідею;
  • спілкування: KISS рекомендує використовувати просту мову, уникати складних слів та речень, щоб вас краще зрозуміли;
  • розв’язування проблем: KISS пропонує шукати найпростіші та найефективніші розв’язування проблем.

Тож KISS — це не просто правило, а швидше філософія, яка може допомогти вам у багатьох аспектах життя. Він заохочує вас до простого мислення та прагнення до елегантності у всьому, що ви робите.

Наприкінці вебінару, Юрій згадує про головну ідею Extreme Programming (XP): «Do the simplest thing that could possibly work» — зробіть найпростіше, що може спрацювати.

Підбиваючи підсумки визначимо таке:

  • вирішуйте сьогоднішні проблеми сьогодні та не витрачайте час на проєктування та створення функцій, які вам можуть знадобитися «колись»;
  • почніть із найпростішого можливого рішення, адже це не означає погане рішення, а скоріше таке, що ефективно вирішує нагальну потребу без зайвої складності;
  • будьте гнучкими — у міру зміни вимог ви завжди можете модифікувати та вдосконалювати своє рішення.

Під час вебінару спікер наводив приклади із реального життя та підсилював ці принципи власними історіями. Тож рекомендуємо подивитися вебінар повністю.

А також не забувайте слідкувати за нашими новинами, в EPAM безліч цікавого і корисного. Робити це зручно на наших сторінках у Facebook, Twitter, Telegram або Youtube, а ще радимо заглядати у розклад наших подій на сайті у відповідному розділі — Календар подій.

І, як завжди, дякуємо, що ви з нами!

Підписатися на новини

Чудово! Ми вже готуємо добірку актуальних новин для вас :)

Вибачте, щось пішло не так. Будь ласка, спробуйте ще раз.

* Обов'язкові поля

*Будь ласка, заповніть обов’язкові поля

Вакансії EPAM Ukraine у Київ | Львів | Харків | Дніпро | Вінниця | Івано-Франківськ | Одеса | Чернівці | Хмельницький | Рівне | Ужгород | Тернопіль | Луцьк за напрямком Java | JavaScript | .NET | DevOps | Experience Design | Software Testing | Business Analysis | Python| Big Data | Mobile | Solution Architect | Ruby on Rails у містах за напрямком Java вакансії Київ | Java вакансії Харків | Java вакансії Львів | Java вакансії Вінниця | Java вакансії Одеса | Java вакансії Івано-Франківськ | Java вакансії Чернівці | Java вакансії Хмельницький | Java вакансії Рівне | Java вакансії Ужгород | Java вакансії Тернопіль | Java вакансії Луцьк | JavaScript вакансії Київ | JavaScript вакансії Харків | JavaScript вакансії Львів | JavaScript вакансії Вінниця | JavaScript вакансії Одеса | JavaScript вакансії Івано-Франківськ | JavaScript вакансії Чернівці | JavaScript вакансії Хмельницький | JavaScript вакансії Рівне | JavaScript вакансії Ужгород | JavaScript вакансії Тернопіль | JavaScript вакансії Луцьк | DevOps вакансії Київ | DevOps вакансії Харків | DevOps вакансії Львів | DevOps вакансії Вінниця | DevOps вакансії Одеса | DevOps вакансії Івано-Франківськ | DevOps вакансії Чернівці | DevOps вакансії Хмельницький | DevOps вакансії Рівне | DevOps вакансії Ужгород | DevOps вакансії Тернопіль | DevOps вакансії Луцьк