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 делится своим опытом организации удаленной команды. Будет актуальна не только для людей, реально работающих вне офиса, но также и для тружеников аутсорса. Общение с клиентом в другом часовом поясе похоже на общение с коллегами на удаленке.

В книге собраны аргументы «за» и «против» работы вне офиса. Мораль такова, что распределённая команда — намного более сложно устроенный организм, предполагающий большую ответственность каждого члена команды. Работа на удалении заставляет совершенствовать в первую очередь самоорганизацию, пунктуальность и внимание к общению ввиду большей цены акта коммуникации — ведь для контакта с коллегой нужно сделать немного больше телодвижений.

Советы из книги не выглядят откровением или чем-то фантастическим, но в ней содержатся факты, нуждающиеся в озвучивании. Написана простым языком и легко читается за несколько вечеров.

Похожие статьи:
[В серії «Огляд IT-ринку праці» ми розповідаємо про IT-індустрії в різних містах України] В ІТ-індустрії Ужгорода зайнято 800-1000...
Technical Writer — це професія, що поєднує в собі гуманітарний та технічний напрями. В університетах такої спеціальності...
4 серпня видання The Register, посилаючись на власні джерела, повідомило, що з вересня GitLab планує автоматично видаляти...
Китайская компания Xiaomi, довольно успешно продвигающая свои смартфоны на некоторых рынках, планирует начать...
Компания Microsoft раскрыла сроки выпуска обновления Windows 10 для смартфонов. На официальной странице Microsoft Lumia в...
Яндекс.Метрика