Театр одного примата (stokesequation) wrote,
Театр одного примата
stokesequation

Category:

"Орхетектура"

Иногда, когда смотришь на те или иные ВЕСЬМА СТРАННЫЕ архитектурные решения в программных продуктах, после дежурного "WTF?" возникает вопрос, как до такого вообще докатились.

А очень просто.

Вот пример. Вы - молодая перспективная айти фирма, и вы хотите сделать игру, у вас 5 программистов в команде. Игра про шарики, называется "Balls: The spherical nightmare". Срок разработки небольшой, перспективы неясные, и вы по привычке все делаете через объектно-ориентированное программирование, ведь так положено™ и вообще по слухам это очень хорошо ускоряет разработку.

Делаете нехитрую иерархию CBall>CBallSelected, игра-то про шарики. Потом у шариков появляется раскраска, разные размеры, а некоторые из них начинают периодически мерцать. Класс CBall приобретает все больше полей и методов.

Проект вышел, и через 3 месяца совершенно неожиданного суперуспеха на рынке вы анонсируете дополнение "Balls: The Cubic's Revenge", в котором появляется новая фракция "кубики". Они тоже могут раскрашиваться и мерцать, а еще они иногда взрываются. Чтобы не писать лишнего кода, вы по всем правилам делаете класс CCubic наследственным по отношению к CBall, методы которого уже определены

Прошло полгода, и ваша компания, которая переехала в новый модный офис, выпускает новое обновление под названием Balls: Secrets of Triangle, в котором появляются треугольники и пирамидки. Они взрываются и почти во всем похожи на кубики, только мерцать и перекрашиваться им уже не надо. Опять-таки, для ускорения работы вы делаете CTriangle наследником класса CCubic, который наследован от CBall, при том что целая куча методов и полей CBall этим самым треугольничкам уже нафиг не нужна.

Получается очень "логичная" структура, в которой треугольник наследует поля кубика, который наследует поля шара. А ведь у вас впереди еще целая куча обновлений и геометрических фигур.

Увидев такую структуру, лет 5 назад я бы сказал "что за дебилы это проектировали". А 10 лет назад добавил бы, что сам-то я спроектировал бы намного лучше.

А сегодня мне остается только понимающе вздохнуть и пожать плечами.
Tags: Программирование
Subscribe
promo stokesequation февраль 3, 16:01 9
Buy for 10 tokens
Перед вами, наверное, вершина могущества человека в вопросах организации материи. Огромная ракета, которая несёт в себе несколько кусочков Солнца, и готова щедро поделиться теплом и светом в любую минуту. Только скажи. Это потрясающе неестественный объект. В нём неестественны абсолютно все…
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic
  • 2 comments