сложность (cyclomatic complexity) определяется путем подсчета условных и логических операторов, циклов, операторов switch, блоков обработки исключений и т. д. в телах всех методов для определения минимального числа путей выполнения программы. Этот показатель определяет сложность покрытия кода тестами. Значение этого показателя, превышающее 10 (в общем случае), означает срочную потребность в рефакторинге кода. —
Примеч. науч. ред.
15
Журнал «Компьютерра», опубликовавший русский перевод этой статьи и авторское послесловие к ней, сделал ее темой номера («Компьютерра», № 17 (589), 5 мая 2005 г., http://offline.computerra.ru/2005/589/). — Примеч. ред.
Прим ред. FB2: Ссылка устарела, статья доступна по ссылке https://old.computerra.ru/2005/589/207308/
16
В оригинале здесь расшифровка хорошо известного англоязычным разработчикам акронима KISS — Keep It Simple, Stupid. — Примеч. peд.
17
См. книгу Фредерика Брукса «Мифический человеко-месяц, или как создаются программные системы» (СПб: Символ-Плюс, 2000).
18
См. http://www.businessballs.com/treeswing.htm. — Примеч. перев.
От ред. FB2: один из множества вариантов на эту тему:
19
См. книгу Кента Бека (Kent Beck) «eXtreme Programming eXplained: Embrace Change» (Addison-Wesley Professional, 2004).
20
Надвигающаяся эпоха многоядерных процессоров вполне может оказаться самым серьезным вызовом, с которым когда-либо сталкивалось сообщество разработчиков.
21
См. статью «The Free Lunch is Over» Герба Саттера (Herb Sutter) по адресу www.gotw.ca/publications/concurrency-ddj.htm.
22
Фаулер М. и др. «Шаблоны корпоративных приложений». — М.: Вильямс, 2010.
23
Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. «Приемы объектно-ориентированного проектирования. Паттерны проектирования». — СПб: Питер, 2007.
«Бандой четырех» часто называют группу авторов этой книги. — Примеч. ред.
24
Название этого антипаттерна явно перекликается с книгой «Death March» (Йордон Э. «Путь камикадзе». — М.: Лори, 2008). — Примеч. ред.
25
«Это не трубка» (фр.). Подпись под курительной трубкой на картине сюрреалиста Рене Магритта «Вероломство образов». — Примеч. перев.
26
Несмотря на свое в высшей степени сомнительное предназначение, танк остается чудом технической мысли.
27
Интересно отметить, что вследствие особенностей архитектуры InterBase база данных в процессе записи на диск всегда находится в согласованном состоянии. Это один из факторов, которые обусловливают столь быстрое восстановление базы при сбоях оборудования.
28
Нил Стивенсон «Криптономикон» (АСТ, 2006, 2007).
29
См. http://www.eaipatterns.com/ramblings/18_starbucks.html.
30
Хоп Г., Вульф Б. «Шаблоны интеграции корпоративных приложений». — М.: Вильямс, 2007.
31
MDA (Model-Driven Architecture) — архитектура, управляемая моделями.
32
Информация или публикация, недостойная доверия, либо событие сомнительной истинности, повсеместно принимаемое за правду. Термин введен американским писателем Н. Мейлером в 1973 году. — Примеч. перев.
33
В оригинале FUD (Fear, Uncertainty, Doubts — опасение, неуверенность, сомнения) — используемое в электронной переписке сокращение, возникшее согласно легенде в стенах компании IBM, менеджерам которой рекомендовалось в переписке с клиентами не критиковать продукцию конкурентов явным образом, а «высказывать FUD». — Примеч. ред.
34
Billing Factory — фабрика счетов («Фабрика» — один из шаблонов проектирования); port channel — агрегирование каналов (технология, позволяющая объединить несколько физических каналов в один логический, в данном случае — отвечающий за это программный объект); rowing boat — гребная лодка; hub bus — концентратор шины; pomegranate — гранат. (Поскольку программные объекты обычно имеют английские названия, то в российской компании подобный разговор происходил бы именно так — на смеси русского и английского. Поэтому мы сочли правильным привести переводы и дать пояснения в сноске, а не напрямую в тексте.) — Примеч. ред.
35
В действительности эффект будет не настолько сильным: переключение между задачами само по себе отнимает у разработчика существенное время, тем самым снижая его продуктивность. — Примеч. науч. ред.
36
Горизонтальная масштабируемость — разбиение системы на более мелкие структурные компоненты и разнесение их по отдельным физическим машинам либо увеличение количества серверов, параллельно выполняющих одну и ту же функцию. Вертикальная масштабируемость — увеличение производительности каждого компонента системы с целью повышения общей производительности. (См. http://ru.wikipedia.org/wiki/Масштабируемость) — Примеч. ред.
37
Здесь подразумевается одна из гибких методик разработки, получившая название TDD (Test-Drived Design, проектирование, направляемое тестами). В этой методике отправной точкой процесса проектирования является не моделирование диаграмм, а написание тестов. — Примеч. науч. ред.
38
BPEL (Business Process Execution Language) — основанный на XML язык формального описания бизнес-процессов и протоколов их взаимодействия (см. http://ru.wikipedia.org/wiki/BPEL). — Примеч. ред.
39
Руб Голдберг (Rube Goldberg) — американский карикатурист, скульптор, писатель и изобретатель, широко известный серией комиксов, где изображались очень сложные устройства для выполнения простых задач (получившие название «машины Руба Голдберга»).
Ангус Макгайвер (Angus MacGyver) — персонаж одноименного американского телесериала, секретный агент, отличительная черта которого — умение применять обширные научные познания для изобретательного использования обыденных вещей в критической ситуации. — Примеч. ред.
40
Клингоны — вымышленная цивилизация из сериала «Star Trek» («Звездный путь»). Слово «qapla» в клингонском языке является пожеланием успеха. — Примеч. ред.