Ingang (jrmm) wrote,
Ingang
jrmm

  • Mood:
  • Music:

Large Systems Suck. This rule is 100% transitive. If you build one, you suck. -- Steve Yegge, Google



на тему связи размера программы и ее качества; а также о том, почему коммерческий софт рожден ползать и летать не сможет. (больше программистское)

Возьмем Windows Registry. Его предназначение - хранить дерево каких-то числовых и строковых значений, предположительно для хранения конфигурации приложений и самой системы. Эта функциональность описана в виде интерфейса с 41 функциями (!), примерно от 3 до 7 аргументов каждая, плюс какие-то структуры, и как водится, куча констант. Описание каждой из 41 функций - довольно солидный текст (пример). Оцените примерно время, которое у вас уйдет на изучение этого тиранозавра, и прибавьте время, пока вы поймете какие 5-6 функций вам понадобятся из всей кучи. При этом весь API кажется логичным; каждая функция имеет свое предназначение в жизни, и есть ощущение того, что она когда-либо может понадобиться.

Но постойте, 41 функция с 3-7 параметрами - это для работы с деревом простых значений? Вы шутите? Какие на самом деле функции нужны для работы с деревом значений? у меня есть еще такая домашняя заготовка, которой мы нанесем Windows Registry удар ниже пояса. Мы решим задачу хранения конфигурационных данных в юниксоидном стиле. Представьте себе, что вы установили в своей UNIX-системе некий продукт под названием UNIX Registry. Вы сразу открываете документацию, чтоб понять как с этим делом работать, и ожидая сотни страниц умного текста, обнаруживаете следующий параграф:

Здравствуйте, я ваш путеводитель по UNIX Registry. UR - это специальная файловая система, предназначенная для эффективной работы с очень маленькими файлами. Приложения могут использовать UR для хранения своих конфигурационных данных в виде дерева значений. По соглашению, эта файловая система маунтируется под /var/reg. Каждое приложение создает свое поддерево (напр. /var/reg/xcalendar), в котором рекомендуется также создать отдельные поддеревья для каждого пользователя. Права доступа регулируются как обычно; естественно, в директориях UR вы можете использовать все стандартные файловые утилиты, например find. Для удобства программирования, флаг "x" на файле в UR означает, что файл может хранить только числовое значение. Приятного отдыха.


кому выгодно раздувать исходник и усложнять интерфейсы в несколько раз, просирая все возможные ресурсы в унитаз? полный текст здесь
Tags: work
Subscribe

  • девятую планету обижают!

    за пределами Нептуна скрывается гигантская планета, которая находится далеко за пределами того, что мы видим. Однако большинство ученых пока не…

  • кухонная политота

    прочел у одного фаллософа интересное: что якобы русские чиновники не осознают, что творят. находясь в окружении себе подобных, встречают одобрение и…

  • а будучи мелким, на философии я стабильно засыпал

    а оно вон как смело. попробуйте оспорить ОРТОДОКСАЛЬНЫЙ ГИПНОЗ - Почему же тогда все верят в закон тяготения? - Массовый гипноз. В своей очень…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 4 comments