1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
|
<!-- <?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
>Contribuir para o &arts;</title>
<sect1 id="how-to-help">
<title
>Como Pode Ajudar</title>
<para
>O projecto do &arts; poderá usar a ajuda dos programadores para tornar as aplicações multimédia cientes do &arts;, criar aplicações multimédia novas e melhorar as capacidades do &arts;. Contudo, você não terá de ser um programador para contribuir. A ajuda também poderá ser usada para as pessoas dos testes para enviarem relatórios de erros, traduções do texto e da documentação das aplicações para outras línguas, artistas para desenharem imagens (especialmente para os módulos do <application
>artsbuilder</application
>), músicos para criarem módulos de amostras do &arts; e escritores para criarem ou validarem a correcção da documentação. </para>
</sect1>
<sect1 id="mailing-lists">
<title
>Listas de Correio</title>
<para
>A maioria das discussões de programação do &arts; tomam lugar em duas listas de correio. Este é o lugar para discutir as novas ideias de funcionalidades e de implementação, ou para pedir ajuda para alguns problemas. </para>
<para
>A lista de correio de Multimédia do &kde; é para os assuntos gerais de multimédia do &kde;, e que inclui o &arts;, assim como as aplicações multimédia, como o &noatun; e o &aktion;. Você poder-se-á subscrever na página Web em <ulink url="http://www.kde.org/mailinglists.html"
> http://www.kde.org/mailinglists.html</ulink
> ou enviar uma mensagem de e-mail com o assunto igual a <userinput
>subscribe <replaceable
>o-seu-endereço-de-e-mail</replaceable
></userinput
> para <email
>[email protected]</email
>. A lista está também arquivada em <ulink url="http://lists.kde.org"
> http://lists.kde.org</ulink
>. </para>
<para
>A lista de correio do &arts; é para os assuntos específicos do &arts;, incluindo a utilização fora do &kde; do &arts;. Para se subscrever, envie uma mensagem de e-mail que contenha o corpo da mensagem <userinput
>subscribe <replaceable
>o-seu-endereço-de-e-mail</replaceable
></userinput
> para <email
>[email protected]</email
>. A lista é arquivada em <ulink url="http://space.twc.de/~stefan/arts-archive"
> http://space.twc.de/~stefan/arts-archive</ulink
>. </para>
</sect1>
<sect1 id="coding-standards">
<title
>Normas de Código</title>
<para
>Para obter uma leitura consistente de todo o código, é importante manter o estilo de código igual entre si em todo o código do &arts;. Por favor, mesmo que você só crie um módulo, tente escrever/formatar o seu código de acordo com as recomendações, para que facilite para as várias pessoas manterem a estrutura de código e para ser mais fácil de copiar pedaços de código de um bloco para outro. </para>
<variablelist>
<varlistentry>
<term
>Nome das funções-membro</term>
<listitem>
<para
>Estilo do &Qt;/&Java;. Isso equivale à capitalização nas quebras de palavras, tendo a primeira letra em minúsculas; sem sublinhados. </para>
<para
>Isto significa, por exemplo:</para>
<programlisting
>criarDescrEstrutura()
actualizarItem();
iniciar(); </programlisting>
</listitem>
</varlistentry>
<varlistentry>
<term
>Membros da classe</term>
<listitem>
<para
>Os membros da classe não são capitalizados, como por exemplo 'barramenu' ou 'botao'. </para>
<para
>Quando existirem funções de acesso, a norma deverá ser a do &MCOP;, isto é, ao ter um membro 'long' <function
>xpto</function
>, o qual não será visível directamente, você cria funções: </para>
<programlisting
>xpto(long novo_valor);
long xpto(); </programlisting>
<para
>para obter e alterar o valor. Nesse caso, o valor real de <function
>xpto</function
> serão armazenadas em <returnvalue
>_xpto</returnvalue
>. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>Nomes das classes</term>
<listitem>
<para
>Todas as classes deverão ser capitalizadas nas palavras, o que significa <classname
>JanelaModulo</classname
>, <classname
>ModuloSintese</classname
>. Todas as classes que pertencem às bibliotecas deverão usar o espaço de nomes do &arts;, como o <classname
>Arts::Soundserver</classname
>. </para>
<para
>As implementações das classes do &MCOP; dever-se-ão chamar <classname
>Classe_impl</classname
>, como por exemplo <classname
>ServidorSom_impl</classname
>. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>Parâmetros</term>
<listitem>
<para
>Os parâmetros nunca estão capitalizados. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>Variáveis locais</term>
<listitem>
<para
>As variáveis locais nunca são capitalizadas, e poderão ter nomes do tipo <varname
>i</varname
>, <varname
>p</varname
>, <varname
>x</varname
>, &etc;, sempre que apropriado. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>Tamanho da tabulação</term>
<listitem>
<para
>Uma tabulação equivale neste caso a 4 espaços. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>Espaços nas expressões</term>
<listitem>
<para
>Você não precisa normalmente de usar espaços nas expressões. Você poderá, no entanto, usá-los entre os operadores e os seus operandos. Todavia, se você puser um espaço antes de um operador (p.ex., o +), você também precisa de pôr um a seguir ao mesmo. A única excepção a isto são as expressões do tipo lista (com o ,), onde você deverá pôr um espaço a seguir ao ",", mas não antes. Também é aceitável omitir aqui o espaço. </para>
<para
>Os exemplos seguintes demonstram uma boa utilização dos espaços: </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<3)
c--;
arts_debug("%d\n", c);
}
</programlisting>
<para
>Os exemplos seguintes demonstram como <emphasis
>não</emphasis
> usar os espaços. Para as chamadas as funções, a seguir ao 'if', 'while', 'for', 'switch', entre outros, não é adicionado nenhum espaço. </para>
<programlisting
>{
// MAL: se você indicar uma lista, ponha espaços apenas após o ","
int a , b , c , d , e , f;
// MAL: utilização não-simétrica dos espaços no operador '='
a= 5;
// MAL: se for considerada uma função, e se não for seguida de um espaço
if (a == 5) {
}
// MAL: não colocar um espaço a seguir ao 'while'
while (a--)
b++;
// MAL: os nomes das funções não são seguidos de um espaço
arts_debug ("%d\n", c);
// MAL: nada aqui é o nome de um membro
Arts::Object o = Arts::Object::null ();
}
</programlisting>
</listitem>
</varlistentry>
<varlistentry>
<term
>Nomenclatura dos ficheiros de código</term>
<listitem>
<para
>Os ficheiros de código aqui não deverão ter capitalizações no nome. Deverão ter o nome da classe quando implementam uma única classe. A sua extensão é a <literal role="extension"
>.cc</literal
> se se referirem ao código independente do &Qt;/&GUI;, e <literal role="extension"
>.cpp</literal
> se se referirem ao código dependente do &Qt;/&GUI;. Os ficheiros de implementação das interfaces dever-se-á chamar <filename
><replaceable
>xpto</replaceable
>_impl</filename
>, se o Xpto for o nome da interface. </para>
<para
>Os ficheiros &IDL; deverão ser chamados de uma forma descritiva para a colecção de interfaces que eles contêm, estando tudo também em minúsculas. Especialmente, não é bom chamar a um ficheiro &IDL; o nome da classe, dado que o mediador .mcopclass e os itens do tipo de informação irão colidir, nesse caso. </para>
</listitem>
</varlistentry>
</variablelist>
</sect1>
</chapter>
|