Você está na página 1de 30

Padrões de Desenvolvimento

Equipe de Desenvolvimento de Soluções


E-mail: suporte@prominas.net

Prominas - Projetos e Serviços de Mineração Ltda


www.prominas.net

14 de Maio de 2009

MSOP (Prominas) Prominas 14 de Maio de 2009 1 / 30


Sumário
1 Softwares Utilizados

2 Bibliotecas Utilizadas

3 Nomenclaturas

4 Principais Classes

5 Práticas de Programação

6 Imagens Utilizadas

7 Padrões para as Soluções Gráficas

8 Instalador Padrão

9 Solução

MSOP (Prominas) Prominas 14 de Maio de 2009 2 / 30


Introdução

Esse relatório descreve os ambientes de desenvolvimento utilizados na


criação de Soluções Prominas para a plataforma MineSight, regras de
nomenclatura de classes, funções, variáveis (locais e globais) e definições
de práticas de programação.
Toda norma citada no presente texto deverá ser seguida pela equipe de
Desenvolvimento de Soluções da Prominas e poderá sofrer mudanças no
decorrer do tempo com o consenso da mesma.

MSOP (Prominas) Prominas 14 de Maio de 2009 3 / 30


Sumário
1 Softwares Utilizados

2 Bibliotecas Utilizadas

3 Nomenclaturas

4 Principais Classes

5 Práticas de Programação

6 Imagens Utilizadas

7 Padrões para as Soluções Gráficas

8 Instalador Padrão

9 Solução

MSOP (Prominas) Prominas 14 de Maio de 2009 4 / 30


Softwares Utilizados

Abaixo encontramos a tabela com os principais softwares utilizados para o


desenvolvimento de soluções Prominas.

Software Versão Site


Python 2.2.3 http://www.python.org/
GCC 3.4.5 http://gcc.gnu.org/
Boa Constructor 0.6.1 http://boa-constructor.sourceforge.net/
Inno Setup Compiler 5.2.3 http://www.innosetup.com/

Tabela: Softwares Utilizados

MSOP (Prominas) Prominas 14 de Maio de 2009 5 / 30


Softwares Utilizados

Observações: A versão utilizada do Python é a 2.2.3. A atualização do


Python, embora benéfica para a equipe por promoverem formas de uso de
tecnologias atuais, não pode ser efetuada devido ao MineSight somente
funcionar com a versão citada acima.

MSOP (Prominas) Prominas 14 de Maio de 2009 6 / 30


Sumário
1 Softwares Utilizados

2 Bibliotecas Utilizadas

3 Nomenclaturas

4 Principais Classes

5 Práticas de Programação

6 Imagens Utilizadas

7 Padrões para as Soluções Gráficas

8 Instalador Padrão

9 Solução

MSOP (Prominas) Prominas 14 de Maio de 2009 7 / 30


Bibliotecas Utilizadas

Abaixo encontramos a tabela com as principais bibliotecas utilizadas da


linguagem Python e também das linguagens C/C++.

Nome Site Necessária para


NumPy http://numpy.scipy.org/ Computação Cientı́fica
Win32 Extensions http://python.net/crew/mhammond/win32/Downloads.html Extensão para aplicativos do Windows
Ctypes http://python.net/crew/theller/ctypes/ Chamar funções em Dll´s
Wxpython http://wxpython.org/ Criar Interface Gráfica
swig http://www.swig.org/ Criar extensões para o Python
pthread http://sourceware.org/pthreads-win32/ Computação Paralela

Tabela: Bibliotecas Utilizadas

MSOP (Prominas) Prominas 14 de Maio de 2009 8 / 30


Sumário
1 Softwares Utilizados

2 Bibliotecas Utilizadas

3 Nomenclaturas

4 Principais Classes

5 Práticas de Programação

6 Imagens Utilizadas

7 Padrões para as Soluções Gráficas

8 Instalador Padrão

9 Solução

