Поднимайте, поднимайте, ровняйте путь, убирайте преграду с пути народа моего.
Исайя, 57:14
Первая программная система, которую мы рассмотрим, будет называться «Беспорядочный мегаполис». Я вспоминаю о ней с нежностью
вовсе не потому, что она была хорошей или с ней было приятно работать, а потому что я извлек из нее полезный урок в части разработки программного обеспечения.
Я впервые столкнулся с Мегаполисом, когда поступил на работу в создавшую эту систему компанию. На первых порах работа казалась весьма перспективной. Я должен был присоединиться к группе, работавшей над «современной» кодовой базой на С++ для Linux; разработка этой кодовой базы продолжалась уже несколько лет. Словом, весьма заманчивая штука для каждого, кто разделяет мои специфические увлечения.
На первых порах работа шла не слишком гладко. Впрочем, вступая в группу для работы над новой кодовой базой, трудно ожидать, что все пойдет как по маслу. Однако проходили дни (и недели), но лучше не становилось. Изучение кода требовало неимоверно много времени, и в системе не было очевидных маршрутов. Это был тревожный признак. На микроуровне, при рассмотрении отдельных строк, методов и компонентов, было видно, что код запутан и плохо скомпонован. В нем не было ни единства, ни стиля, ни общих концепций, объединяющих разрозненные части. Тоже тревожный признак. Управление передавалось в системе по совершенно невообразимым и непредсказуемым путям – еще один тревожный признак. Вокруг было столько скверных «запахов кода» (Fowler 1999), что кодовая база не просто плохо пахла – она смердела, как зловонная мусорная свалка в жаркий летний день. Совершенно очевидный тревожный признак. Данные редко хранились поблизости от места их использования. В системе часто вводились ка – кие-то хитроумные кэширующие промежуточные уровни, чтобы перетащить данные в более удобное место – снова тревожный признак.
No related posts.