Professional Documents
Culture Documents
Новий Текстовий Документ
Новий Текстовий Документ
Новий Текстовий Документ
Використовуйте змінні зі
зрозумілим контекстом. Наприклад, уникайте використання назв "i" або "j" в
масивах, де ці змінні використовуються для ітерації.
3 ГЛАВА
Функції повинні бути максимально короткими. Доброю практикою є те, щоб функція
складалася не більше ніж з 20 рядків коду.
Функції мають повертати значення або змінювати стан програми, але не робити і те, і
те одночасно.
4 ГЛАВА
Коментарі повинні використовуватися тільки тоді, коли неможливо зрозуміти код без
них.
Коментарі не повинні повторювати код, але повинні доповнювати його, пояснювати
складні або нетривіальні моменти.
Коментарі мають бути написані грамотно та чітко. Вони повинні бути зрозумілі для
будь-якого розробника.
Коментарі повинні бути оновлювані разом з кодом. Якщо ви внесли зміни в код,
перевірте, чи не потрібно оновити відповідний коментар.
Коментарі можуть бути корисні для документування публічного API вашої бібліотеки
або програмного інтерфейсу.
5 ГЛАВА
Код повинен бути форматований відповідно до стандартів в компанії або проекті, або
використовувати відомі стильові конвенції,
такі як стиль "K&R" або "Allman".
Використовуйте відступи для показу блоків коду, таких як цикли, умови, функції,
класи та інші.
Це робить код більш читабельним і допомагає зрозуміти структуру коду.
Форматування коду повинно бути однорідним у всьому проекті. Він повинен бути
написаний у одному стилі, і уникати змішування стилів.
Використовуйте структуру функцій та класів, щоб зробити код більш читабельним та
зрозумілим.
Функції повинні бути короткими та робити лише одну річ,
тоді як класи повинні мати чіткий та зрозумілий інтерфейс та робити лише те, що
повинні робити.
У цій главі Роберт Мартін робить акцент на тому, що форматування коду - це не
просто питання естетики,
а суттєво впливає на розуміння та підтримку коду. Якщо код не читабельний, то його
важко підтримувати, тестувати та розширювати,
що може призвести до багатьох проблем у майбутньому.
6 гЛАВА
У цій главі Роберт Мартін розглядає практичні приклади, щоб допомогти читачеві
зрозуміти,
як правильно побудувати об'єктно-орієнтований код та які підходи потрібно
використовувати для досягнення мети побудови чистого та
читабельного коду.
7 гЛАВА
Виняткові ситуації повинні бути використані лише в тих випадках, коли дійсно є
потреба в їхньому використанні
. Вони не повинні використовуватися як заміна умовних операцій.
Помилки повинні бути виявлені та оброблені якомога швидше, щоб уникнути поширення
помилки по системі.
Обробка помилок також повинна бути чіткою та зрозумілою для користувача.
У цій главі Роберт Мартін розглядає практичні приклади та наводить поради щодо
того,
як правильно обробляти помилки та виняткові ситуації у програмному забезпеченні,
щоб забезпечити його стабільність та працездатність
8 ГЛАВА.
9 ГЛАВА
Модульні тести повинні бути простими і швидкими для запуску, щоб їх можна було
виконувати дуже часто.
Модульні тести повинні бути написані перед кодом, який вони тестують, і повинні
бути повністю автоматизовані.
Тести повинні перевіряти одну конкретну функцію або метод, і повинні бути
незалежними від зовнішніх ресурсів,
таких як бази даних чи мережеві послуги.
Код повинен бути розроблений таким чином, щоб його можна було легко тестувати,
включаючи використання залежностей, інтерфейсів та моків.
Модульні тести повинні перевіряти не лише очевидні сценарії, але й різні граничні
умови, помилки та виключні ситуації.
10 ГЛАВА
Клас повинен мати явний інтерфейс, який дозволяє користувачам класу легко розуміти,
як його використовувати.
Клас повинен мати мінімальну залежність від інших класів та компонентів системи.
11 ГЛАВА
12 ГЛАВА
Крім того, автор надає поради щодо визначення головних абстракцій, що лежать в
основі архітектури,
та висуває концепцію "гексагональної архітектури", яка дозволяє максимально
розширювати систему без необхідності змінювати її ядро.
Крім того, автор обговорює різні способи формування архітектури, такі як підхід
"знизу вгору"
та підхід "зверху вниз", та вказує на переваги та недоліки кожного з них.
Ось кожен з принципів SOLID:
13 ГЛАВА
....
Не довіряйте потокозахищеність: Не припускайте, що дані та код, що працює в одному
потоці, буде безпечним у відношенні до інших потоків.
Ізоляція інформації та взаємодія потоків повинні бути ретельно продумані.
Синхронізація: Використовуйте механізми синхронізації, такі як блокування (locks)
та семафори (semaphores),
для координації доступу до ресурсів між потоками. Але будьте уважні, щоб уникнути
блокування та голодування потоків.
Захист від дедлока: Дедлок - це ситуація, коли два або більше потоків блокують один
одного та не можуть продовжити виконання.
Для запобігання дедлокам можна використовувати порядок блокування (lock ordering)
та ієрархію блокування (lock hierarchy).
14 ГЛАВА
Головна ідея полягає в тому, що під час написання коду не завжди вдається одразу
створити ідеальну структуру, тому код потребує поступового поліпшення. Для цього
потрібно використовувати різноманітні
техніки рефакторингу, щоб покращувати код без зміни його зовнішньої поведінки.
17 ГЛАВА
Розділ 17 книги "Чистий код" Роберта Мартіна торкається питань "запахів коду" -
технологічних боргів і проблем, що накопичуються в процесі розробки програмного
забезпечення,
а також евристичних правил, які допомагають запобігти та усунути такі проблеми.
Автор визначає запах коду як ознаку коду, який може вказувати на наявність
технічного обов'язку.
Запахи коду можуть бути викликані різними факторами, такими як поганий дизайн,
відсутність модульності, невідповідність угод тощо.