MSOP (Prominas) Prominas 14 de Maio de 2009 9 / 30


Nomenclaturas

Esse capı́tulo descreve todo o padrão que utilizaremos para a


nomenclatura de variáveis, funções, classes e arquivos. A razão dessas
regras é tornar o código elegante e legı́vel para qualquer profissional que
entenda de programação.
Obrigatoriamente, todo o código, inclusive os comentários, deve ser escrito
em inglês. As regras de acordo com o tipo funcional seguem abaixo:
Classes: Todo nome de classe deve começar com Class e, após o
caractere , a próxima letra da sub-palavra deverá ser escrita em
maiúscula. O nome deve ser sugestivo à funcionalidade da classe.
Funções e Procedimentos: Todo nome de função e procedimento
deve começar com uma letra em maiúsculo. O nome deve ser
sugestivo de acordo com o funcionamento da função ou procedimento.
Variáveis locais: Todo nome de variável local deve ser escrita
totalmente em minúsculo.

MSOP (Prominas) Prominas 14 de Maio de 2009 10 / 30


Nomenclaturas

Variáveis globais: Todo nome de variável global deve começar com


overall e após o caractere todo o nome deve ser em minúsculo.
Arquivos: Todo nome de arquivo dever ser escrito em minúsculo.
Objetos WxPython: Os objetos wxPython utilizados na construção
de formulários com os diversos componentes devem começar com três
caracteres que designam o tipo do componente, sendo o primeiro
caractere maiúsculo, seguido pela descrição de um nome sugestivo,
iniciando com um caractere maiúsculo. Por exemplo, AbcNome.
Abaixo segue os prefixos de acordo com o tipo do objeto wxPython:
I Frm: wxFrame
I Stb: wxStatusBar
I Pnl: wxPanel
I Wnd: wxWindow
I Sbx: wxStaticBox

MSOP (Prominas) Prominas 14 de Maio de 2009 11 / 30


Nomenclaturas

Stx: wxStaticText (e derivados)


Txt: wxTextCntrl (e derivados)
Cmb: wxComboBox (e derivados)
Chk: wxCheckBox
Rdb: wxRadioButton
Gag: wxGauge
Bmp: wxStaticBitmap
Btn: wxButton, wxBitmapButton (e derivados)
Grd: wxGrid
Lst: wxListCtrl, wxListView
Trc: wxTreeControl

MSOP (Prominas) Prominas 14 de Maio de 2009 12 / 30


Sumário
1 Softwares Utilizados

2 Bibliotecas Utilizadas

3 Nomenclaturas

4 Principais Classes

5 Práticas de Programação

6 Imagens Utilizadas

7 Padrões para as Soluções Gráficas

8 Instalador Padrão

9 Solução

MSOP (Prominas) Prominas 14 de Maio de 2009 13 / 30


Principais Classes

Esta seção descreve as classes base para a criação de qualquer Solução


Prominas. As classes possuem funções que retornam os valores das
constantes para que possam ser usadas por todas as soluções.
Uma versão das classes Prominas deve ser mantida na pasta pública
P:/!PROMINAS SOLUCOES/Classes Prominas, e deve ser utilizada
por toda a equipe. Alterações nas classes Prominas devem ser feitas
nessa versão e comunicadas aos demais.

MSOP (Prominas) Prominas 14 de Maio de 2009 14 / 30


Principais Classes

Class constant: Define todas as constantes utilizadas pelas soluções


Prominas. Por exemplo, podemos citar: tı́tulo de um messagebox
deve estar definido nessa classe.
Class project: Utilizada para modelar um projeto do MineSight. O
endereço completo do arquivo do projeto entre outras coisas são
definidas nessa classe.
Class CheckPath: Contém verificações de se é possı́vel executar os
scripts, e se as bibliotecas necessárias estão instaladas.

MSOP (Prominas) Prominas 14 de Maio de 2009 15 / 30


Sumário
1 Softwares Utilizados

