- PVSM.RU - https://www.pvsm.ru -

Enterprise-версия программы FizzBuzz с правильной архитектурой

Enterprise версия программы FizzBuzz с правильной архитектуройЗдравствуй, хабрачитатель. Я – редактор блога ABBYY. Сегодня утром ко мне пришли разработчики, принесли вот этот текст и попросили напечатать. Я не смогла придумать, почему этот текст должен появиться в корпоративном блоге, но разработчики говорят, что он смешной и принесёт радость людям. Так тому и быть!

Устали от полных кривизны и костылей сложных в поддержке программ? Постоянно слышите о правильной архитектуре, но так и не видели ее? Встречайте на Гитхабе Enterprise-версию [1] программы FizzBuzz [2], показывающую, как должно выглядеть серьезное решение с правильной архитектурой.

Изначально FizzBuzz — очень простая программа, задуманная в качестве задания при собеседовании разработчиков для того, чтобы проверить, что они вообще в состоянии писать код. Обычно предполагается, что претендент напишет цикл с цепочным условием внутри и в общей сложности программа займет примерно 10 строк. Это годится в стрессовых условиях собеседования, но не подходит для серьезного бизнеса.

Enterprise версия решает ту же задачу, используя 10 интерфейсов, заботливо разложенных по пакету com.seriouscompany.business.java.fizzbuzz.packagenamingpackage.interfaces и соответствующее серьезности задачи количество тщательно продуманных классов, разложенных по пакету com.seriouscompany.business.java.fizzbuzz.packagenamingpackage.impl

Прекрасен класс NewLineStringReturner, который возвращает перенос строки [3], который затем используется механизмом вывода переноса строки NewLinePrinter [4]. Такое претендент на собеседовании вряд ли напишет – он ничего не понимает в правильной архитектуре.

Отдельно прекрасен список «проблем» [5]: «не используется XML» [6], «репозиторий должен быть в Perforce» [7], «нужен SOAP API» [8], «нужна многопоточность» [9] и другие в том же стиле. Все эти проблемы наверняка будут скоро решены, и мы получим эталон серьезного решения с правильной архитектурой.

Наконец-то.

Автор: luciana

Источник [10]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/pyatnitsa/30152

Ссылки в тексте:

[1] Встречайте на Гитхабе Enterprise-версию: https://github.com/Mikkeren/FizzBuzzEnterpriseEdition

[2] FizzBuzz: http://en.wikipedia.org/wiki/Fizz_buzz

[3] класс NewLineStringReturner, который возвращает перенос строки: https://github.com/Mikkeren/FizzBuzzEnterpriseEdition/blob/50c5f4668597e6681cfe2903279b3d81e163b154/src/main/java/com/seriouscompany/business/java/fizzbuzz/packagenamingpackage/impl/stringreturners/NewLineStringReturner.java

[4] механизмом вывода переноса строки NewLinePrinter: https://github.com/Mikkeren/FizzBuzzEnterpriseEdition/blob/abac5989d6f219aa692a5ecf9efae3e4362489ca/src/main/java/com/seriouscompany/business/java/fizzbuzz/packagenamingpackage/impl/printers/NewLinePrinter.java

[5] список «проблем»: https://github.com/Mikkeren/FizzBuzzEnterpriseEdition/issues?state=all

[6] «не используется XML»: https://github.com/Mikkeren/FizzBuzzEnterpriseEdition/issues/35

[7] «репозиторий должен быть в Perforce»: https://github.com/Mikkeren/FizzBuzzEnterpriseEdition/issues/30

[8] «нужен SOAP API»: https://github.com/Mikkeren/FizzBuzzEnterpriseEdition/issues/25

[9] «нужна многопоточность»: https://github.com/Mikkeren/FizzBuzzEnterpriseEdition/issues/18

[10] Источник: http://habrahabr.ru/post/173885/