Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni
🤖🚫 Контент вільний від AI. Цей пост на 100% написаний людиною, як і все на моєму блозі. Насолоджуйтесь!30.09.2024
5 правил програмування Роба Пайка
Я не раз посилався в цьому каналі на правила програмування Роба Пайка.
Роб Пайк — якого я знаю як одного з засновників Go - взагалі людина з багатою карʼєрою — він доклав руки до Plan 9, Unix, UTF8 та інших проєктів. А правила ці були записані ще у 1989. Це один з документів, який я постійно згадую у своїй роботі. Наведу їх тут з моїми коментарями.
-
1. Ти не знаєш наперед, де програма витрачатиме час. Вузькі місця трапляються несподівано, тому не поспішай оптимізувати, поки їх не знайдеш. Навіть коли алгоритмічна складність ясна, в реальних програмах важливий вплив вводу-виводу, та особливо запитів через мережу.
-
2. Вимірюй швидкість. Не оптимізуй, поки виміри не покажуть, що одна з частин значно повільніша за інші. Я б ще додав, що міряти потрібно в реальних обставинах, бо потім виявляється, що ноутбук на батареї пригальмовує процесор, а локальний доступ до мережі значно швидше за віддалений.
-
3. Заморочені алгоритми повільні на невеликих обсягах даних, а обсяги зазвичай невеликі. Базова ціна складних алгоритмів висока. Не ускладнюй код, якщо тільки не відомо, що даних зазвичай буде багато. (Та див. правило 2) А ще великі обсяги даних можна доручити готовим рішенням (як-от база даних).
-
4. Заморочені алгоритми містять більше помилок та писати їх важче. Використовуй прості алгоритми та структури даних. Ускладнення, так само як кількість рядків коду, не свідчать про гарно виконану роботу.
-
5. Дані переважають. Коли обрав вірні структури даних та впорядкував їх гарно, алгоритми стануть очевидними. Структури даних, а не алгоритми, є центральними в програмуванні. Цей принцип бачу всюди — від функціонального програмування до програмування типами до повсякденного моделювання задач.