Огляд книги «Об'єктно-орієнтоване мислення»

    Купував цю книгу з двояким почуттям. З одного боку, цікава тема, з іншого… ну що там може бути нового? Погортав, почитав, вихопив поглядом пару цікавих думок і купив. І не шкодую. Нового дійсно нічого не дізнався, але читати було цікаво, так що, так, не шкодую.
 
Треба сказати, що зовсім повз книга не пройшла. В черговий раз згадав, чому програмувати потрібно на рівні інтерфейсів. В черговий раз, картав себе, що не роблю цього. В черговий раз прочитав про прописні істини: спадкування, поліморфізм і інкапсуляцію. Став свідком чергової суперечки між спадкуванням та композицією. Поповнив колекцію прикладів завдань, в яких ООП вигідніше процедурного стилю. Дізнався парочку цікавих книг, цитованих автором. Загалом, було не нудно, і навіть корисно. Корисно для мене, але чи буде корисно для вас?
 
 

Для кого ця книга.

На обкладинці гордо красується напис "Рівень користувача: Досвідчений ". Але ми-то з вами розуміємо, що це скоріше маркетинговий хід. Та й " рівень користувача " — Формулювання якась розмита: користувач чого? Якщо ви досвідчений адепт ООП стилю — для вас ця книга буде швидше цікавим чтивом, де можна в чомусь погодиться з автором, а в чомусь і посперечатися. Якщо ж ви відчуваєте себе невпевнено у всьому цьому модному ООП — книга для вас. Я підготував невеликий список пунктів, які допоможуть зрозуміти, чи потрібна вам ця книга.
 Отже, ця книга для вас, якщо :
 
     
Ви вважаєте що ООП — це просто модний тренд, який пройде через пару років;
 Ви не цілком розумієте різницю між Інтерфейсом і Абстрактним класом;
 Ви вважаєте що Спадкування — зайва фіча, заплутувати код;
 Ви не знаєте, що таке Композиція, а погуглити, розумієте, що вам і без неї добре;
 Ви не використовуєте Абстрактні фабрики, адже завжди є new ;
 Ви не знаєте принцип дії найпростіших патернів проектування. Взагалі-то, конкретно про патерни в книзі дуже мало, хіба що Abstract Factory , однак, якщо ви не знаєте найпоширеніших — де то у вас прогалину.
 
 
 

Висновок.

Якщо в загальному, то враження про книгу дуже приємне. Приклади коду дано на Java . Особисто я від цієї мови далекий, але код зрозумілий, ніяких питань не викликав. Наприкінці глав всі приклади дублюються на С # . Книга не мудрована, написана легко, відповідно, легко читається. Багато цікавих прикладів про тварин, таксистів, і звичайно ж, про мости. Всі концепції розжовані, але не в стилі: "Читач дебіл, давайте сто разів повторювати йому одне і те ж ".
Допомагає легко перейти з процедурного стилю на ООП, розкласти по поличках накопичилися знання, і дає той необхідний багаж, який допоможе надалі, більш детальному вивченні об'єктно-орієнтованої парадигми програмування.
 
 

Подяки.

Хочу висловити особливу подяку квиточки на автобус, який служив мені вірою і правдою, як закладки, весь період читання книги.
 
 
 
 

Бонус.

І як бонус, трохи цитат з книги.
 
 
… програмісти можуть застосовувати рівно стільки об'єктно-орієнтованих функцій, скільки потрібно для того, що б зробити програми незрозумілими для інших програмістів, як використовують, так і не використовують об'єктно-орієнтовані мови.
 
Якщо ви помістіть десять чоловік в одну кімнату, і попросіть кожного з них спроектувати щось незалежно від інших, то отримаєте десять абсолютно різних результатів проектування — і в цьому не буде нічого поганого.
 
Мабуть найбільш важливий момент при проектуванні класу — визначення його аудиторії і користувачів.
 
… інтерфейс добре спроектованого об'єкта описує послуги, надання яких потрібно клієнту. Якщо клас не надаватиме корисних послуг користувачам, то його взагалі не слід створювати.
 
Технічне завдання повинно забезпечити повне розуміння системи для будь-якої людини, що прочитала цей документ. Технічне завдання має представляти повну систему і ясно описувати те, як система буде виглядати.
 
Основна мета полягає в тому, що б завжди прагнути створити систему, яка буде гнучкою, але не настільки складною, що може звалитися під власною вагою.
 Зміст
 Перша глава
 Сторінка на Ozon.ru
    
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.