Шаблон: первоклассный ключ (first-class key)

Dec 17, 2011 20:39


Большому приложению, состоящему из множества модулей, бывает нужно хранить все свои настройки ( Read more... )

programming, devexperts, pattern, java

Leave a comment

elizarov December 21 2011, 10:52:00 UTC
Ну Ok. Тоже вариант.

>Не вижу разницы между тем, что передавать - строку или константу с именем строки. Но сколько вы смогли высосать из этой детали - впечатляет.

Разница настолько большая, что прямо даже в два слова сложно объяснить. Напишу об этом на досуге отдельный пост. Грубо говоря, ключевое качество хорошего кода заключается в том, что человек может легко убедиться в правильности этого кода при его прочтении с минимальным для себя усилием, зная что этот код успешно проходит этап компиляции.

>То есть вас всё устраивало и проблем не было, но вы от этого простого решения ушли, руководствуясь просто абстрактным принципом?

Не было бы пробем не уходил бы. Какак я уже сказал, класс-конфигурация отлично для меня работает в монолитных приложниях, и, конечно, ничто не мешает каждому модулю иметь свой собственный класс-конфигурацию. Но когда модулей становится всё больше и больше, а параметров конфигурации не очень много по отношению к объему кода и они (параметры) размазаны тониким слоем по коду так, что редко получается более одного параметра на модуль, то практичней и удобеней становится подход с первоклассным ключом.

Это банально позволяет сэкономить в объеме кода (воздержимся пока от применения более субъективных метрик кода). Какждый экземпляр первоклассного ключа в модуле это одна строка, а его чтения или запись внутри модуля концептуально не тяжелей чтения/записи поля в классе конфигурации: MODE.get(props) вместо config.getMode().

Reply

tonsky December 21 2011, 13:13:22 UTC
>> человек может легко убедиться в правильности этого кода при его прочтении

Увы, убедиться он не может, но думать, что убедился - да. Мне не нужно объяснять разницу - было время, я тоже думал как вы, и все аргументы знаю.

Reply

elizarov December 22 2011, 10:07:07 UTC
Не будут ни в чем убеждать. Для меня возможность думать, что я убедился в правильности кода, вполне достаточна. Зачем именно она мне нужна - раскажу отдельно.

Reply


Leave a comment

Up