Универсальная вводная для крупных проектов Есть сайт, помимо типового функционала коробки на него навёрнута интеграция с рядом сервисов, сделаны нестандартные вещи, обслуживающие специфический функционал, сайт сопровождается командой из 5+ разработчиков.
Какие проблемы могут быть 1. Трудности с подключением нового разработчика. Большой временной лаг на то, чтобы разобраться с уже реализованным функционалом. 2. Трудности с донесением изменений по архитектурной и функциональной части до других разработчиков. 3. Иногда могут возникать ошибки из-за использования устаревших функций написанных другим разработчиком, но при беглом взгляде другого вроде решающих его задачу итд. 4. Сложности при планировании новых функционалных блоков.
Проблема комплексная, поэтому призываю сосредоточиться на одной из её частей — документировании исходного кода
Я считаю, что при разработке своих классов и функций разработчик должен их документировать в формате phpDoc или сходном диалекте.
Зачем это надо - показ человеческих подсказок по коду на уровне IDE. - возможность посмотреть описание чужого или класса и быстро с ним разобраться. - возможность геренации списков todo на следующую итерацию или для себя - что я забыл?
Возможные возражения — меня парят эти комментарии, они больше чем сами функции — пользуйся автоматическим сворачиванием кода phpDoc в своей IDE
— нафига это надо, мой код и так понятен. Ты что, тут всё просто, я могу пояснить, что конкретно не понятно???7 - ок, у тебя 1 год работы на проекте, а «Вася» только после универа, ему на порядок труднее.
- я не хочу тратить своё время на эту фигню, давайте лучше следующую сложную клёвую задачу - задача не считается сделаной, если нет одного из артефактов. В этом случае - документации по классам тобой написанным.
Хочется обсудить следующие вещи 1. Привить народу культуру документирования исходного кода 2. Использование инструментов генерации документации
По пункту два намедни сделал следующее Поставил через PEAR docblox и phpDocumentor
phpDocumentor насколько я понял прекратил развитие, поэтому ZEND перешёл на docblox.
Из коробки ни один и них не смог завестись с файлами проекта в кодировке windows1251. C UTF - всё ок. Стандартные шаблоны что у первого, что у вторго - абсолютно неудобные (шрифты, отступы итд).
Интересно конечно как организовано написание документации по Битриксу. Зовём Роберта. Т.к. в файлах ядра нет phpDoc шапок, то их вырезают перед релизом или вообще не используют, а документирование идёт отдельным процессом.
Идея хорошая, придерживаться ее надо Максим, ты прав, это полезно.
Но есть и шкурная стороная этого вопроса, которая упирается в сроки и бюджет проекта. При сжатых сроках и несоответвующем бюджете данные работы могут выполняться за счет разработчика. Отсюда вывод: разработчик имеет полное право снижать свои затраты
Понимаю, Макисм, что ведешь речь именно о нетиповых, крупных или долгоиграющих проектах, на которых задействовано несколько специалистов или возможен риск смены исполнителей. И шкурная сторона вопроса в данном случае неуместна.
Но как показывает практика - многие руководствуются "золотым правилом учета" Если стоимость учета единицы продукции дороже стоимости ее потери, нечего ее и учитывать Поэтому: где то такой подход на пользу, где то может пойти и во вред.
Что же касается идеи реализации, хотелось бы еще мнений именно по phpDoc Использует ли кто то другие альренативы? Есть ли еще какие то варианты именно "технологического" документирования (с точки зрения именно разработки).
Важная тема. Документацию если не делать к своим разработкам, то код быстро превратится в неуправляемую кашу. Перед выкладкой проекта на боевые сервера документацию можно автоматизированно вычищать для уменьшения размера скриптов.
phpdocumentor - да, позволяет получить документацию-конфетку по своему АПИ.
Можно для своих модулей такие вещи делать, очень удобно.
Алексей Коваленко, конечно, на мелких разовых проектах без сопровождения это действительно будет забивание гвоздей микроскопом.
По поводу диалекта, стиля оформления документации к коду я для себя решил ориентироваться на zend framework. Потому что: 1. развивается контрой ZEND 2. у них гораздо больше ресурсов тратится на работу с комьюнити, а соответственно можно подсмотреть какими инструментами пользуются, как пользуются итд.
Цитата
Перед выкладкой проекта на боевые сервера документацию можно автоматизированно вычищать для уменьшения размера скриптов.
Как правило, размер дисков сейчас уже перестал быть критичной величиной. PHP код всё равно размещаем в оперативной памяти сервера с помощью кешера байткода.
Я лично не пугаюсь лишних мегабайта-пяти(больше это уже экзотика) оверхеда на комментарии.
По поводу установки окружения используемого ребятами из ZEND: 1. Ставим PEAR 2. ставим docblox
pear channel-discover pear.docblox-project.org pear remote-list -c docblox pear install docblox/ последняя версия на сегодня
+ ещё пара зависимостей.
С phpDocumentor - аналогично.
Александр Сербул, а как у вас организовано документирование API?
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».