Регламент по написанию программного кода
REDS Group
б-р Черноморский, д. 17, к. 1, помещ. 4/2/5, Москва.
Услуги веб-мастерской:
01.01.1970

Программное обеспечение

PhpStorm - основной редактор кода. Можно скачать с официального сайта по ссылке PhpStorm

WinSCP, FileZilla - FTP-клиенты

Bitrix24 - основное средство связи между сотрудниками

Яндекс.Диск - приложение для быстрого обмена скриншотами и другми материалами


Полезные плагины для PhpStorm:

*Буду заполнять по мере ознакомления



Полезные плагины для google chrome:


Генератор QR-кода - помогает быстро открыть ссылку с телефона

FireShot - помогает сделать скриншот страницы с прокруткой

Eye Dropper - помогает определить цвет

PerfectPixel - помогает накладывать макеты на страницу


Полезные ссылки:


CSS Minifier - помогает минифицировать ccs-файлы. Не допускает ошибку при использовании функции calc(100% + 30px)



Страктура хранения файлов на сайте

Все данные проекта должны храниться в папке /local/


В папке /local/ могут находиться следующие подпапки:


1. /local/ajax/ - содержит php-файлы, к которым обращаются общие скрипы при ajax-запросах.
Если файл относится к конкретному компоненту, он должен лежать в папке /local/components/название нашего компонента/ajax/ (для собственных компонентов)
Если файл относится к конкретному компоненту и является стандартным, то файл должен лежать в папке /local/templates/название шаблона/components/bitrix/название компонента/название шаблона/ajax/

2. /local/components/ - содержит наши компоненты

3. /local/modules/ - содержит наши модули

4. /local/templates/ - содержит шаблоны сайта

5. /local/include/ - содержит файлы включаемых областей

6. /local/php_interface/ - содержит init файл для подключения обработчиков событий, дополнительных функций. Также может содержать php-библиотеки подключемые к проекту


/local/templates/

Для названия шаблона-сайта используем логичные названия. Название шаблона пишем с маленькой буквы, название может содержать не более 2-х слов, вместо пробела используем нижнее подчеркивание. Пример:
reds или reds_clients
Неправильный вариант названия
Reds или reds_1


в шаблоне .default - хранятся компоненты, используемые шаблонами писем



1. ../css/ - содержит стили шаблона

2. ../css/lib/ - содержит библиотеки стилей

3. ../js/ - содержит js-файлы шаблона

4. ../js/lib/ - содержит js библиотеки

5. ../fonts/ - содержит шрифты

6. ../images/ - содержит картинки проекта

7. ../components/ - содержит компоненты шаблона


Основные файлы ccs и js ДО сдачи проекта:

1. ../template_styles.css - общий файл стилей проекта. (Точная копия файла верстальщика из папки /frontend/). Изменяется только верстальщиком

2. ../development.css - файл стилей, который подключается вторым после template_styles.css, туда разработчики вносят свои изменения, которые были нужны при внедрении

3. ../script.js - общий файл js-кода проекта


Основные файлы ccs и js ПОСЛЕ сдачи проекта:

1. ../template_styles.css - общий файл стилей проекта. После сдачи проекта должен содержать все стили проекта, кроме библиотек. Сам файл должен быть минифицированн

2. ../styles_lib.css - общий файл библиотек стилей проекта. После сдачи проекта должен содержать все библиотеки стилей проекта. Сам файл должен быть минифицированн

3. ../script.js - общий файл js-кода проекта. После сдачи проекта должен содержать весь js-код проекта, кроме библиотек. Сам файл должен быть минифицированн

4. ../script_lib.js - общий файл библиотек js-кода проекта. После сдачи проекта должен содержать все js-библиотеки проекта. Сам файл должен быть минифицированн


/local/php_interface/



1. ../init.php - содержит только подключение файлов. Не засоряем его. Примерное содержание файла:

    // Functions
    if (file_exists($_SERVER["DOCUMENT_ROOT"]."/local/php_interface/include/functions.php")) {
        require_once($_SERVER["DOCUMENT_ROOT"]."/local/php_interface/include/functions.php");
    }

    // Iblock constants
    if (file_exists($_SERVER["DOCUMENT_ROOT"]."/local/php_interface/include/iblock.php")) {
        require_once($_SERVER["DOCUMENT_ROOT"]."/local/php_interface/include/iblock.php");
    }

    // Handlers
    if (file_exists($_SERVER["DOCUMENT_ROOT"]."/local/php_interface/include/handles.php")) {
        require_once($_SERVER["DOCUMENT_ROOT"]."/local/php_interface/include/handles.php");
    }

2. ../include/agents.php - содержит функции-агенты

3. ../include/page.php - содержит функции и события, которые отвечают за параметры canonical, noindex и все остальные моменты, связанные с ссылками и метатегами (сейчас он называется canonical.php, предлагаю переименовать)

4. ../include/constants.php - содержит константы проекта

5. ../include/functions.php - содержит функции проекта

6. ../include/handlers.php - содержит функции-события

7. ../include/lib/ - содержит php-библиотеки проекта



Работа с сайтом

1. /frontend/ - папка содержит статичную верстку проекта. Изменяется только верстальщиком
страница /frontend/index.php - должна сожержать ссылки на все страницы папки
После окончания работ, верстка из этой папки должна быть скопировать в архив.


2. Разработка - при работе с боевым сайтом клиента, сортудник может создать свою папку для тестирования работ. Папка должна называться фамилией разработчика или первыми тремясимволами от имени и фамилии.
Папка должна быть скрыта от индексации, а после окончания работ удалена.


3. Мусор - если мы разработали новый шаблон компонента или сайта, старый архивируем и удаляем из проекта. Не оставляем не нужный хлам
*нужно придумать метод архивации и хранения


4. Алгоритмы - чем проще, тем лучше. Избегаем сложных алгоритмов и множества мусорных переменных. Алгоритм должен быть написан так, что бы любой другой программист смотря только на комментарии мог понять, что в нем происходит.


5. Комментарии - простые, четкие комментарии. Комментируем циклы, переменные, выборки из бд