Nomenclatura das classes e atributos

457 views
Skip to first unread message

Josir

unread,
Apr 2, 2011, 5:57:20 PM4/2/11
to Django Brasil
Olá pessoal,

tenho analisado alguns modelos postados e na maioria deles, existe o
nome das classes inicia em maiúsculo e o nome dos atributos começa com
letra minúscula.

Existe alguma padronização nesse sentido para o Python/Django ou é
apenas o hábito ?
Caso tenha algum documento que formalize essa nomenclatura, alguém
pode me enviar um link?

Pergunto isso, pois acho muito mais produtivo manter o nome dos
atributos começando com maiúsculo pois na maioria das vezes não
preciso escrever o "Display Label" do atributo novamente.

Alguns podem dizer que isso irá atrapalhar uma possível tradução
futura. Mas se no meu caso eu tenho CERTEZA que não irei traduzir para
nenhuma outra língua, alguém consegue listar outras desvantagens em
não utilizar o nome dos atributos com a primeira letra em maiúscula?

Saudações a todos,
Josir.

Manuel Gonçalves da Silva Neto

unread,
Apr 2, 2011, 6:22:46 PM4/2/11
to django-brasil
No Python/Django não sei, mas no Java existe uma padronização de nome de métodos e atributos começarem com minusculas e nomes de classes começarem com maiusculas, assim como classes com nome extenso terem uma letra maiuscula no meio, ex:  RegistroDiploma é melhor e mais compreensivel que  registrodiploma ou Registrodiploma. Boas praticas nem sempre  são imposição mas seu codigo será melhor entendido por outros desenvolvedores. Quem saiu do java pra django com certeza mantem este padrão. Exatamente por isto existe o atributi verbose_name e  verbose-name_plural.


Atenciosamente:
                 Manuel  Gonçalves

      




> Date: Sat, 2 Apr 2011 14:57:20 -0700
> Subject: Nomenclatura das classes e atributos
> From: jos...@gmail.com
> To: django...@googlegroups.com
> --
> Django Brasil em Google Groups <http://groups.google.com.br/group/django-brasil>
> Associe-se à Python Brasil e suporte nossa comunidade! <http://associacao.python.org.br/>

Robson

unread,
Apr 2, 2011, 6:29:09 PM4/2/11
to django...@googlegroups.com
Em 2 de abril de 2011 18:57, Josir <jos...@gmail.com> escreveu:
> Olá pessoal,

Olá Josir!

> tenho analisado alguns modelos postados e na maioria deles, existe o
> nome das classes inicia em maiúsculo e o nome dos atributos começa com
> letra minúscula.
>
> Existe alguma padronização nesse sentido para o Python/Django ou é
> apenas o hábito ?
> Caso tenha algum documento que formalize essa nomenclatura, alguém
> pode me enviar um link?

Existe a PEP 8: http://www.python.org/dev/peps/pep-0008/


> Pergunto isso, pois acho muito mais produtivo manter o nome dos
> atributos começando com maiúsculo pois na maioria das vezes não
> preciso escrever o "Display Label" do atributo novamente.
>
> Alguns podem dizer que isso irá atrapalhar uma possível tradução
> futura. Mas se no meu caso eu tenho CERTEZA que não irei traduzir para
> nenhuma outra língua, alguém consegue listar outras desvantagens em
> não utilizar o nome dos atributos com a primeira letra em maiúscula?
>
> Saudações a todos,
> Josir.


Então, a maior desvantagem que vejo é se outra pessoa tbm for
trabalhar com seu código. Nunca sabemos o quanto um projeto irá
crescer, ou por quanto tempo vamos continuar participando do
desenvolvimento dele.

A PEP 8 é tão utilizada no "mundo python" que qualquer código que não
siga esses padrões acaba ficando "ugly" à primeira vista (opinião
pessoal minha).

Logo quando comecei com python tbm tive esse tipo de "conflito", mas
resolvi me esforçar e seguir essa convenção de nomeclaturas.

Hoje vejo que a minha escolha foi boa e o esforço valeu a pena. Minha
produtividade com a linguagem se tornou muito maior, principalmente
quando estou lidando com códigos de terceiros.

(Imagine como ficaria seu código ao utilizar modulos externos e
misturar diversas convenções de nomeclaturas num mesmo projeto..)

Enfim, meus 2 cents hehe

abs!
Robson

Danilo Cabello

unread,
Apr 2, 2011, 7:33:46 PM4/2/11
to django...@googlegroups.com
Boa noite Josir,

2011/4/2 Josir <jos...@gmail.com>:


> Pergunto isso, pois acho muito mais produtivo manter o nome dos
> atributos começando com maiúsculo pois na maioria das vezes não
> preciso escrever o "Display Label" do atributo novamente.

Além da PEP-8[1] recomendada pelo Robson (sugiro fortemente a leitura
e a prática dela), acredito que se você usar underscore (_) para
separar as palavras do atributo do seu model o Django coloca os dados
corretamente em maiúsculo, pode conferir que se você criar um atributo
com nome de idade o admin exibi Idade.

[1]: http://www.python.org/dev/peps/pep-0008/

--
Danilo Cabello
Bottom-poster maniac.

Josir

unread,
Apr 3, 2011, 4:29:27 PM4/3/11
to Django Brasil
Olá pessoal, eu estava buscando exatamente esse style guide. Eu creio
que não existe um específico para Django mas esse do Python já indica
as boas práticas.

Resumindo:
- classes utilizando CapsWords
- atributo da classe e métodos, sempre em minúscula e separando as
palavras com _

Esclareceu bastante!

Já alterei todos os meus modelos.
Agora, passei a 3a marcha e entrei agora na fase adrenalina no Django,
programando sábado e domingo :)))

Saudações e bom domingo a todos!
Josir.

On 2 abr, 20:33, Danilo Cabello <danilo.cabe...@gmail.com> wrote:
> Boa noite Josir,
>
> 2011/4/2 Josir <josi...@gmail.com>:

Gabriel SERPRO

unread,
Apr 4, 2011, 10:22:34 PM4/4/11
to django...@googlegroups.com
O pylint pode ser utilizado também para emitir avisos quando algumas das propostas da PEP8 não são utilizadas, além de outros recursos mais interessantes.

Atualmente utilizo integrado com o eclipse e pycharm (são dois ambientes de desenvolvimento distintos).

No caso do django existe o django-lint.

Boa sorte!
Reply all
Reply to author
Forward
0 new messages