Jan 26, 2011 17:54
В последнее время чтение происходит с какой-то ужасающе улиточной скоростью, но всё же что-то удаётся.
Пару недель назад удалось "добить" знаменитый "Мифический человеко-месяц" Брукса. Давно хотел до неё добраться, но как-то пассивно, поэтому и не добирался :)
Так уж получилось, что мне (1) дали её почитать (2) в русском переводе, и я попался на обе халявы. Сейчас понимаю, что по крайней мере на русский перевод клевать не стоило, потому как перевод, откровенно говоря, любительский (например, понятия "batch processing" и "package" сливались в переводе в бесформенные "пакеты"; ещё повезло, что о сетевых пакетах речи не было!). На перевод книги такого масштаба можно было бы устроить серьёзный конкурс.
Но в целом книга написана интересно. Особенно интересно именно для тех, кого интересует подход к архитектуре больших и сложных систем, 30 лет назад и сейчас. Например, что было ключевыми ограничениями тогда, и что из этого осталось нерешённым. Брукс чувствовал, что должна быть в системной архитектуре какая-то "присущая сложность", неисправимая никакими технологическими прорывами, и пытался её нащупать. И в чём-то, да, нащупал. Есть вечное и есть преходящее.
То, что я читал, было переводом переиздания "Mythical Man-Month" через 20 лет. Там добавлена глава или две как раз на тему того, что изменилось. Как честный исследователь, Брукс постарался перебрать свои тезисы и всё подвергнуть. Добавилось нудности, но в целом правильно.
* * *
На мой личный взгляд Брукс недооценил масштаба того, чем окажется для системной архитектуры идея Объектной Ориентированности. Он, впрочем, не отмахнулся от неё совсем, но и не считал, что она ведёт к прорыву. А она, как мы теперь знаем, очень даже вела.
Почему вела? А потому что это скорее не технический прорыв, а человеческий. Объектная Ориентированность, будучи свойством языка, позволяет человеку думать шире. Оперировать более богатым языком отношения моделируемых понятий. Всё, что было до (структурное, логической мышление), позволяло нагромождать (поди нагромоди-ка хотя бы 64k на ассемблере!) довольно сложные штуки из более простых. Но это нагромождение сродни переходу от одноклеточного организма к многоклеточной колонии. Мы прячем детали реализации, но каждый модуль так и остаётся отдельно написанным модулем. Между ними нет высокоуровневых концептуальных связей.
Взаимоотношение наследования же - это новое измерение, позволяющее объектам "взаимопроникать" друг друга. У архитектора возникают зачатки нелокального, вневременного мышления, а это очень ценно для моделирования нашей эээ... не всегда локальной реальности :)
Вторую важную составляющую прорыва - "развитие рынка софта для персоналок" Брукс тоже почувствовал, хотя тогда совсем сложно было представить штуки типа электронных сетей или тотального аутсорсинга.
Ясновидец, в общем.
* * *
Короче, "книга будет интересна широкому специалисту", который представляет, что такое тестировать многочасовой билд :) Но не лоханьте, а добудьте оригинал - оно себя оправдает.
PS: Ну и знаменито-порочная тема добавления народа в проект, когда он опаздывает со сроками, и в результате опаздывает всё больше и больше - в этой книге, конечно, тоже обсуждается.
какой я умный,
измерения,
evolution,
must read