Разработчикам: различия между версиями
Перейти к навигации
Перейти к поиску
GranD (обсуждение | вклад) (Новая страница: «* Коды ошибок в тегах») |
GranD (обсуждение | вклад) Нет описания правки |
||
Строка 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 — [mailto:[email protected] Марии Николаевой], | |||
* про перловые модули — [mailto:[email protected] Алексею Сурикову], | |||
* про всё остальное — [mailto:[email protected] Дмитрию Грановскому]. | |||
Также у нас есть рассылка [https://groups.google.com/forum/?fromgroups#!forum/opencorpora-dev opencorpora-dev@], где можно задавать вопросы более широкому кругу разработчиков, обсуждать код и всё такое. |
Версия от 17:11, 21 сентября 2012
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@, где можно задавать вопросы более широкому кругу разработчиков, обсуждать код и всё такое.