rukovodstvo:rukovodstvo_razrabotchika

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
rukovodstvo:rukovodstvo_razrabotchika [07.05.15 в 16:09]
maslov
— (current)
Line 1: Line 1:
-====== Руководство разработчика команды «KAD :: Systems» ====== 
-Добро пожаловать в нашу команду! 
-Мы занимаемся разработкой сайтов на системе управления HostCMS ​ 6.x, а также их доработкой и технической поддержкой. Все взаимодействия мы производим внутри нашей системы для работы с клиентами,​ которая показала себя очень эффективно. Данная система носит название «KAD :: Outsource». Она является основным инструментом для связи всех участников процесса разработки. ​ Регулярно мы обновляем её и дорабатываем новый функционал. 
-Данное руководство состоит из двух разделов. Первый из них – это правила и стандарты,​ принятые в нашей команде. Второй – практические советы и рекомендации. 
-===== Правила и стандарты ===== 
-==== Правила оформления кода ==== 
-Независимо от уровня профессионализма или отличительных особенностей синтаксиса,​ очень просто написать неряшливый или малопонятный код. Трудный для чтения код сложен в обслуживании и отладке. Скверный стиль кодирования ассоциируется с недостатком профессионализма.\\ 
-В нашей команде мы используем единый стиль программирования. Помимо удобочитаемости такого кода, красивый код говорит о нашем профессионализме. Если вы ставите над кодом копирайты,​ то есть подписываетесь именем нашей команды,​ то ваш код должен быть на уровне. Иначе вы ставите под угрозу репутацию самой команды и каждого из её участников. 
-Основные правила оформления кода:\\ 
-  - Правильное именование переменных и функций. 
-     - Имена глобальных переменных и констант должны вводиться в верхнем регистре 
-     - Префикс переменной определяет её тип. Для переменной типа string следует использовать префикс «s», например <​php>​$sInput</​php>​. Для bool – «b». Для объектов – это «o», например,​ <​php>​$oBook</​php>,​ для массива - «a». При этом, если у нас есть массив с данными одного типа, то помимо префикса массива,​ нужно указывать еще и тип элементов массива,​ например,​ <​php>​$aoBooks</​php>​. Кстати,​ предусмотрен префикс и для смешанных типов mixed – «m». ​ 
-    - Переменные,​ определенные в классе,​ как private всегда носят префикс «_», например,​ <​php>​$_oController</​php>​ 
-    - Временные переменные и итераторы следует называть коротко. Например,​ i, j, k, l, m, n. Для строковых и числовых временных переменных рационально использование названий без префикса,​ например <​php>​$name,​ $pass, $counter</​php>​. 
-     - Переменные,​ использующие несколько слов в названии,​ пишутся слитно,​ без знака «_». Например,​ <​php>​$oBookComment</​php>​. Но если речь идет о константе или глобальной переменной,​ то здесь целесообразно использование знака «_». Например,​ <​php>​$CACHE_DIR</​php>​. 
-    - Для имен методов и функций следует применять те же правила,​ что и для переменных. Начинаться имена методов и функций должны с символов в нижнем регистре. 
-    - При создании модели объекта с неопределенной выборкой,​ например,​ <​php>​$oShopItems = Core_Entity::​factory(‘shop_item’)</​php>​ имя переменной должно быть во множественном числе с содержанием префикса o - object. При уточнении выборки и получении массива объектов <​php>​$aoShopItems = $oShopItems->​findAll()</​php>​ префикс должен быть ao - array of objects. При создании модели конкретного объекта имя переменной должно быть в единственном числе, например,​ <​php>​$oShopItem = Core_Entity::​factory(‘shop_item’,​ 25)</​php>​. 
-  - Использование пустого пространства и фигурных скобок. 
-      - Чтобы усилить логическую структуру кода, следует использовать переносы строк – пустое пространство. Не бойтесь ставить переносы строк, давайте коду как можно больше свободы. 
-        - Cледует разбивать блоки инициализации ряда переменных по логическому смыслу,​ например<​code php> 
-$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);​ 
-</​code>​Первый блок с переменными содержит какие-то предустановленные значения. Второй – создание объектов. Третий – контроллера. Следует записать так:<​code php> 
-$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);​ 
-</​code>​ 
-        - Управляющие конструкции – условия и циклы следует отделять переносами. Например,​ <code php> ​ 
-$bonus = 0; 
-  
-/* Вычисляем сумму бонусов товаров*/​ 
-foreach ($aoShopOrderItems as $oShopOrderItem) 
-{ 
- $bonus += $this->​getBonus($oShopOrderItem->​shop_item_id);​ 
-} 
-  
-return $bonus; 
-</​code>​ 
-      - Фигурные скобки всегда следует отделять переносом строки. 
-      - Отступы ​ 
-          - Отступы внутри управляющих конструкций должны присутствовать обязательно. 
-          - Также отступы и переносы строк следует использовать в сложных условиях и в сложных конструкциях,​ подразумевающих создание вложенных объектов.<​code php> 
-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) 
- ) 
-    ); 
-}</​code>​ 
-  - Не используйте оператор echo для вывода html кода. Следует использовать закрывающие и открывающие php теги: <​html><?​php ?></​html>​ 
-==== Правила интеграции верстки ==== 
-Вынесены в документ “[[standarty:​standarty_integracii|Стандарты интеграции]]” 
- 
-====Порядок и правила обращения к техподдержке==== 
- 
-  - Поприветствовать. Вежливость не будет лишней. 
-  - Подробно разъяснить суть вопроса,​ приложить ссылки,​ скриншоты. 
-  - Приложить необходимые доступы. Обычно хватает доступов к админке сайта. Перед выдачей доступов создаем пользователя с данными support support, установив флажок «Привилегированный». 
-  - Выдачу данных доступа по FTP нужно согласовать с менеджером проектов или тимлидом. 
-  - После решения проблемы поблагодарить техподдержку. Удалить созданного пользователя из системы управления. 
  
rukovodstvo/rukovodstvo_razrabotchika.1431004197.txt.gz · Last modified: 26.06.15 в 14:56 (external edit)