Сегодня выложил на sourceforge очередной релиз Ультимикса. Релиз получился хороший, давно такого не было. Масса багов исправлено, масса всяких вкусностей внедрено. За всё время существования фреймворка было проделано немало работы. Но встал во весь рост вопрос о качестве создаваемой системы. Правильно ли всё делается? Насколько он хорош?

    С этой целью знакомому задал вопрос следующего содержания:

    Представь себе такое задание - есть какая-то незатейливая сущность, например комментарии к статье. По-хорошему для неё надо сделать следующий набор форм:

1. Форма админки для просмотра всех комментариев - просто тупо грид. В гриде черезстрочная подсветка, сортировка по столбцам, постраничное отображение, контрол с выбором количества отображаемых записей на странице, ну собственно сам контрол для листания страниц. В самом левом столбике чекбоксы напротив каждой записи - можно несколько чекбоксов выделить и удалить зараз несколько записей. В заголовке столбика с чекбоксами ещё один чекбокс при нажатии на него устанавливаются/сбрасываются все чекбоксы в столбике + можно установить один чекбокс в столбике, затем при установке второго чекбокса зажать shift и тогда установятся все чекбоксы, которые находятся между первыми двумя.

2. Полный MVC.

3. Формы создания и редактирования записей.

4. Удаление записей.

5. Массовые удаление и редактирование записей.

6. Кнопка "копировать" - если выделено несколько записей чекбоксами, то при нажатии на эту кнопку создаются копии выделенных записей.

7. Каждая из функциональностей перечисленных в пункте 1-6 закрывается своим доступом.

8. Ну ясное дело фильтрация введённых данных, если что-то не введено или введено не так то выдается сообщение об ошибке.

9. Мультиязычность.

Теперь вопрос: «используя ПХП и любые инструментальные средства и фреймворки сколько минимум это займет времени? Уровень качества - чтобы самому не было стыдно это показать другим людям.»

    Данный ответ поверг меня в шок — 2 недели, 80 человекочасов (и это самые оптимистичные оценки). Это при том что в Ультимиксе всё тоже самое можно сделать за 2 человекочаса (а вот это уже реалистические сроки)! В 40 раз быстрее!!! При этом друг работает в солидной фирме, занимающейся весьма нетривиальными веб-проектами. Можно было бы, конечно, устроиться к нему в контору и из 80 часов 2 тратить на работу а 78 на ковыряние в носу. Но я решил поступить умнее — я поставил себе сверхамбицозную цель сократить эти два часа хотя бы до 30 минут. А это уже будет быстрее в 160 раз! Отвал башки просто.

    Я чётко отдаю себе отчет, что это будет архисложно. Потому что возможности фреймворка по сокращению трудозатрат программиста уже почти исчерпаны. Думаю стоит копать в сторону автоматизированных кодогенераторов. Это и даст ещё более впечатляющие результаты нежели те что есть сейчас. При этом вполне вероятно, что созданный кодогенератор выведет разработку для Ультимикса на качественно новый уровень. Ведь помимо основного кода можно автоматом генерировать скрипты для unit-тестов, джаваскрипты для доступа к созданной функциональности через ajax-вызовы. Да много ещё чего полезного можно генерировать. Вот такой вот коммунизм меня ждёт)

    Теперь о плохом. ВЫ этим всем воспользоваться не сможете. Т.к. внятной документации по этим возможностям фреймворка нет. Вообще никакой документации нет. Ибо даже я с моим фанатичным подходом к работе не могу объять необъятное. Код свободен для скачивания и изменения. Исходники полностью открытые, но и это вам не поможет. Т.к. части, отвечающие за все вышеописанные вкусности, написаны очень заморочено. И даже я не всегда ясно представляю что и как там работает. Хотя весь код от первой до последней строчки писал я. Однако кто храбрый может смело качать.

Добавить комментарий


Защитный код
Обновить