Разработчикам
Перейти к навигации
Перейти к поиску
Common
- Наш исходный код открыт и лицензирован под GNU GPL v2. Следовательно, любой код, которым вы с нами делитесь, будет доступен под этой же лицензией.
- Следствие из п. 1: мы не можем использовать библиотеки и любой другой чужой код, не совместимый с этой лицензией.
- Веб-часть написана на PHP, вспомогательные скрипты — на Perl, Python, bash. БД — MySQL.
По историческим причинам мы пишем на чистом PHP (без фреймворков), ООП не используем. Этот пункт нам самим не нравится и, возможно, изменится, но пока так.- На фронтенде используется Smarty (в будущем будет убран), jQuery и Twitter Bootstrap.
- Наш боевой сервер — opencorpora.org. Есть машина для разработки и бета-версий — wiki.iphil.ru/corpus. Доступ к последней можно получить, написав нам письмо.
- Поднять рабочее окружение для локальной разработки сложно, но можно. Есть инструкция, но она устарела.
- Мы пользуемся системой контроля версий, а именно Subversion. Если вы не умеете ею пользоваться, придётся научиться, это совсем нетрудно.
Style Guide
Общее
- Перенос строки — только unix-style.
- Все файлы только в кодировке UTF-8.
- Символ табуляции запрещён, пользуйтесь четверным пробелом.
- Названия файлов только в нижнем регистре, за исключением файлов, содержащих классы.
- Комментарии пишем по-английски (предпочтительно) или по-русски, но не транслитом.
- После запятой ставим пробел, арифметические операторы отбиваем пробелами, после открывающей скобки и перед закрывающей пробел не ставим, перед открывающей скобкой пробел ставим, только если это не функция: for (...), while (...), if (...)
PHP
- Как уже говорилось, пишем в не-объектном коде.
- Названия функций и переменных - вот_в_такой_нотации.
- Работа с базой данных - через обёртки из lib/common.php, mysql_ функции запрещены.
- Строки с комментариями начинаем с //
- В начале файла пишем не <?, а <?php
- В библиотеках (lib/lib_*) запрещены: header, exit, die.
Perl
- Следуем официальному style guide.
- В начале исполнимого файла пишем #!/usr/bin/env perl
Python
- Следуем PEP 0008.
- Выбор 2-й или 3-й версии остаётся за разработчиком, но везде, где можно, стараемся писать кроссверсионно (.format вместо % и т.п.)
- В начале исполнимого файла пишем #!/usr/bin/env python
bash
В начале исполнимого файла пишем #!/usr/bin/env bash
JavaScript
Пользуемся jQuery и возможностями BootStrap.
Справочник
Кому задавать вопросы
Вопросы по коду можно задавать:
- про вёрстку и JavaScript — Марии Николаевой,
- про перловые модули — Алексею Сурикову,
- про всё остальное — Дмитрию Грановскому.
Также у нас есть рассылка opencorpora-dev@, где можно задавать вопросы более широкому кругу разработчиков, обсуждать код и всё такое.