Роберт Мартин

Чистая архитектура. Искусство разработки программного обеспечения


Скачать книгу

парадигмы. В конце концов, мы программируем на Java, C# или Ruby и используем объектно-ориентированную парадигму. И все же программный код до сих пор состоит из последовательностей операций, условных инструкций и итераций, как в 1950-х и 1960-х годах.

      Внимательно рассмотрев практику программирования компьютеров, вы заметите, что очень немногое изменилось за 50 лет. Языки стали немного лучше. Инструменты стали фантастически лучше. Но основные строительные блоки компьютерных программ остались прежними.

      Если взять программиста из 1966 года, переместить ее[5] в 2016-й, посадить за мой MacBook, запустить IntelliJ и показать ей Java, ей потребовались бы лишь сутки, чтобы оправиться от шока. А затем она смогла бы писать современные программы. Язык Java не сильно отличается от C или даже от Fortran.

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

      В этом весь секрет: неизменность принципов программирования – вот причина общности правил построения программных архитектур для систем самых разных типов. Правила определяют последовательность и порядок компоновки программ из строительных блоков. И поскольку сами строительные блоки являются универсальными и не изменились с течением времени, правила их компоновки также являются универсальными и постоянными.

      Начинающие программисты могут подумать, что все это чепуха, что в наши дни все совсем иначе и лучше, что правила прошлого остались в прошлом. Если они действительно так думают, они, к сожалению, сильно ошибаются. Правила не изменились. Несмотря на появление новых языков, фреймворков и парадигм, правила остались теми же, как во времена, когда в 1946-м Алан Тьюринг написал первый программный код.

      Изменилось только одно: тогда, в прошлом, мы не знали этих правил. Поэтому нарушали их снова и снова. Теперь, с полувековым опытом за плечами, мы знаем и понимаем правила.

      Именно об этих правилах – не стареющих и не изменяющихся – рассказывает эта книга.

      Благодарности

      Ниже перечислены все (не в каком-то определенном порядке), кто сыграл важную роль в создании этой книги:

      Крис Гузиковски (Chris Guzikowski)

      Крис Зан (Chris Zahn)

      Мэтт Хойзер (Matt Heuser)

      Джефф Оверби (Jeff Overbey)

      Мика Мартин (Micah Martin)

      Джастин Мартин (Justin Martin)

      Карл Хикман (Carl Hickman)

      Джеймс Греннинг (James Grenning)

      Симон Браун (Simon Brown)

      Кевлин Хенни (Kevlin Henney)

      Джейсон Горман (Jason Gorman)

      Дуг Бредбери (Doug Bradbury)

      Колин Джонс (Colin Jones)

      Гради Буч (Grady Booch)

      Кент Бек (Kent Beck)

      Мартин Фаулер (Martin Fowler)

      Алистер Кокберн (Alistair Cockburn)

      Джеймс О. Коплиен (James O. Coplien)

      Тим Конрад (Tim Conrad)

      Ричард Ллойд (Richard Lloyd)

      Кен Финдер (Ken Finder)

      Крис Ивер (Kris Iyer (CK))

      Майк Карев (Mike Carew)

      Джерри Фицпатрик (Jerry Fitzpatrick)

      Джим