This is an old revision of the document!
Добро пожаловать в нашу команду! Мы занимаемся разработкой сайтов на системе управления HostCMS 6.x, а также их доработкой и технической поддержкой. Все взаимодействия мы производим внутри нашей системы для работы с клиентами, которая показала себя очень эффективно. Данная система носит название «KAD :: Outsource». Она является основным инструментом для связи всех участников процесса разработки. Регулярно мы обновляем её и дорабатываем новый функционал. Данное руководство состоит из двух разделов. Первый из них – это правила и стандарты, принятые в нашей команде. Второй – практические советы и рекомендации.
Независимо от уровня профессионализма или отличительных особенностей синтаксиса, очень просто написать неряшливый или малопонятный код. Трудный для чтения код сложен в обслуживании и отладке. Скверный стиль кодирования ассоциируется с недостатком профессионализма.
В нашей команде мы используем единый стиль программирования. Помимо удобочитаемости такого кода, красивый код говорит о нашем профессионализме. Если вы ставите над кодом копирайты, то есть подписываетесь именем нашей команды, то ваш код должен быть на уровне. Иначе вы ставите под угрозу репутацию самой команды и каждого из её участников.
Основные правила оформления кода:
$sInput
. Для bool – «b». Для объектов – это «o», например, $oBook
, для массива - «a». При этом, если у нас есть массив с данными одного типа, то помимо префикса массива, нужно указывать еще и тип элементов массива, например, $aoBooks
. Кстати, предусмотрен префикс и для смешанных типов mixed – «m». $_oController
$name, $pass, $counter
.$oBookComment
. Но если речь идет о константе или глобальной переменной, то здесь целесообразно использование знака «_». Например, $CACHE_DIR
.$oShopItems = Core_Entity::factory(‘shop_item’)
имя переменной должно быть во множественном числе с содержанием префикса o - object. При уточнении выборки и получении массива объектов $aoShopItems = $oShopItems->findAll()
префикс должен быть ao - array of objects. При создании модели конкретного объекта имя переменной должно быть в единственном числе, например, $oShopItem = Core_Entity::factory(‘shop_item’, 25)
.$name = «testname»; $login = «testlogin»; $pass = «testpass»; $oSite = Core_Entity::factory('site', $site_id); $oUser = Core_Entity::factory('user', $user_id); $oController = new Core_Controller($oUser);
Первый блок с переменными содержит какие-то предустановленные значения. Второй – создание объектов. Третий – контроллера. Следует записать так:
$name = «testname»; $login = «testlogin»; $pass = «testpass»; $oSite = Core_Entity::factory('site', $site_id); $oUser = Core_Entity::factory('user', $user_id); $oController = new Core_Controller($oUser);
$bonus = 0; // Вычисляем сумму бонусов товаров foreach ($aoShopOrderItems as $oShopOrderItem) { $bonus += $this->getBonus($oShopOrderItem->shop_item_id); } return $bonus;
if (isset(Core_Page::instance()->object) && strpos( get_class(Core_Page::instance()->object), 'Informationsystem_Controller_Show' ) !== false ) { $Informationsystem_Controller_Show->addEntity( Core::factory('Core_Xml_Entity') ->name('current_group_id') ->value(intval(Core_Page::instance()->object->group)) )->addEntity( Core::factory('Core_Xml_Entity') ->name('current_item_id') ->value(intval(Core_Page::instance()->object->item) ) ); }
<?php ?>
Вынесены в документ “Стандарты интеграции”