2 Bibliotecas Utilizadas

3 Nomenclaturas

4 Principais Classes

5 Práticas de Programação

6 Imagens Utilizadas

7 Padrões para as Soluções Gráficas

8 Instalador Padrão

9 Solução

MSOP (Prominas) Prominas 14 de Maio de 2009 16 / 30


Práticas de Programação

Formalizar boas práticas de programação se faz necessário para padronizar


e qualificar a produção de Soluções Prominas. As práticas abaixo devem
ser seguidas:
Como a linguagem Python funciona com indentação e não com
identificadores de blocos, cada indentação deve corresponder a
exatamente 4 espaços.
Inserção de descrição da solução relatando a funcionalidade, no
módulo principal, quando e por quem foi elaborado e atualizado e
número da versão;
Comentários em inglês nos locais em que são executadas ações
importantes para facilitar o entendimento e a leitura posterior;
Escrever o código em uma ordem cronológica de uso dentro do
programa para facilitar a legibilidade.

MSOP (Prominas) Prominas 14 de Maio de 2009 17 / 30


Práticas de Programação

Toda solução deve ser orientada a objeto, para facilitar a utilização


posterior.
A parte gráfica deve ser totalmente separada do arquivo que contém
o script que resolve o problema proposto.
Toda classe, função ou procedimento deve começar com comentários
a respeito da descrição da mesma, dos parâmetros de entrada/saı́da e
com a ordem de complexidade, sempre em inglês.
Todo possı́vel erro deve ser tratado na solução, e um arquivo, na
forma de planilha, com os códigos de erros deve ser criado para
facilitar a manutenção do código.
Além de todo possı́vel erro ser tratado, a solução deve retornar um
código de erro geral, quando um erro acontecer e não for possı́vel
tratá-lo.

MSOP (Prominas) Prominas 14 de Maio de 2009 18 / 30


Sumário
1 Softwares Utilizados

2 Bibliotecas Utilizadas

3 Nomenclaturas

4 Principais Classes

5 Práticas de Programação

6 Imagens Utilizadas

7 Padrões para as Soluções Gráficas

8 Instalador Padrão

9 Solução

MSOP (Prominas) Prominas 14 de Maio de 2009 19 / 30


Imagens Utilizadas
Todas as imagens utilizadas devem ser armazenadas na pasta
%winexe%/scripts/Prominas/images, onde %winexe% corresponde à
pasta de instalação do MineSight.
As imagens devem ser armazenadas no formato jpg.
A seguir estão os logotipos utilizados em nossas soluções:

Figura: Logotipo Principal

MSOP (Prominas) Prominas 14 de Maio de 2009 20 / 30


Imagens Utilizadas

MSOP (Prominas) Prominas 14 de Maio de 2009 21 / 30


Imagens Utilizadas

Figura: Ícone

MSOP (Prominas) Prominas 14 de Maio de 2009 22 / 30


Sumário
1 Softwares Utilizados

2 Bibliotecas Utilizadas

3 Nomenclaturas

4 Principais Classes

5 Práticas de Programação

6 Imagens Utilizadas

7 Padrões para as Soluções Gráficas

8 Instalador Padrão

9 Solução

MSOP (Prominas) Prominas 14 de Maio de 2009 23 / 30


Outros Padrões

Além dos padrões mencionados, as soluções que utilizam o modo gráfico


devem adotar os seguintes:
A barra de tı́tulo da solução deve conter um texto da forma “(Nome
da solução) - (Versão)”. Por exemplo: “Get Center Block - 1.0”.
A cor dos Panels deve ser o cinza padrão da Prominas, cujo código
RGB é:
R = 212
G = 207
B = 201
A imagem identificada como “Logotipo Principal”, mostrada
anteriormente, deve ser usada como cabeçalho em todas as soluções.

MSOP (Prominas) Prominas 14 de Maio de 2009 24 / 30


Sumário
1 Softwares Utilizados

