Меню Закрити

Як написати код, який ви любитимете в майбутньому

Розповідає Lusan Das

Одного разу Дядько Бен сказав Пітеру Паркеру: “З великою силою приходить велика відповідальність”. Ця цитата стосується тих програмістів, які працюють на проектах. Понад п’ятирічна робота в цій галузі змусила мене замислитися над своїм досвідом, і я відчув, що настав час поділитися набутими знаннями зі спільнотою.

Початок

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

Це була команда лише з п’ятьох осіб. Це змінило мій погляд на розробку. На щастя, я знайшов видатного наставника та чудових товаришів по команді, які допомагали мені зростати. Але нам необхідно було показувати швидкий результат і, щоб дотримуватись строків, ми часто йшли на компроміс з якістю нашого коду. Часто ми гадали, що виправимо неякісний код пізніше. Тож коли ми будували корабель, ми залишали дірки. Це призвело до технічних недоліків та накопичення технічного боргу, але воно працювало.

Ніколи не йдіть на компроміс щодо якості коду

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

Таким чином, ми взяли на себе відповідальність за підтримання якості. І от який урок я засвоїв:

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

Ми вирішили проблему архітектури, але потім з’явилася інша цікава проблема — продуктивність. Щоб пришвидшити процес розробки, ми використовували багато сторонніх бібліотек. Ми відчували, що наш проект трохи “набрав” зайвої ваги. Потрібно було багато зусиль, щоб позбутися цих зайвих кілограмів. У результаті аналізу ми з’ясували, що в нас багато непотрібних бібліотек. Ми могли б побудувати їх самі. І тому ми видалили з проекту ці бібліотеки й створили власні. Супер! Наша сторінка стала швидшою завдяки меншому розміру.

Але жага до активних дій на тому не вичерпалася. Якщо ви побудували проект із нуля, це спартанське відчуття повільно затягує вас. Історія тривала. Ми могли б збільшити продуктивніть проекту, думали ми. Тоді нас осяяло, що ми й далі користувалися бібліотеками (хоча і власними). Що ж буде, якщо припинимо? Захопившись написанням власного рішення, ми це зробили. Ми успішно побудували проект майже без бібліотек.

Пишіть документацію та коментуйте код

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

Код пишеться не тільки для себе. Ви як автор зобов’язані думати про інших людей при написанні.

Отже, мораль полягає в тому, що писати власні бібліотеки – не така вже погана ідея. І якщо ви робите це, то документування та коментарі до коду обов’язкові. Будь-яка людина має легко зрозуміти вашу бібліотеку, просто прочитавши документацію до неї. Я чітко наголошую: не пишіть для себе! Якщо створюєте та супроводжуєте код, то саме ви за це відповідальні.

Не треба винаходити велосипед, доки не переконані, що його можна буде ремонтувати

Із плином часу я збагнув, що немає сенсу винаходити велосипед. Якщо не маємо досить часу для розробки й документування, аби це було зрозуміло для всіх. Якщо існує бібліотека, яка вирішує вашу проблему, то чудовою ідеєю буде зробити свій внесок до цього конкретного проекту! У цьому заковика, і я хотів би процитувати з блогу Філа Волтона:

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

Тож робіть свій вибір мудро ^ _-

Не забувайте про тестування

Я навіть не можу передати, наскільки це важливо. Завдяки Jest, React testing library та багатьом іншим фреймворкам, тестування коду є доволі простим. Часто, коли кодова база стає великою, навіть один рядок зміни може призвести до збою в роботі програми. Якщо ваше тестування автоматизовано, ви можете бути впевненими, що зміни, які ви внесли, не порушують функціонування системи.

Не припиняйте навчатися

Я хотів, щоб мої розробки користувацького інтерфейсу в інтернет-додатках були швидкими та ефективними. Я нарешті вирішив вивчити React, головно, через свій минулий досвід. Я збагнув, що він не обмежує політ фантазії програміста, і розробка на ньому дуже схожа на програмування на чистому JavaScript. Це змінило моє життя на краще.

Бібліотеки, такі як React, Vue, Angular та інші (особливо Redux), не просто дозволяють створювати швидкий інтерфейс. Вони також відкривають двері для інших концепцій, таких як функціональне програмування, незмінюваність та багато інших, які фактично допомагають вам стати кращими у своєму ремеслі. Вивчення React і Redux відшліфувало мої знання.

Висновок

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

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

Якщо ви знайшли помилку, будь ласка, виділіть фрагмент тексту та натисніть Ctrl+Enter.

2+

Повідомити про помилку

Текст, який буде надіслано нашим редакторам: