jayrandom: (Default)
[personal profile] jayrandom
В последнее время чтение происходит с какой-то ужасающе улиточной скоростью, но всё же что-то удаётся.

Пару недель назад удалось "добить" знаменитый "Мифический человеко-месяц" Брукса. Давно хотел до неё добраться, но как-то пассивно, поэтому и не добирался :)

Так уж получилось, что мне (1) дали её почитать (2) в русском переводе, и я попался на обе халявы. Сейчас понимаю, что по крайней мере на русский перевод клевать не стоило, потому как перевод, откровенно говоря, любительский (например, понятия "batch processing" и "package" сливались в переводе в бесформенные "пакеты"; ещё повезло, что о сетевых пакетах речи не было!). На перевод книги такого масштаба можно было бы устроить серьёзный конкурс.

Но в целом книга написана интересно. Особенно интересно именно для тех, кого интересует подход к архитектуре больших и сложных систем, 30 лет назад и сейчас. Например, что было ключевыми ограничениями тогда, и что из этого осталось нерешённым. Брукс чувствовал, что должна быть в системной архитектуре какая-то "присущая сложность", неисправимая никакими технологическими прорывами, и пытался её нащупать. И в чём-то, да, нащупал. Есть вечное и есть преходящее.

То, что я читал, было переводом переиздания "Mythical Man-Month" через 20 лет. Там добавлена глава или две как раз на тему того, что изменилось. Как честный исследователь, Брукс постарался перебрать свои тезисы и всё подвергнуть. Добавилось нудности, но в целом правильно.

* * *

На мой личный взгляд Брукс недооценил масштаба того, чем окажется для системной архитектуры идея Объектной Ориентированности. Он, впрочем, не отмахнулся от неё совсем, но и не считал, что она ведёт к прорыву. А она, как мы теперь знаем, очень даже вела.

Почему вела? А потому что это скорее не технический прорыв, а человеческий. Объектная Ориентированность, будучи свойством языка, позволяет человеку думать шире. Оперировать более богатым языком отношения моделируемых понятий. Всё, что было до (структурное, логической мышление), позволяло нагромождать (поди нагромоди-ка хотя бы 64k на ассемблере!) довольно сложные штуки из более простых. Но это нагромождение сродни переходу от одноклеточного организма к многоклеточной колонии. Мы прячем детали реализации, но каждый модуль так и остаётся отдельно написанным модулем. Между ними нет высокоуровневых концептуальных связей.

Взаимоотношение наследования же - это новое измерение, позволяющее объектам "взаимопроникать" друг друга. У архитектора возникают зачатки нелокального, вневременного мышления, а это очень ценно для моделирования нашей эээ... не всегда локальной реальности :)


Вторую важную составляющую прорыва - "развитие рынка софта для персоналок" Брукс тоже почувствовал, хотя тогда совсем сложно было представить штуки типа электронных сетей или тотального аутсорсинга.
Ясновидец, в общем.

* * *

Короче, "книга будет интересна широкому специалисту", который представляет, что такое тестировать многочасовой билд :) Но не лоханьте, а добудьте оригинал - оно себя оправдает.


PS: Ну и знаменито-порочная тема добавления народа в проект, когда он опаздывает со сроками, и в результате опаздывает всё больше и больше - в этой книге, конечно, тоже обсуждается.

Date: 2011-02-14 04:24 am (UTC)
From: [identity profile] b-my.livejournal.com
Советую ещё глянуть (если ещё не) "Peopleware"
Тоже "широко знаменитая в узких кругах" книга, книга-milestone в исследовании вопроса. Правда, там обсуждается больше человеческое, чем техническое, но ведь программирование - это дисциплина нынче гуманитарная, не так ли? :)

Profile

jayrandom: (Default)
jayrandom

January 2026

S M T W T F S
    1 23
45678910
111213141516 17
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 19th, 2026 12:21 pm
Powered by Dreamwidth Studios