вівторок, 17 листопада 2009 р.

Коктейль для хорошого програміста.

Я хочу написати про три книги, які на мою думку варто прочитати кожному програмісту, хто пише на об'єктно орієнтованих мовах. Ці книги я починав читати юніором, їх заслуга що я перестав ним бути не менша ніж MSDN'у, .NET Reflector'у та іншої технічної літератури, що я перечитав. Рекомендую читати у порядку вказаному у пості.

Досконалий Код. МакконелаСтів Макконелл. Довершений код. Коли читав - майже у кожному розділі зустрічав, що роблю не так, більш того - там описувалось, чому такий код принесе потім проблеми. Саме тоді я почав писати змінні з 5 повних слів у назві☺ (це більше жарт). Після прочитання книги - весь попередній код здавався лайном. Там не написано нічого про техніки програмування - лиш як зробити твій код зрозумілий іншим і тобі через 3 місяці.. А зрозумілий код - легше(дешевше) підтримувати. А якщо звучить слово "дешевше" - ти стаєш цінніший для роботодавця ;)

Рефакторинг. ФаулераМартін Фаулер. Рефакторинг. Книга принесла початкові розуміння про архітектуру класів. Я зрозумів, що саме і як я створюю, і навіщо потрібні прайвет інтернал класи ☺. Після її прочитання - був великий бум рефакторингу мого коду (повторюсь, але знову мій попередній код здавався лайном ☻), а надалі я вже намагався писати так, щоб це не потрібно було рефакторити. Це був крок до дизайну (уявлення що і як може бути) перед початком кодування. Крок до чіткіших методів.. Фактично книга поглибила ті позитивні зміни які приніс "Довершений код". До речі, перші розділи читаються доволі тяжко, так як описано багато пояснень з посилання на патерни про які буде розповідатись далі - не раджу закидати ☺.

Патерни. Банди чотирьохЕріх Гамма, Річард Хелм, Ральф Джонсон, Джон Вліссідес. Паттерни обєктно-орієнтованного проектування. Звісно, я взнав, що деякі підходи, які я використовую - називають паттернами і вони мають круті назви ☺. Але крімтого, мені відкрився світ підходів, про які я навіть не здогадувався і вони здавались спочатку складними - але зрозумівши і застосувавши їх - оцінивши реальні переваги які вони принесли. А саме: спростили структуру коду; розклали чітку відповідальність різних шаматків коду за різну поведінку, зробивши складні речі - простими, гнучким(легко розширяємими) .
Саме тоді код почав виглядати професійним і з'явилось розуміння як можна робити складні речі і не загнутись під багами!
До речі - для кращого запам'ятовування рекомендую після прочитання опису паттерна - уявити власну ситуацію де ти його міг би використати, чи де він використовується у іншому відомому вам програмному забезпеченні.

Звісно - ці книги не зроблять тебе профі - для цього також потрібні суворі технічні знання. Вони лиш нанадуть провайдери твоїх технічних знань на полотно проекту.

4 коментарі:

alex сказав...

А де ти купуєш подібні книги? Оффлайн-магазини? Онлайн-магазини? Чи читаєш в електронному вигляді?

RredCat сказав...

А я їх не купував :). Вони були присутні у бібліотеці на попердньому місці роботи.
До речі, на поточному місці роботи у бібліотеці однієї з тімів бачив Фаулера.
Думаю варто підійти до менеджера чи до когось з начальства і запропонувати їм купити її для компанії - ваша ініціатива буде прийнята позитивно, так як керівництву вигідний ваш професійний ріст.

RredCat сказав...

До речі.. якщо хочеш придбати самостійно і якщо львівянин - то раджу зайти в гіаду - http://www.hyade.com/ дуже не поганий магазин ІТ книги.

alex сказав...

Придбав вчора Фаулера на Петрівці, подивимось чи допоможе писати нормальний код.