Разработчикам

Материал из OpenCorpora
Перейти к навигации Перейти к поиску

Common

  1. Наш исходный код открыт и лицензирован под GNU GPL v2. Следовательно, любой код, которым вы с нами делитесь, будет доступен под этой же лицензией.
  2. Следствие из п. 1: мы не можем использовать библиотеки и любой другой чужой код, не совместимый с этой лицензией.
  3. Веб-часть написана на PHP, вспомогательные скрипты — на Perl, Python, bash. БД — MySQL.
  4. По историческим причинам мы пишем на чистом PHP (без фреймворков), ООП не используем. Этот пункт нам самим не нравится и, возможно, изменится, но пока так.
  5. На фронтенде используется Smarty (в будущем будет убран), jQuery и Twitter Bootstrap.
  6. Наш боевой сервер — opencorpora.org. Есть машина для разработки и бета-версий — wiki.iphil.ru/corpus. Доступ к последней можно получить, написав нам письмо.
  7. Поднять рабочее окружение для локальной разработки сложно, но можно. Есть инструкция, но она устарела.
  8. Мы пользуемся системой контроля версий, а именно Subversion. Если вы не умеете ею пользоваться, придётся научиться, это совсем нетрудно.

Style Guide

Общее

  1. Перенос строки — только unix-style.
  2. Все файлы только в кодировке UTF-8.
  3. Символ табуляции запрещён, пользуйтесь четверным пробелом.
  4. Названия файлов только в нижнем регистре, за исключением файлов, содержащих классы.
  5. Комментарии пишем по-английски (предпочтительно) или по-русски, но не транслитом.
  6. После запятой ставим пробел, арифметические операторы отбиваем пробелами, после открывающей скобки и перед закрывающей пробел не ставим, перед открывающей скобкой пробел ставим, только если это не функция: for (...), while (...), if (...)

PHP

  1. Как уже говорилось, пишем в не-объектном коде.
  2. Названия функций и переменных - вот_в_такой_нотации.
  3. Работа с базой данных - через обёртки из lib/common.php, mysql_ функции запрещены.
  4. Строки с комментариями начинаем с //
  5. В начале файла пишем не <?, а <?php
  6. В библиотеках (lib/lib_*) запрещены: header, exit, die.

Perl

Python

  • Следуем PEP 0008.
  • Выбор 2-й или 3-й версии остаётся за разработчиком, но везде, где можно, стараемся писать кроссверсионно (.format вместо % и т.п.)
  • В начале исполнимого файла пишем #!/usr/bin/env python

bash

В начале исполнимого файла пишем #!/usr/bin/env bash

JavaScript

Пользуемся jQuery и возможностями BootStrap.

Справочник

Кому задавать вопросы

Вопросы по коду можно задавать:

Также у нас есть рассылка opencorpora-dev@, где можно задавать вопросы более широкому кругу разработчиков, обсуждать код и всё такое.