Boas Práticas de Programação
11/05/2008Para ser um bom programador deve-se ter boas práticas de programação, independente da linguagem, seja PHP, Java, DotNet e etc. E também independente se a técnica escolhida é a estruturada ou a orientada a objetos. Seguem algumas dicas:
• Estabeleça um comprimento máximo para a linha de codificação para evitar ter que
rolar a janela de código fonte.
• Ponha um espaço depois de cada vírgula em listas delimitadas por vírgulas, como
por exemplo, em uma lista de argumentos.
• Quando for necessário quebrar uma linha de cógigo faça de forma que fique obvio
que a linha está incompleta sem a linha seguinte.
• Evite colocar mais de uma declaração por linha.
• Quebre seções grandes e complexas de código em módulos menores,
compreensíveis.
• Não use números ou textos literais, como for i = 1 to 100. Ao invés disso, use
constantes, como por exemplo: for i = 1 to TOTAL_ITENS, para facilitar a
manutenção e o entendimento
• Utilize variáveis e rotinas somente para um único propósito. Evite criar rotinas de
múltiplos propósitos que executam uma variedade de funções sem conexões. As
variáveis devem ser usadas somente para armazenar informações para a qual foi
criada.
Retirado da matéria de VB.NET da Faculdade de Tecnologia de Sorocaba (FATEC).
Após o sucesso do PHP, do Ruby, principalmente com a plataforma Rails, e do crescimento exponencial de Python, a Microsoft investe para disponibilizar estas novas linguagens também na plataforma .NET. Com a filosofia “desenvolva em qualquer linguagem, desde que seja na minha plataforma”, a Microsoft vem ganhando cada vez mais adeptos, e gerando cada vez mais recursos para facilitar e fidelizar (ou evangelizar, como a MS gosta de falar) o desenvolvedor.
Linguagens dinâmicas
As linguagens dinâmicas existem desde 1956, com o Lisp, depois seguidas pelo Fortran, Logo, SmallTalk, PhP, Python, Ruby, JavaScript, entre outras. Diferente das linguagens estáticas, as linguagens dinâmicas não validam o código durante a compilação, mas sim em tempo de execução, podendo ser uma grande vantagem quando é necessário fazer alterações sem muita “burocracia”.
Em projetos que se requer agilidade, o uso deste tipo de linguagem é de grande valia, pois permite realizar basicamente o que você quiser, com pouco código, porém como tudo na vida há um preço a se pagar, por exemplo: é mais difícil se aproveitar um código dinâmico do que um código “estático”.
Performance
Umas das grandes preocupações de linguagens dinâmicas é a performance da aplicação. Em testes, a versão do Python para o .NET, o IronPython apresentou performance equivalente ou superior à versão do Python baseada em C. Existe uma crença de que linguagens dinâmicas possuem uma performance inferior às linguagens estáticas, porém com as máquinas cada vez mais poderosas, esta diferença fica cada vez menos observável.
DLR
O DLR (Dynamic Language Runtime) permite rodar linguagens dinâmicas em cima do CLR (Common Language Runtime), que provê serviços comuns a todas as linguagens suportadas pelo framework. O DLR inclui funcionalidades que suportam linguagens dinâmicas, como a criação de códigos dinâmicos de forma rápida, além de prover suporte para as bibliotecas já existentes no framework .NET e manter uma interoperabilidade com as linguagens estáticas. É possível, por exemplo, utilizar bibliotecas criadas em C#, dando um poder imenso de criação, não precisando assim, recriar códigos prontos.
Atualmente a MS está desenvolvendo o suporte para DLR as linguagens Python, JavaScript (EcmaScript 3.0), Visual Basic e Ruby.
Mono
O mais famoso software para rodar e desenvolver .NET no Linux possuí suporte para o rodar linguagens dinâmicas no .NET (DLR), dando ainda mais flexibilidade.
http://www.mono-project.com/Languages
Ruby
Para manter a praticidade, a linguagem possui algumas características interessantes, na Wikipedia (2008) encontramos as seguintes informações à esse respeito:
A sintaxe é enxuta, quase não havendo necessidade de colchetes e outros caracteres.
Todas as variáveis são objetos, onde até os “tipos primitivos” (tais como inteiro, real, entre outros) são classes.
Estão disponíveis diversos métodos de geração de código em tempo real, como os “attribute accessors”.
Através do Ruby Gems, é possível instalar e atualizar bibliotecas com uma linha de comando, de maneira similar ao APT do Debian Linux.
Code blocks (blocos de código), ajudam o programador a passar um trecho de instruções para um método. A idéia é semelhante aos “callbacks” do Java, mas de uma forma extremamente simples e bem implementada.
Mixins, uma forma de emular a herança múltipla, sem cair nos seus problemas.
Tipagem dinâmica, mas forte. Isso significa que todas as variáveis devem ter um tipo (fazer parte de uma classe), mas a classe pode ser alterada dinamicamente. Os “atalhos” citados acima, por exemplo, se beneficiam da tipagem dinâmica para criar os métodos de acesso/alteração das propriedades.
Fonte: http://pt.wikipedia.org/wiki/Ruby_(linguagem_de_programa%C3%A7%C3%A3o)
Iron Python
Possui características análogas ao Ruby. Permite suporte ao Silverlight, para testar, existe um console. (http://silverlight.net/Samples/1.1/DLR-Console/python/index.htm)
O Site do projeto oficial é: http://codeplex.com/IronPython
Phalanger (PHP)
O site oficial do projeto é: http://www.codeplex.com/Wiki/View.aspx?ProjectName=Phalanger
Linguagens suportadas pela plataforma .NET
Existem uma série de linguagens suportadas pela plataforma .net. Algumas ainda em estado embrionário e não oficial enquanto outras já com apoio oficial da MS. No link abaixo, segue uma lista.
Acesse: http://dotnetpowered.com/languages.aspx
Considerações finais.
Em desenvolvimento, não está importando muito a linguagem que utilizamos. O que importa é com que rapidez e qualidade com que entregamos um projeto. É sempre importante conhecermos novas linguagens, e para isto, certamente a plataforma .NET dará todo apoio necessário.
Fonte: http://imasters.uol.com.br/artigo/8652/dotnet/rode_php_ruby_python_e_outras_linguagens_no_net/