metaclass: (Default)
[personal profile] metaclass
С некоторых пор ничто так не бесит, как восход солнца вручную реализация систем типов и разного рода классов-объектов поверх уже существующих языков.

Вот к примеру, задача: есть система, в ней настройки. Настроек очень дохренища, настройки могут быть привязаны к 4 уровням иерархии(общие, подразделение, профиль пользователя, пользователь), и на каждом уровне переопределять предыдущий.

Формально настройки являются просто очень большим объектом с кучей полей разнообразных типов. Но из-за переопределения, к каждой сущности такой объект не привяжешь, или к каждому полю придется цеплять флаг "есть значение". Поэтому поля хранятся в словаре <имя_поля,значение_поля>. Уже цирк с конями.
Затем начинаются пляски с бубном "как бы это все аккуратно показать в GUI". Нарисовать руками редактор с закладками для 100 полей - увольте, я сдохну это поддерживать, если что-то добавится. Поэтому все поля показываются в гридах(ну типа как в мозиле, about:config, только по категориям разбит, чтобы юзеру проще мышой шароебиццо было). А часть настроек, сука, всякие массивы или списки типа "список подписей и расположения полей в отчетных гридах" или "список кастомных полей документа с подписями и типами". И все это при аккуратной реализации (чтобы было удобно юзеру и не требовало стояния на ушах при поддержке) настолько удалбывает - не передать.

Это еще хорошо, что 2/3 кода для этой пакости генерируется прямо из специальной базы данных, где вся эта модель конфигурации описана и редактируется культурно прямо в гриде, а не блин редактированием тысячестрочных исходников и SQL запросов.

а если серпом по яйцам

Date: 2009-11-22 06:43 pm (UTC)
From: [identity profile] jdevelop.livejournal.com
перевести все эти развесистые деревянные настройки в LDAP (ActiveDirectory/OpenLDAP/whatever), и редактирование делать в виде редактирования узлов дерева? Ну или оставить грид.

/надел каску и залез в окоп/

Re: а если серпом по яйцам

Date: 2009-11-22 06:51 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Было бы весьма заебись хорошо и энтерпрайзно.
Но деплоймент и разборки "почему у клиента что-то не работает" превратились бы в нечеловеческий ад. Так я беру свои логи или базу и смотрю что там не так. А так придется выдуривать права доступа к LDAP и пользоваться его безумными средствами запросов, чтобы найти что-нибудь.
Кроме того, ситуация делегирования прав пользователям на настройку системы включила бы в себя админа AD, которые в большинстве случаев как-то на контакт идут неохотно.

Date: 2009-11-22 06:59 pm (UTC)
From: [identity profile] jdevelop.livejournal.com
/осторожно выглянул из окопа/

вариант включения в поставку ldap в виде например openldap? тот же ldap, только бесплатный, и можно плюнуть в глаза виндовому админу с его AD

или там http://directory.apache.org/

Date: 2009-11-22 07:07 pm (UTC)
From: [identity profile] metaclass.livejournal.com
У меня с "готовыми" продуктами очень нерадостный опыт взаимодействия. Особенно такими глобальными. Одно дело искать ошибки в своем коде, другое дело - сначала разбираться в чужом и прикручивать его к своей задаче, потом где-нибудь наткнуться на то, что авторы были психи и какой-то нужный вариант использования не предусмотрели и нужно заниматься плясками с бубном чтобы его реализовать, а потом на продакшене разбираться, в случае чего "что случилось".

Вообще, если бы это был "домашний" проект, т.е. где можно в случае чего сесть прямо на производственный сервер и разобраться что к чему - готовое использовать было бы проще. А когда вся диагностика исключительно по обрывкам логов и невнятным переводам с басурманского, я не уверен что морально готов ставить софт, написанный не мной :)

Date: 2009-11-23 06:31 am (UTC)
From: [identity profile] vk11.livejournal.com
совершенно согласен :)
кстати, а что нынче с отказоустойчивостью и скоростью у них?

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 28th, 2025 02:08 am
Powered by Dreamwidth Studios