2 Bibliotecas Utilizadas

3 Nomenclaturas

4 Principais Classes

5 Práticas de Programação

6 Imagens Utilizadas

7 Padrões para as Soluções Gráficas

8 Instalador Padrão

9 Solução

MSOP (Prominas) Prominas 14 de Maio de 2009 25 / 30


Instalador Padrão

Toda solução que usa mais de um arquivo deve possuir um instalador.


O nome do instalador deve começar com “install ”, tendo em seguida
o nome da solução em questão e, ao final, “ (versão da solução)”.
O idioma do instalador deve ser o inglês padrão.
As pastas usadas dependem do modo como a solução opera: se
através do MineSight ou diretamente, conforme mostramos a seguir.

MSOP (Prominas) Prominas 14 de Maio de 2009 26 / 30


Instalador Padrão
Para soluções executadas através do MineSight:
Pasta da solução: %medexe%/scripts/Prominas/Solutions/(Nome da
solução).
Bibliotecas Prominas usadas: %medexe%/scripts/Prominas/Lib.
Imagens e ı́cones Prominas: %medexe%/scripts/Prominas/Images.
Criar em (Menu Iniciar)/Prominas/(Nome da solução) um atalho
para abrir o Windows Explorer na pasta da solução, para o arquivo de
ajuda e para desintalar. O nome dos atalhos para a solução e para seu
desinstalador devem onter sua versão.
Adicionar à variável de ambiente PYTHONPATH o caminho das
bibliotecas Prominas acima.
As imagens e bibliotecas acima devem ser copiadas em todo
instalador, com as opções de sobrescrever e de não remover após a
desinstalação, já que elas são compartilhadas por outras soluções.
No instalador, não devem ser dadas ao usuário as opções de alterar o
local das pastas, de executar a solução depois de finalizar o instalador
e nem de criar um ı́cone no Desktop.
MSOP (Prominas) Prominas 14 de Maio de 2009 27 / 30
Instalador Padrão
Para soluções executadas independentemente do MineSight:
Pasta da solução, bem como das bibliotecas, imagens e ı́cones
Prominas usados: (Arquivos de
Programas)/Prominas/Solutions/(Nome da solução).
Criar em (Menu Iniciar)/Prominas/(Nome da solução) um atalho
para a solução, para o arquivo de ajuda e para desinstalar. O nome
dos atalhos para a solução e para seu desinstalador devem onter sua
versão.
O diretório de trabalho dos atalhos criados no Menu Iniciar e no
Desktop deve ser alterado para a pasta do programa, para que as
imagens possam ser importadas sem erro.
Neste caso, as bibliotecas e imagens criadas devem ser removidas
após desinstalar a solução, já que elas são usadas apenas pela solução
correspondente.
Permitir as opções de criar um ı́cone no Desktop, de executar a
solução ao encerrar o instalador e de alterar o local das pastas.
MSOP (Prominas) Prominas 14 de Maio de 2009 28 / 30
Sumário
1 Softwares Utilizados

2 Bibliotecas Utilizadas

3 Nomenclaturas

4 Principais Classes

5 Práticas de Programação

6 Imagens Utilizadas

7 Padrões para as Soluções Gráficas

8 Instalador Padrão

9 Solução

MSOP (Prominas) Prominas 14 de Maio de 2009 29 / 30


Solução

Uma solução deve possuir os seguintes arquivos:


Instalador: Deve realizar todas as tarefas automaticamente para que a
solução funcione corretamente, sem que seja necessário qualquer
outro procedimento.
Documentação: Um arquivo leiame.pdf deve ser gerado com as
explicações sobre qual problema a solução resolve e como ela deve ser
executada.
Observação: Em geral, as soluções Prominas devem funcionar a partir do
prompt de comando e do MineSight, com ou sem parâmetros de entrada,
se possı́vel.

MSOP (Prominas) Prominas 14 de Maio de 2009 30 / 30