Комментарии 34
Так ведь можно и ООП головного мозга подхватить.
+10
Сразу вспоминается: www.youtube.com/watch?v=o9pEzgHorH0&list=PL7V9pJAi4AlPMseNgSwFLUAz1yJETIBgR
0
Извиняюсь, не совсем правильную ссылку дал: www.youtube.com/watch?v=o9pEzgHorH0&feature=player_detailpage#t=139s
+1
Адский ад!
Хотя не совсем понял, на что намекал следующий кусок:
На то, что энтерпрайз-код на Java нередко пишется индусами?
Хотя не совсем понял, на что намекал следующий кусок:
String myString = myStringBuilder.toString();
return new String(myString);
На то, что энтерпрайз-код на Java нередко пишется индусами?
0
Это очень нужный паттерн. Если вы вернете ссылку на строку, а на эту же строку есть ссылки еще где-то, то «мало ли что» может быть. А если вы создадите новую строку, то возвращаемая вами ссылка точно будет единственной и уже точно «все будет хорошо».
+5
Понял. Защита от того случая, если в новой версии Java строки вдруг станут мутабельными :)
+3
Не совсем, по причине описанной выше, такое обычно делается когда именно «все» является объектами (тот же питон), там тоже нужно применять для коллекций например «deep copy». Т.е. это не связано с immutable и прочим.
P.S. и это не паттерн, ну т.е. не паттерн проектирования, просто у каждого под «паттерн» что-то свое :S
P.S. и это не паттерн, ну т.е. не паттерн проектирования, просто у каждого под «паттерн» что-то свое :S
0
>>Прекрасен класс NewLineStringReturner, который возвращает перенос строки,
Он не прекрасен а ужасен. Вместо того, что бы сконфигурировать фабрику локалью и культурой и получить класс, возвращающий перенос(или какой-то подобный бред) имеем.
================================
StringBuilder myStringBuilder = new StringBuilder(systemDefaultNewLineString);
String myString = myStringBuilder.toString();
return new String(myString);
================================
Ну можно было еще пустой цикл вставить. Ахаха-бугга!
Он не прекрасен а ужасен. Вместо того, что бы сконфигурировать фабрику локалью и культурой и получить класс, возвращающий перенос(или какой-то подобный бред) имеем.
================================
StringBuilder myStringBuilder = new StringBuilder(systemDefaultNewLineString);
String myString = myStringBuilder.toString();
return new String(myString);
================================
Ну можно было еще пустой цикл вставить. Ахаха-бугга!
+2
Вы серьезно?
+2
Главное, что остальной код комментатора выше полностью удовлетворяет.
+6
НЛО прилетело и опубликовало эту надпись здесь
Абсолютно. Доведение до абсурда и демонстрация интерпрайза головного мозга — это может быть забавно. Тупой говнокод(еще и бессмысленный к тому же) — нет.
ИМХО, конечно.
ИМХО, конечно.
+7
Нужно просто убрать FizzBuzz из названия и на собеседовании спрашивать результат выполнения
+10
Умиление. Джааааавочка! Короткие имена пакетиков!
package com.seriouscompany.business.java.fizzbuzz.packagenamingpackage.impl;
+4
Как-то скучно :) Одно и тоже по всем классам распихано.
Лучше бы Spring прикрутили :)
Лучше бы Spring прикрутили :)
+2
Эту идею уже всерьез обсуждают.
+4
Еще надо сделать так, чтобы приложение запускалось только под какой нибудь древней версией Java и падало с ошибками на любой свежей, иначе на Enterprise не тянет.
+14
Я не могу назвать это архитектурой. Сильная связность у класса FizzBuzz.java повергнет разработчика интерпрайза в тяжёлые необратимые психологические мучения при изменении требований.
Архитектура — это каркас приложения который позволит в дальнейшем решать подобные задачи с минимальными усилиями. В данном случае необходимо будет написать еще десяток интерфейсов и классов.
Нарушена большая часть базовых принципов хорошей архитектуры — SOLID. Разве что Принцип единственной обязанности и Принцип разделения интерфейсов удались на славу.
Срочно на рефакторинг!
Архитектура — это каркас приложения который позволит в дальнейшем решать подобные задачи с минимальными усилиями. В данном случае необходимо будет написать еще десяток интерфейсов и классов.
Нарушена большая часть базовых принципов хорошей архитектуры — SOLID. Разве что Принцип единственной обязанности и Принцип разделения интерфейсов удались на славу.
Срочно на рефакторинг!
+6
При этом надо заметить, что другую крайность никто не упоминает. Например, предложение потратить несколько часов на подумать и потом хоть сколько-нибудь структурировать программу в 90% натыкается на возражение — не хотим делать универсальный всемогутор, это не по аджайлу, да потом перепишем, и все дела
+1
А почему без Spring?
0
Spring уже обсуждают. Есть опасения, что он не подходит для серьезных решений.
0
А еще есть github.com/Herzult/SimplePHPEasyPlus
+1
Я не совсем понял, почему абсолютно не используется DI? А вдруг я захочу другой генератор новой строки? И что мне теперь, во всех местах менять имплементацию что ли?
+5
Проголосуйте здесь https://github.com/Mikkeren/FizzBuzzEnterpriseEdition/issues/8, а еще лучше, пулл-реквест.
+2
Напоминает эволюцию кода «Hello World».
+1
Если я не знаю большинства примененных в проекте шаблонов и абстракций, это значит, что я плохой программист и не смогу писать на Java?
+5
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Enterprise-версия программы FizzBuzz с правильной архитектурой