- PVSM.RU - https://www.pvsm.ru -
Здравствуй, хабрачитатель. Я – редактор блога 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/
Нажмите здесь для печати.