April 13

Чиста архітектура (Роберт Мартін)

Вправи для швидкого читання (промо)

Кращі нотатки з книги:

“Очевидна привабливість архітектури — це структура. А структура — це те, що домінує в парадигмах і дискусіях стосовно розробки програмного забезпечення: компоненти, класи, функції, модулі, рівні й сервіси, мікро- або макро-.”

“Говорячи про архітектуру, можна сказати, що програмне забезпечення за своєю природою є фрактальним і рекурсивним, вигравіруваним і окресленим у коді. Тут важливі всі деталі.”

“Архітектура відображає важливі проєктні рішення щодо формування системи, де важливість визначається вартістю змін. (Граді Буч)”

“гарна архітектура відповідає потребам користувачів, розробників і власників не лише зараз, але й має відповідати їм у майбутньому.”

“Якщо ви вважаєте, що гарна архітектура коштує дорого, спробуйте погану архітектуру. (Браян Фут і Джозеф Йодер)”

“Єдиний спосіб крокувати швидко - це крокувати правильно. (Роберт С. Мартін)”

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

“Мета архітектури програмного забезпечення — зменшити трудовитрати на створення і супровід системи.”

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

“створюючи безлад, завжди рухатимешся повільніше, аніж неухильно дотримуючись чистоти,”

“Єдиний спосіб крокувати швидко - це крокувати правильно.”

“Будь-яка програмна система має дві різні цінності для тих, хто в ній зацікавлений: поведінку і структуру. Розробники відповідають за високий рівень обох цих цінностей.”

“Функціональність чи архітектура? Що цінніше? Що важливіше - правильна робота системи чи простота її зміни? Якщо поставити це запитання керівнику підприємства, він упевнено відповість, що важливіша правильна робота. Розробники часто погоджуються з цією думкою. Але вона хибна. Я можу довести помилковість цього погляду за допомогою простого логічного інструмента для дослідження крайнощів.”

“1) Якщо програма, що працює правильно, не допускає можливості своєї зміни, вона перестане працювати правильно, коли зміняться вимоги, і ви не зможете змусити її працювати правильно. Тобто програма перестане бути корисною.”

“2) Якщо програма не працює належним чином, але легко піддається змінам, ви зможете змусити її працювати правильно і підтримувати її працездатність у міру зміни вимог. Тобто програма постійно залишатиметься корисною.”

“Розглянемо матрицю президента Дуайта Девіда Ейзенгауера для визначення пріоритету між важливістю і терміновістю”

“Я маю два види справ, термінові і важливі. Термінові справи, як пра-вило, не найважливіші, а важливі — не дуже термінові!”

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

Більше нотаток до книги за посиланням Нотатки до книги "Чиста архітектура" (promo)