You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tde-i18n/tde-i18n-ru/docs/tdemultimedia/artsbuilder/helping.docbook

150 lines
9.8 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!-- <?xml version="1.0" ?>
<!DOCTYPE chapter PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd">
To validate or process this file as a standalone document, uncomment
this prolog. Be sure to comment it out again when you are done -->
<chapter id="contributing">
<title>Сотрудничество с &arts;</title>
<sect1 id="how-to-help">
<title>Как вы можете помочь</title>
<para>Помощь разработчикам заключается в адаптации существующих мультимедиа-приложений для работы с &arts;, создании новых приложений и расширении возможностей &arts;. Однако вам совсем необязательно быть разработчиком, чтобы помочь &arts;. Нам нужна помощь в тестировании (и написании отчётов об ошибках), переводе текстов и документации на различные языки, создании дизайна (особенно для модулей <application>artsbuilder</application>), музыканты могут написать примеры для модулей &arts;, а писатели - документацию. </para>
</sect1>
<sect1 id="mailing-lists">
<title>Списки рассылок</title>
<para>Большинство дискуссий разработчиков &arts; ведутся в двух рассылках. В этой обсуждаются новые функции, делятся мыслями и просят о помощи, если возникли проблемы. </para>
<para>Рассылка <quote>&kde; Multimedia</quote> предназначена для обсуждения общих мультимедиа-приложений для &kde;, в том числе и &arts;, наряду с &noatun; и &aktion;. Вы можете подписаться на нее с сайта <ulink url="http://www.kde.org/mailinglists.html"> http://www.kde.org/mailinglists.html</ulink> или послать сообщение с темой <userinput>subscribe <replaceable>ваш-email-адрес</replaceable></userinput> на <email>kde-multimedia-request@kde.org</email>. Архив рассылки можно найти по адресу <ulink url="http://lists.kde.org"> http://lists.kde.org</ulink>. </para>
<para>Рассылка для обсуждения вопросов об &arts;, в том числе и об использовании &arts; не в &kde;. Чтобы подписаться, пошлите сообщение с текстом<userinput>subscribe <replaceable>ваш-email-адрес</replaceable></userinput> на <email>arts-request@space.twc.de</email>. Архив рассылки можно найти по адресу <ulink url="http://space.twc.de/~stefan/arts-archive"> http://space.twc.de/~stefan/arts-archive</ulink>. </para>
</sect1>
<sect1 id="coding-standards">
<title>Стандарты кодирования</title>
<para>Чтобы можно было без лишних проблем читать разные исходные файлы, в них нужно использовать один стиль написания кода. Если вы просто пишете модуль, пожалуйста, постарайтесь писать код соответственно (или отформатируйте его), тогда разные люди смогут его дополнять или копировать его части. </para>
<variablelist>
<varlistentry>
<term>Именование функций-членов</term>
<listitem>
<para>Стиль &Qt;/&Java;. То есть каждое новое слово должно начинаться с заглавной буквы, но первое слово начинается со строчной, подчеркивания между словами не используются. </para>
<para>Это значит, к примеру:</para>
<programlisting>createStructureDesc()
updateWidget();
start(); </programlisting>
</listitem>
</varlistentry>
<varlistentry>
<term>Члены класса</term>
<listitem>
<para>Имена членов классов пишутся со строчной буквы: menubar, button. </para>
<para>Если необходима функция доступа, лучше всего её писать в соответствии с &MCOP;, т. е. если есть функция-член <function>foo</function> типа long, которая не должна быть всегда видимой, вы пишете: </para>
<programlisting>foo(long new_value);
long foo(); </programlisting>
<para>функции получения и задания какого-либо значения. В этом случае, значение <function>foo</function> должно храниться в <returnvalue>&lowbar;foo</returnvalue>. </para>
</listitem>
</varlistentry>
<varlistentry>
<term>Имена классов</term>
<listitem>
<para>В именах классов все слова должны начинаться с заглавной буквы, например, <classname>ModuleView</classname>, <classname>SynthModule</classname>. Все классы должны принадлежать библиотекам и использовать пространство имён &arts;, к примеру, <classname>Arts::Soundserver</classname>. </para>
<para>Классы &MCOP; должны называться так:<classname>Class&lowbar;impl</classname>, например, <classname>SoundServer&lowbar;impl</classname>. </para>
</listitem>
</varlistentry>
<varlistentry>
<term>Параметры</term>
<listitem>
<para>Параметры всегда пишутся строчными буквами. </para>
</listitem>
</varlistentry>
<varlistentry>
<term>Локальные переменные</term>
<listitem>
<para>Локальные переменные всегда пишутся строчными буквами и могут называться <varname>i</varname>, <varname>p</varname>, <varname>x</varname> и т. д., если это не делает код трудночитаемым. </para>
</listitem>
</varlistentry>
<varlistentry>
<term>Размер табуляции (отступы)</term>
<listitem>
<para>Один уровень отступа равен 4 пробелам. </para>
</listitem>
</varlistentry>
<varlistentry>
<term>Пробелы в выражениях</term>
<listitem>
<para>Обычно вам не нужно использовать пробелы в выражениях. Хотя вы можете их вставлять между операторами и операндами. Однако, если вы набрали пробел перед оператором (например, +), нужно поставить его и после оператора. Единственное исключение - выражения с ",", в которых пробел нужно ставить после "," или вообще его опустить. </para>
<para>Вот примеры правильного использования пробелов: </para>
<programlisting>{
int a,b;
int c, d, e;
int f = 4;
a=b=c=d+e+f;
a = b = c = d + e + f;
if(a == 4) {
a = b = c = (d+e)/2;
}
while(b&lt;3)
c--;
arts_debug("%d\n", c);
}
</programlisting>
<para>А вот пример того, как <emphasis>не нужно</emphasis> ставить пробелы. В вызовах функций, после if, while, for, switch и т. д. пробелы не пишутся. </para>
<programlisting>{
// ПЛОХО: в списке пробел ставится только после ","
int a , b , c , d , e , f;
// ПЛОХО: несимметричное использование пробела в операторе =
a= 5;
// ПЛОХО: if считается функцией, пробел не ставится
if (a == 5) {
}
// ПЛОХО: не пишите пробел после while
while (a--)
b++;
// ПЛОХО: после имён функций не надо ставить пробелы
arts_debug ("%d\n", c);
// ПЛОХО: не являются именами членов
Arts::Object o = Arts::Object::null ();
}
</programlisting>
</listitem>
</varlistentry>
<varlistentry>
<term>Имена сходных файлов</term>
<listitem>
<para>В названиях исходных файлов не должно быть заглавных букв. Они должны называться по имени реализуемого класса, если в них описывается только он один. Если файл содержит код, не зависящий от &Qt;/&GUI;, его расширением должно быть <literal role="extension">.cc</literal>, иначе - <literal role="extension">.cpp</literal>. Файлы, в которых реализуются интерфейсы, должны называться так: <filename><replaceable>foo</replaceable>_impl</filename>, если именем реализуемого интерфейса является Foo. </para>
<para>Имена файлов &IDL; должны в достаточной мере описывать содержимое этих файлов и также не должны содержать заглавных букв. Не стоит называть файл по имени класса, так как информация о трейдере и типе в .mcopclass может перемешаться. </para>
</listitem>
</varlistentry>
</variablelist>
</sect1>
</chapter>