{"Page-description":"\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u043f\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 PHP \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 BroLib. \u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u0442\u0438\u043f\u0443 \"\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0435 \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435\". \u0418\u0437\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432 \u043f\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f PHP \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 BroLib, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u0445 \u0432 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435 BroGroup.","Page-title":"\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u044b 1.0 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f PHP \u043a\u043e\u0434\u0430 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 BroLib","Page-unique-id":"22to_new-5","JSMessages":{"redactor":{"ajax-operation-send":"\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440...","close-confirm":"\u0417\u0430\u043a\u0440\u044b\u0442\u044c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440?","delete-confirm":"\u0412\u044b \u0436\u0435\u043b\u0430\u0435\u0442\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e? \u0412\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u044e \u043d\u0435 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c! \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f?","input-archive-out":"\u0414\u043e\u0441\u0442\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u044e \u0438\u0437 \u0430\u0440\u0445\u0438\u0432\u0430","input-archive-in":"\u041f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u044e \u0432 \u0430\u0440\u0445\u0438\u0432","send-to-server-error":"\u0412\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u043d\u0435\u043f\u0440\u0435\u0434\u0432\u0438\u0434\u0435\u043d\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440! \u0422\u0435\u043a\u0441\u0442 \u043e\u0448\u0438\u0431\u043a\u0438:"}}} 	
BroLib BroBlog Статья
Стандарты 1.0 написания PHP кода в компании BroLib

Создание нового программного продукта (общие сведения)

При создании нового документа, который будет содержать PHP код, необходимо использовать кодировку UTF-8 без подписи Юникода BOM. Все содержимое документа должно быть в соответствующей кодировке, либо преобразовано, к примеру, функцией iconv.

Зачастую все задачи, как правило, должны быть решены с помощью Объектно-ориентированного программирования. Функциональный стиль написания программного кода не приветствуется, но допустим лишь в качестве редких исключений. Название переменных и классов должны носить логичное и соответствующее название. Транслит недопустим!

Важно соблюдать правило сортировки, при которой информация сортируется по методу: от меньшего к большему. Например, сортировка по английскому алфавиту будет иметь вид от A до Z, а сортировка по цифрам будет иметь вид от 0 до n (любое число, больше 0). Это означает, что все методы в классах и все переменные должны быть отсортированы по названию.

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

Существует несколько стадий завершенности программного продукта.

При завершении программного продукта ответственный Мастер, при необходимости*, создает новую страницу на ресурсе BroBlog, на которой будет изложено:

  1. Актуальная версия программного продукта;
  2. Статья с описанием спорных/важных/не критичных моментов;
  3. Руководство по эксплуатации программного продукта (для пользователя);
  4. Руководство по эксплуатации программного продукта (для программиста);
  5. Примеры и решения определённых задач;
  6. Все важные ссылки, которые должны присутствовать;

Сокращенные аннотации

Полный список всех возможных сокращенных аннотаций:
Индекс Расшифровка Описание сокращенной аннотации
-A- Author Полное имя автора. Часто указывается совместно с другой с. аннотацией -U-.
-C- Comment Комментарий. Часто указывается совместно с другими с. аннотациями: -A-, -W- и др.
-D- Description Подробное описание. Часто указывается совместно с другой с. аннотацией -W-.
-Date- Date Дата в формате YYYY.mm.dd (московское время). Часто указывается совместно с другими с. аннотациями: -Time-.
-Exception- Exception Исключение из правила. Часто указывается совместно с другими с. аннотациями: -D-, -W- и др.
-Extension- Extension Расширение. Иногда используют для поддержки смысла "Дополнительно". Часто указывается совместно с другими с. аннотациями: -D-, -W- и др.
-Time- Time Время в формате HH:ii:ss. Часто указывается указывается совместно с другой с. аннотацией -Date-.
-U- URL address Ссылка на удаленный ресурс. Часто указывается указывается совместно с другой с. аннотацией: -A-.
-Update- Update Обновление. Часто указывается указывается совместно с другими с. аннотациями: -A-, -D-, -Date-, -Time-, -W-.
-W- Warning Важно! Часто указывается указывается совместно с другими с. аннотациями: -D-, -C-, -Exception-, -Extension-.
Для лучшего результата (добиться наилучшей лог. понятности) большинство сокращенных аннотаций можно совмещать. Ниже приведены примеры таких комментариев:
PHP code source
<php /** * -D- Операция: добавление новой статьи в BroZebra constructor ; * -D, W- Будет использован существующий в системе фреймворк @BroZebra.articles. * -V- @content {String}: Содержимое статьи ; * -V- @title {String} : Заголовок статьи ; */ $result =$this->Core->frameworks->articles->add($title, $content); if ($result[0] === false) { /** * -D- Вернуть пользователю сообщение об отрицательном статусе операции ; * -D, W- Осуществить операцию по полученному коду ошибки ; */ } ?>
Все комментарии в коде (исключая начальный комментарий) применяются на усмотрение разработчика. Однако общий вид комментариев должен быть логичным.

Обязательный начальный комментарий

При создании нового программного продукта разработчик обязуется указать ряд стандартных данных:
  1. Ссылка на данную страницу, в качестве дешифратора сокращенных аннотаций;
  2. Полное имя разработчика со всеми ссылками, которые содержат информацию о разработчике;
  3. Временная метка и дата;
  4. Общие сведения о программном продукте;
Образец начального комментария приведен в статье BroBlog "Стандарты 1.0 написания JavaScript кода в компании BroLib".