Разработчикам: различия между версиями

Материал из OpenCorpora
Перейти к навигации Перейти к поиску
(Новая страница: «* Коды ошибок в тегах»)
 
Нет описания правки
Строка 1: Строка 1:
==  Common ==
# Наш исходный код [http://code.google.com/p/opencorpora/source/browse/trunk открыт] и лицензирован под GNU GPL v2. Следовательно, любой код, которым вы с нами делитесь, будет доступен под этой же лицензией.
# Следствие из п. 1: мы не можем использовать библиотеки и любой другой чужой код, не совместимый с этой лицензией.
# Веб-часть написана на PHP, вспомогательные скрипты — на Perl, Python, bash. БД — MySQL.
# По историческим причинам мы пишем на чистом PHP (без фреймворков), ООП не используем. Этот пункт нам самим не нравится и, возможно, изменится, но пока так.
# На фронтенде используется Smarty (в будущем будет убран), jQuery и Twitter Bootstrap.
# Наш боевой сервер — [http://opencorpora.org opencorpora.org]. Есть машина для разработки и бета-версий — [http://wiki.iphil.ru/corpus wiki.iphil.ru/corpus]. Доступ к последней можно получить, написав нам письмо.
# Поднять рабочее окружение для локальной разработки сложно, но можно. Есть [http://code.google.com/p/opencorpora/wiki/ForDevelopers инструкция], но она устарела.
# Мы пользуемся системой контроля версий, а именно Subversion. Если вы не умеете ею пользоваться, придётся [http://svnbook.red-bean.com/index.ru.html научиться], это совсем нетрудно.
== Style Guide ==
=== Общее ===
# Перенос строки — только [http://www.oualline.com/eol.html unix-style].
# Все файлы только в кодировке UTF-8.
# Символ табуляции запрещён, пользуйтесь четверным пробелом.
# Названия файлов только в нижнем регистре, за исключением файлов, содержащих классы.
# Комментарии пишем по-английски (предпочтительно) или по-русски, но не транслитом.
# После запятой ставим пробел, арифметические операторы отбиваем пробелами, после открывающей скобки и перед закрывающей пробел не ставим, перед открывающей скобкой пробел ставим, только если это не функция: for (...), while (...), if (...)
=== PHP ===
# Как уже говорилось, пишем в не-объектном коде.
# Названия функций и переменных - вот_в_такой_нотации.
# Работа с базой данных - через обёртки из lib/common.php, mysql_ функции запрещены.
# Строки с комментариями начинаем с //
# В начале файла пишем не <?, а <?php
# В библиотеках (lib/lib_*) запрещены: header, exit, die.
=== Perl ===
* Следуем [http://perldoc.perl.org/perlstyle.html официальному style guide].
* В начале исполнимого файла пишем #!/usr/bin/env perl
=== Python ===
* Следуем [http://www.python.org/dev/peps/pep-0008/ PEP 0008].
* Выбор 2-й или 3-й версии остаётся за разработчиком, но везде, где можно, стараемся писать кроссверсионно (.format вместо % [http://docs.python.org/py3k/howto/pyporting.html и т.п.])
* В начале исполнимого файла пишем #!/usr/bin/env python
=== bash ===
В начале исполнимого файла пишем #!/usr/bin/env bash
=== JavaScript ===
Пользуемся jQuery и возможностями BootStrap.
== Справочник ==
* [[Разработчикам/Коды ошибок в тегах|Коды ошибок в тегах]]
* [[Разработчикам/Коды ошибок в тегах|Коды ошибок в тегах]]
== Кому задавать вопросы ==
Вопросы по коду можно задавать:
* про вёрстку и JavaScript &mdash; [mailto:[email protected] Марии Николаевой],
* про перловые модули &mdash; [mailto:[email protected] Алексею Сурикову],
* про всё остальное &mdash; [mailto:[email protected] Дмитрию Грановскому].
Также у нас есть рассылка [https://groups.google.com/forum/?fromgroups#!forum/opencorpora-dev opencorpora-dev@], где можно задавать вопросы более широкому кругу разработчиков, обсуждать код и всё такое.

Версия от 17:11, 21 сентября 2012

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@, где можно задавать вопросы более широкому кругу разработчиков, обсуждать код и всё такое.