Re[7]: Оффтоп.
От: Sinix  
Дата: 13.09.16 18:48
Оценка: 5 (1)
Здравствуйте, Sharov, Вы писали:

S>Зачем ему читать fdg?

Ну блин, это ж очевидно. Ни один софт не является однородной мешаниной из методов и типов, внутри точно так же присутствует разделение на подсистемы-слои-компоненты-хелперы.

Не, в маленьком софте, который разрабатывается парой-тройкой девелоперов ещё можно лениться и развести бардак.
А в средних и уж тем более в крупных проектах любой компонент, которым ваша команда не владеет, вы можете использовать только через его API. Залезая в внутренности напрямую вы неминуемо испортите жизнь всем — от собственно разработчиков, которые теперь не могут чинить ошибки, не сломав ваш код и до других команд, чьи сценарии легко могли поломаться от ваших изменений.

Ну а дальше есть всего два варианта. Или внутреннее API пишется от балды, или учим FDG. Проверено неоднократно, причём сложным способом. В одном из проектов за системную часть и биз-код отвечали две команды, причём общение между ними наладить толком никто не озаботился. В итоге уже через год-полтора 90% системного API было спрятано под хелперами, разработанными второй командой. Потому что всё было в принципе задизайнено правильно, но не было бы ни одного сценария (я серьёзно, от запросов и до создания бизнес-сущностей), который не требовал бы минимум двух-трёх вызовов методов. Не, в итоге получилось даже неплохо, но изначально количество строк, ублажавших инфраструктуру было раз в 5 больше, чем собственно бизнес-логики. Вот такой вот высокоуровневый ассемблер


S>ЗЫ: И все-таки говорить, что парне из мс вот прям молодцы-молодцы тоже не очень справедливо. Ребята не на ровном месте и с нуля все придумывали, а оглядывались (подглядывали) на мир java.


Ну да, согласен абсолютно. Один нюанс: ява — это как раз отличный пример "точно такого же, только без FDG". Серьёзно, фреймворк, который для части элементарщины типа чтения xml требует приседаний в духе
              DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();         
              DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();           
              Document doc = dBuilder.parse(file);

а остальную часть вообще лучше сторонними библиотеками заменить (не будем показывать пальцем, но это был Runtime.exec(). jproc, ещё раз спасибо).
никак не назовёшь вершиной дизайна

Про перевод Document в строку — давайте не будем. doc.toString() — недостаточно энтерпрайзненько.


P.S. Очень-очень подозреваю, что у команды инфраструктурщиков из того проекта за плечами была в основном ява
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.