DOU Books: 5 книг про розробку ПЗ від Віталія Малаховського, iOS Tech Lead в BetterMe
Від редакції: в рубриці DOU Books учасники спільноти розповідають про п'ять улюблених книгах — тих, які змінюють світогляд і можуть бути корисні читачам-колегам.
[Віталій Малаховський, iOS Tech Lead в BetterMe . Понад 7 років у розробці мобільного, учасник конференцій, ментор. У вільний час помічений у музичній групі «Каменярі»]
Хочу розповісти про книги, які вплинули на те, чим я зараз займаюся. Моєю спеціальністю є технічне забезпечення якості виконуваного продукту. Мені цікаво слухати, як система працює зсередини, тому значна частина збірки присвячена дизайну програмного забезпечення. Також я вирішив поділитися книгою, яка допомогла мені зрозуміти, чому бізнес поводиться саме так, а не інакше. І наостанок я представлю роботу, яка допомагає мені вибудовувати комунікацію.
Harold Abelson, Gerald Jay Sussman «Structure and Interpretation of Computer Programs»
В російському перекладі— Харольд Абельсон, Джеральд Джей Сассман «Структура та інтерпретація комп'ютерних програм»
Автори книги Гарольд Абельсон і Джеральд Сассман разом з Джулією Сассман досліджують питання структури та інтерпретації комп'ютерних програм. На численних прикладах показано основи абстракції, модульності та дизайну мови програмування. Закінчується книга побудовою моделі обчислювальної машини з написанням інтерпретатора і компілятора, що пояснює багато нюансів роботи їх реальних прототипів. Невід'ємною частиною тексту виступають завдання, які я настійно рекомендую для самостійного виконання. У них ключ до закріплення отриманих знань.
Книга використовувалась як підручник початкового курсу програмування на кафедрі електротехніки та комп'ютерних наук в MIT. І навіть незважаючи на свій вік (перше видання вийшло в 85 році), вона застосовується у вивченні функціональних мов програмування.
Michael Feathers «Working effectively with legacy code»
В російському перекладі— Майкл К. Физерс «Ефективна робота з успадкованим кодом»
Майкл Физерс пише про роботі з кодом, який вам дістався (в тому числі від самих себе). Головна ідея: пишіть тести, а якщо без них, то робіть все гранично акуратно. Книга сповнена прикладів рефакторінгу та реорганізації коду для подальшого спрощення підтримки. В достатку приклади з процедурного програмування. А після цього слід плавне підведення до відповіді на питання, в силу чого ООП-код набагато більш підтримуваний і більш простий для сприйняття.
У процесі читання ставлення до книги у мене було вкрай неоднозначним, тому як деякі підходи «і так зрозумілі» і нічого надприродного в них немає. Потрібно розуміти, однак, що на момент виходу (а це вже 15 років тому) все це було дуже актуально, і багато зараз вже мейнстрім, яким тоді він ще не був.
Однозначно варто прочитати інженеру ПО незалежно від напряму роботи. По-хорошому варто було б вивчати в зв'язці з Фаулеровским рефакторінгом .
P. S. Навіть не намагайтеся читати в російському перекладі. Тільки оригінал.
Martin Fowler «Patterns of Enterprise Application Architecture»
В російському перекладі— Мартін Фаулер «Шаблони корпоративних додатків»
В роботі розглянуті проблеми, характерні для великих бізнес-додатків, та запропоновано способи їх вирішення. Важливо розуміти, що те, що Мартін Фаулер описував як великі і складні системи, сьогодні цілком може існувати в нашому мобільному телефоні. Книгу можна розділити на дві частини. Перша присвячена загальній архітектурі ПО — як її побудувати і на які верстви розділити. У другій частині мова йде про самих шаблонів проектування, з короткою аналітикою та порадами по застосуванню.
На жаль, книгу не можна назвати універсальною. Автор багато пише про роботу з реляційними базами даних і нічого про роботі з іншими типами сховищ (розподілені файлові системи, асоціативні масиви даних). Досить багато у книзі прикладів використання вже не так часто зустрічається XML. Але незважаючи на це, книга здатна розширити кругозір патернів і способів їх імплементації.
Eric Ries «The lean startup»
У російському перекладі— «Бізнес з нуля. Метод Lean Startup для швидкого тестування ідей та вибору бізнес-моделі»
Досить відома книга для стартаперів. В роботі є якась головна думка, навколо якої і повинен жити і розвиватися будь стартап. Думка полягає в тому, що для того, щоб вирости, треба рухатися поступово, а не ставити на кон все, що є. Спробувати, і навіть якщо це не до кінця якісно продумана/реалізована ідея — зробити висновок. І відповісти самому собі на питання: чи варто йти далі, а якщо так, то в яку сторону. І знову по колу. Чим цих кіл більше (а самі вони частіше і менше), тим краще. Іншими словами — як ідея, схожа зі скрамом, повинна рухати ваш бізнес вперед.
Так як я не створював власний бізнес, мені було цікаво прочитати і зрозуміти книгу як би з боку. Я не підприємець і мені завжди було незрозуміло, чому ж не всі запарюються якістю продукту, починаючи з першого кроку? Або чому деякі проекти закриваються, так і не встигнувши пожити якийсь час? Цього в книзі дається логічне пояснення. Краще погана, але працює ідея — та, яка принесе прибуток, з якою можна працювати, покращуючи її, і врешті-решт зробити з неї суперякісний продукт. А не відразу якісно зроблена ідея, яка не працює і в підсумку провалюється.
Jason Fried, David Heinemeier Hansson «Remote»
В російському перекладі— Девід Хенссон «Remote: офіс не обов'язковий»
Компанія 37 signals ділиться своїм досвідом організації віддаленої команди. Буде актуальна не тільки для людей, які реально працюють поза офісом, але також і для трудівників аутсорса. Спілкування з клієнтом в іншому часовому поясі схоже на спілкування з колегами на удаленке.
У книзі зібрані аргументи «за» і «проти» роботи поза офісом. Мораль така, що розподілена команда — набагато більш складно влаштований організм, що передбачає велику відповідальність кожного члена команди. Робота на видаленні змушує удосконалювати в першу чергу самоорганізацію, пунктуальність, увагу до спілкування зважаючи більшої ціни акту комунікації — адже для контакту з колегою потрібно зробити трохи більше рухів.
Поради з книги не видаються одкровенням або чимось фантастичним, але в ній містяться факти, що потребують озвучуванні. Написана простою мовою і легко читається за кілька вечорів.
Опубліковано: 12/02/19 @ 11:16
Розділ Різне
Рекомендуємо:
Поставив 301 редирект з дропнутого домену. Як зрозуміти, що він працює?
SEO Шаолінь - мій курс по просуванню англомовних сайтів
Топ-50 ІТ-компаній України, січень 2019: зростання на 18% за рік і подолання відмітки «6 000 спеціалістів»
Що краще для просування в іншій країні – окремий домен, піддомен або папку?
Android дайджест #33: Google I/O, 64-bit apps, Coroutines