POGs SA

POG (programação orientada à gambiarras) é uma "paródia" inspirada em POO (programação orientada à objetos) que é um dos símbolos da programação organizada e preocupada com a qualidade do código escrito. POG é termo criado nos baixos da área de informática que descreve uma forma "jogada" ou criada normalmente por quem está começando na área de programação (não é culpa deles), mas, não entende muito bem o conceito e nem tem o conhecimento necessário para fazer um código de qualidade.

Porém, é extremamente necessário que as empresas possuam ao menos uma pessoa experiente na parte de organização / arquitetura de software para que certos erros não venham a ser cometidos nos sistemas.

Apesar de fazer bem feito inicialmente passe a idéia da forma correta de ser feito, a maior parte da área de TI desconhece alguns conceitos de como fazer isto, mas, este não é o único problema. Muitas das empresas também não se preocupam de como está sendo desenvolvido a qualidade do código, e a maior parte deles é por conta do tempo de desenvolvimento que isto custa inicialmente (quando falo inicialmente, é inicialmente mesmo, dando a impressão de atraso nos primeiros 20% ~ 40 % do tempo de desenvolvimento do sistema), porém, que traz uma agilidade incrível após "fechada" toda ou ao menos a maior parte da arquitetura do software. Fora isto, a quantidade de tempo que se gasta fazendo uma manutenção em um software bem estruturado é incrível. Mudanças de bancos de dados, regras de negócio e até reutilização de código para o mesmo sistema funcionar web e desktop é incrível, além, da satisfação de encontrar / desenvolver um código limpo é algo que não tem explicação.

Porém, na cultura das empresas tudo é para ontem, tudo tem que entregar logo e de qualquer jeito, então, o gasto com a "reescrita" de sistemas inteiros é algo que na minha concepção, as empresas economizariam cerca de 60% ~ 70% do seu orçamento em TI. Fora isto, a confiabilidade do sistema e a velocidade de replicação de regras e funcionalidades faz com que os usuários da área de TI fiquem muito mais contentes com os sistemas desenvolvidos.

Por estes e muitos outros motivos que não vejo POGs com bons olhos. Porém, como a área é nova, a área necessita cada vez mais de pessoas e os professores até mesmo de faculdades não conhecem as boas práticas de programação, o preço disto é uma área extremamente necessária nas empresas, porém, amadora.

Google, a empresa beta

Google, a empresa beta

Falar de inovação é falar de Google.

Se tem uma empresa que nos surprende a cada dia ela se chama Google.

Podemos amá-la como provedor de recursos web da mais alta qualidade, podemos odiá-la com sua postura de imperialista na dominação de serviços da Internet, mas o que devemos mesmo é elogiá-la!

Seus "ataques" no intuido de dominação não são grotescos como os da conhecida Microsoft ao tentar comprar com unhas e dentes seus concorrentes como o Yahoo!

A Google simplesmente estuda, estuda e ataca, e esse ataque é simples...é direto e inteligente..e o que deixa? são perguntas ou questionamentos para nós.

Isso só dá certo com a Google?

Interessente mesmo é sua estratégia do "beta eterno"!

Nós, desenvolvedores de software, estudamos e lutamos para pôr nossos "filhotes" em produção; lutamos para prover um nível de excelência e depois enfatizando que nossa concepção é UM SOFTWARE DE PRODUÇÃO e não mais um protótipo BETA!

Mas porque fazer isso?

Por que não deixemos de lados os padrões, os processos, as normas e/ou as recomendações e pomos tudo em beta mesmo?

Podemos dizer que "beta" já é o nível de excelência! Olha o Google!

Se não me engano o gmail foi lançado em 2003 não foi?

Puta merda! Os desenvolvedores do Google são tão ruins que 5 anos depois o produto deles AINDA É BETA!

Mas espera! não é apenas o gmail não, vamos então para uma pequna listagem!

Google Book Search - Beta

Google Orkut - Beta

Google Video - Beta


Google Mail Beta

Não, Não e Não! Chega de beta não é?

Agora temos o mais novo "Google's beta" o navegador Chrome ! PQP!

Eu soube da novidade e logo pensei: "Espere! Já uso meu Firefox todo bonzinho e tal! Pra que eu devo usar esse Chrome se ele acabou de ser lançado e é beta?"

Mas subitamente, sem demora, quase que instantaneamente repensei: "Não, não Olavo! Ele é beta, mas é do Google! Primeiro, ele não deixará de ser beta! E segundo...se é do Google, importa se é beta?

Para minha surpresa, eu certifiquei do que pensei inicialmente!

Ele era realmente beta! Estava eu testando e aparece essa tela show de bola!


Google Chrome - Beta


Humm...seria uma prova que o "beta é beta" de fato?

Isso me lembrou uma estória de um amigo que já trabalhou comigo.

Ele disse que na empresa que ele trabalhou uma vez...algum programador "esqueceu" um "alert" no código (provavelmente era debug não é?) que quando o programa tinha um "comportamento estranho", ou seja, um bug, esse "alert" era exibido com a seguinte mensagem:

"Deu pau!"

Isso deu o maior rolo! O cliente viu o Pau! ahahahahahha

Na verdade sendo beta ou não isso pouco importa...o que acho é que esse programador deve está no Google agora!

Eu irei demitir minha equipe se o nosso produto for posto em produção! Ele tem que ficar em beta!

Vou alterar meu blog para beta...e fazer uma dissertação para quem sabe no meu futuro mestrado, dizer: "

"TODO SOFTWARE É BETA! ELE SEMPRE MUDA, NUNCA ESTÁ NA EXCELÊNCIA DA PRODUÇÃO...A EXCELÊNCIA É BETA! Google É BETA!

Texto inicialmente publicado no meu blog:http://oalexandrino.com/blog/pt-BR/28/google-a-empresa-beta.aspx

Comprar software orginal no Brasil, será que chegou a hora?

Olá pessoal, durante uma breve passada na minha lista de feeds do meu Google Reader (para quem não conhece este fantástico leitor de RSS o endereço é www.google.com/reader), uma noticia do canal IDGNow chamou a minha atenção, a Microsoft abaixo de forma considerável o preço das licenças dos seus principais produtos destinados ao usuários finais, o pacote Office 2007 na versão Home & Student que inclui os softwares Word, Excel, PowerPoint e Outlook passa sair pela bagatela de R$ 199,00 sendo que no começo do ano custava R$ 399,00 e o Windows Vista Home Basic que custava R$ 499,00 passa a custar R$ 299,00, para este ultimo acredito que seja uma forma de forçar a migração para o sistema operacional, pois nas ultimas semanas a Microsoft anunciou que não vai mais comercializar o Windows XP, o que chamou a atenção nesta noticia não é diminuição de valor neste curto período de tempo, mais com relação as versões anteriores destes produto, e de outros softwares que utilizamos no nosso dia-a-dia, pois a dois anos atrás o era inimaginável pelo menos para mim ter um computador com todos os softwares originais, e não estou falando de softwares específicos que costumam custar o olho da cara, softwares que qualquer pessoa que tem um computador em casa ou utiliza no trabalho que ao meu ver são essenciais como um bom editor de textos, uma boa planilha de calculo, um compactador de arquivo descente, antivírus, firewall, programa de gravação de CD, etc ,etc, quando colocava o valor de cada licença na ponta do lápis chegava a conclusão que iria gastar duas vezes o preço do computador (que na época já era caro), somente com licenças de software "essenciais", por este motivo acabava indo para o lado negro da força (se é que vocês em entendem), mais acho que as coisas estão mudando,pois parece que softwares proprietários estão acompanhando a queda de preço dos computadores. Com este tipo de metida adotada por algumas das gigantes do mercado de software, será que nós brasileiros vamos mudar a nossa cultura e passar a valorizar o software original e deixar as banquinhas de lado? eu espero que sim, eu até estou pensando em comprar uma licença :-), e espero que outros seguimentos como DVDs e CDs sigam a mesma linha, pois ai quem sabe o Brasil deixa de ser visto como um dos países que mais pirateia produtos no mundo, já que muita vezes relacionamos esta prática com alto valor cobrado por estes produtos.

Fontes: http://idgnow.uol.com.br/computacao_pessoal/2008/07/01/motivada-por-promocao-microsoft-corta-precos-do-vista-e-office-2007/

http://www1.folha.uol.com.br/folha/informatica/ult124u21506.shtml

Windows Vista, Sql Server e Office 2007 Updates e a Tecnologia 3G

Olá,

meu nome é Olavo Alexandrino trabalho como Engenheiro de Software e estarei aqui blogando sobre tecnologia à convite do meu ex-colega de trabalho David Barros.

Pois é, recentemente decidi adotar as últimas versões dos softwares da Microsoft para o meu laptop. A escolha foi mais um desafio do que a mais viável ou aceitável opção.

Então veio a primeira questão:

"1Gb de memória RAM é o suficiente para usar o Windows Vista?"

Claro que não! Tive que fazer diversas customizações e a primeira foi desabilitar o Tema Aero do Vista!

Apesar de muito legal, esse tema consome uma memória absurda, até para PC's com 2Gb de ram você pode notar.

Como é que se tem coragem de vender PCs com o Windows Vista e com 512Mb de RAM???!!

Vocês já viram não é?

O engraçado que no mesmo laptop eu tenho uma partição dedicada ao Ubuntu que tem efeitos semelhantes e roda com uma performance extremamente superior!

Por quê será?

E depois pra instalar o Visual Studio 2005 e SQL Server Express?

Nossa! Arrependo-me até hoje não ter salvo o print-screen da operação. Foram mais, acredite, de 1GB de updates.

Se não me engano toda terça a Microsoft lança updates do Vista. Para minha surpresa um novo super pacote de atualização veio
recentemente.

Juntando o Windows Vista, o SQL Server e o Office totalizaram quase que 500 Mb de downloads! Vide na imagem abaixo!

Super pacotes de atualização

Outra coisa muito interessante é que nosso velho Ubuntu vem num CD! E esse update aí é bem próximo de um tamanho dum CD.

Evidentemente que temos quase que diariamente updates no Ubuntu, é só deixar lá sem atualizar durante uma semana que podemos ver a porção de updates que são sugeridos.

O ponto negativo que eu vejo nos do Windows é que pelo menos num dos ítens mais perceptíveis para o usuário: a Performance, eu não percebi melhoria alguma em nenhum update.

Ei! E vocês que estão animados com a tecnologia 3G?!!

Legal não é?

Agora você todo animado vai ao shoping e assina um plano como o da operadora Claro que limita a 1GB de download mensal ao preço de R$ 99,00 reais e ainda usa o Windows Vista?!!!

O que acontece? Você deixa seu laptop ligado! Vai ali, dá uma saidinha, e deixa seu Super Windows Vista com o Windows Update ligado pra atualizações automáticas. Quando você volta, seu Windows já está "up-to-date"!

Agora a sua conexão está com a velocidade menor que aquela porcaria de internet discada que você usada há vários anos . Você preocupado, liga para a operadora que lhe ofereceu aquele serviço de "última geração" e o operador lhe diz que você ultrapassou a franquia de tráfego!

Você fica sem entender e pensa:

"E eu pensei que aquela porcaria de Velox (Telemá) era ruim !!!! Que merda!"Um abraço, meu amigo!

Como diria o velho ditado:

"Nem tudo que reluz é ouro!"

Tem coisas, que só a Microsoft e a Telefonia móvel brasileira faz pra você !!

Classes em ASP

Hoje em dia, o ASP é uma plataforma (não uma linguagem, onde a linguagem mais comum utilizada é o VB Script) ultrapassada e antiga, porém, há muitos sistemas que ainda rodam sobre ela. Mesmo assim, há algumas características pouco conhecidas por muitas pessoas que a utilizam e que um dia chegaram a utiliza-la. A idéia deste post é de ser um dos muitos que ajudarão a deixar os sistemas que rodam até hoje e que não há previsão de troca por outro, além de ser destinados aqueles que o objetivo é de atualização de linguagem (deixando o mais próximo possível, nunca igual, de linguagens atuais). Falo isto porque por favor, não me criem sistemas novos a partir desta linguagem, a não ser em casos muito extremos, pois, o ASP já foi descontinuado pela Microsoft há muitos anos.

Uma destas características é a utilização de classes. Não estou falando de classes compiladas no VB e referenciadas pela linguagem e sim nas linguagens de script que rodam sobre ela. Porém, existem várias e várias limitações que mesmo trabalhando com classes e objetos, nunca deixarão seus sistemas Orientados à Objetos, pois, não há nenhuma característica de orientação à objetos (herança, polimorfismo entre várias outras) na plataforma a não ser a possibilidade de aglomerar funções e manter o escopo de alguma variáveis limitados à necessidade de fazer referencia às classes que as possuem e da existência de um construtor e um destrutor para as classes . Resta ao desenvolvedor, utilizar esta característica ao seu favor, utilizando-a da maneira mais bem pensada o possível. Favor, lembrar de limitar as classes à escopos bem definidos, nunca fazer classes "faz-tudo".

Vamos deixar de teoria e começar a ver exemplos de classes na linguagem utilizando as características de padronização de programação de um post anterior do blog só que com a adição de comentários para seu entendimento sobre as classes, vamos chama-la de Modelo.

Primeiro, vamos criar uma classe simples, vazia, que não serve para nada!

<%
'Início da classe Modelo

class Modelo

'Fim da classe Modelo
end class
>

Muito BOM!!! Com estas linhas, você definirá a sua classe inútil.

Agora, vamos colocar os construtores e destrutores na classe.

<%
'Início da classe Modelo.
class Modelo

'Construtor da classe.
private sub class_Initialize()
end sub

'Destrutor da classe.
private sub class_Terminate()
end sub

'Fim da classe Modelo.
end class
>

Não vou explicar o que é um construtor e destrutor de classes agora, mas, em breve, ou eu ou outra pessoa, publicará o que são estas facilidades. Mas, em algum momento deste post, posso aprofundar pouca coisa sobre eles.

Agora, vamos colocar alguns atributos na classe.

<%
'Início da classe Modelo.

class Modelo

'Atributos públicos da classe.
public strNome
public strDescricao

'Construtor da classe.
private sub class_Initialize()
end sub

'Destrutor da classe.
private sub class_Terminate()
end sub

'Fim da classe Modelo.
end class
>

Agora que colocamos atributos públicos na classe (o que raramente ou nunca deve ocorrer), vamos colocar propriedades na mesma.

<%
'Início da classe Modelo.
class Modelo

'Atributos públicos da classe.
private strNome
private strDescricao

'Construtor da classe.
private sub class_Initialize()
end sub

'#region Propriedade Nome
public property let Nome(strValue)
strNome = strValue
end property

public property get Nome()
Nome =
strNome
end property
'#endregion Propriedade Nome

'#region Propriedade Descrição
public property let Descricao(strValue)
strDescricao = strValue
end property

public property get Descricao()
Descricao = strDescricao
end property
'#endregion Propriedade Descrição

'Destrutor da classe.
private sub class_Terminate()
end sub

'Fim da classe Modelo.
end class
>

Agora, temos uma classe quase decente, que pode ser utilizada para transporte de dados. Quase, pois falta o comentário. Porém, lembre-se, nunca deve-se fazer códigos sem comentário. Fiz isto neste post, para não criar tantas linhas no post e por haver comentários explicativos na classe que são coisas que não escrevo em classes, mas, deve-se sempre já colocar os comentários.

Porém, ainda não acabamos, vou colocar um procedimento (não tem retorno) e uma função (tem retorno) que são conceitos antigos de linguagens antigas, porém, tenho que colocar no exemplo por estar falando do ASP.

<%
'Início da classe Modelo.
class Modelo

'Atributos públicos da classe.
private strNome
private strDescricao

'Construtor da classe.
private sub class_Initialize()
end sub

'#region Propriedade Nome
public property let Nome(strValue)
strNome = strValue
end property

public property get Nome()
Nome = strNome

end property
'#endregion Propriedade Nome

'#region Propriedade Descrição
public property let Descricao(strValue)
strDescricao = strValue
end property

public property get Descricao()
Descricao = strDescricao

end property
'#endregion Propriedade Descrição


'Exemplo de Função
public function QualquerCoisa()
QualquerCoisa = "QualquerCoisa"
end function

'Exemplo de Procedimento ou Sub
public sub QualquerCoisaSemRetorno()
response.write ("QualquerCoisaSemRetorno")
end sub

'Destrutor da classe.
private sub class_Terminate()
end sub

'Fim da classe Modelo.
end class

>

Agora, temos todas as possibilidades que vislumbro neste momento que podem existir em uma classe.

Vamos fazer os comentários certos e retirar os que fiz para os leitores entenderem.

<%
'/**
'* @description Transporte de Modelo
'*
'* @author David B S Ribeiro
'* @access public
'* @package br.com.mdstecnologia.modelo.asp.modelo
'*/
class Modelo

private strNome
private strDescricao

'/**
'* @description Construtor padrão
'* @author David B S Ribeiro
'* @access private
'*/
private sub class_Initialize()
end sub

'#region Propriedade Nome

'/**
'* @description Configura o Nome do Modelo
'*
'* @author David B S Ribeiro
'* @access public
'*/
public property let Nome(strValue)
strNome = strValue
end property

'/**
'* @description Recupera o Nome do Modelo
'*
'* @author David B S Ribeiro
'* @package br.com.mdstecnologia.modelo.asp.modelo
'* @access public
'*/
public property get Nome()
Nome = strNome
end property
'#endregion Propriedade Nome

'#region Propriedade Descrição
'/**
'* @description Configura a Descrição do Modelo
'*
'* @author David B S Ribeiro
'* @access public
'*/
public property let Descricao(strValue)
strDescricao = strValue
end property

'/**
'* @description Recupera a Descrição do Modelo
'*
'* @author David B S Ribeiro
'* @access public
'*/
public property get Descricao()
Descricao = strDescricao
end property
'#endregion Propriedade Descrição

'/**
'* @description Retorna a string "QualquerCoisa"
'* @author David B S Ribeiro
'* @access public
'* @return A string "QualquerCoisa"
'*/
public function QualquerCoisa()
QualquerCoisa = "QualquerCoisa"
end function

'/**
'* @description Escreve no HTML "QualquerCoisaSemRetorno"
'* @author David B S Ribeiro
'* @access public
'*/
public sub QualquerCoisaSemRetorno()
response.write ("QualquerCoisaSemRetorno")
end sub

'/**
'* @description Destrutor
'* @author David B S Ribeiro
'* @access private
'*/
private sub class_Terminate()
end sub

'Fim da classe Modelo.
end class
>

Agora sim, podemos dizer que finalizamos nossa classe.

Mas, como referencia-la? Segue o exemplo abaixo:

<%
dim objModelo
set objModelo = new Modelo

objModelo.QualquerCoisaSemRetorno()
%>

Gostaria de mandar agradecimentos para Olavo Alexandrino por ter pesquisado estas informações uns anos atrás (classes em ASP) e para Leonardo Postachini e Mario Valentim por terem me ensinado um pouco mais de OO.

É isto pessoal. Bom estudo.

A vida....... é dura de mais para quem trabalha com TI

Olá pessoal, meu nome é Juliano Resende Diniz, trabalho como Administrador de Sistemas do provedor de Internet Terra Networks, bom feitas as apresentações vamos ao que interessa, meu primeiro post.
Hoje recebi um e-mail de colega da faculdade (grande Aurélio), com uma imagem abaixo que é bem interessante (e engraçada) sobre como é feita a negociação e a execução de um projeto qualquer de TI


Na imagem em questão trata-se de um projeto de software, acredito que muitos dos leitores já tenha visto esta imagem e que tenha dados risada e excluído a mensagem ou fechado o browser, mais eu em um momento de ociosidade no trabalho (que ultimamente tem sido muitos), parei e refleti sobre a imagem acabara de receber e cheguei a conclusão que trabalhar com TI e difícil não pela complexibilidade das arquiteturas ou das linguagens de programação mais sim, do fato de que trabalhar com pessoas e para pessoas que não tem a mínima ideia do querem.
Bom é isso pessoal, meu primeiro post em um blog espero que consiga publicar alguma coisa mais interessante nos próximos, bom fim de semana a todos.

At,

Juliano Resende

Padronização de Programação Para Linguagens Não Tipadas

Gostaria de começar este blog com um post do meu outro blog que eu acho um dos mais importantes documentos que já fiz na vida.

Este é um dos trabalhos que desenvolvi junto com meu amigo e ex-colega de trabalho Olavo Alexandrino que é um documento que visava padronizar o desenvolvimento de códigos-fonte da linguagem VBScript baseadas na tecnologia ASP. Porém, que posteriormente, foi modificado para que possa ser utilizado em uma gama maior de linguagens de programação não tipadas (ou fracamente tipadas) como PHP, VB Script, Java Script...

Eu tive que submeter este trabalho por quatro razões: A primeira é que este documento é baseado em pesquisas e muito tempo de estudo, além de ser baseado no conhecimento e experiências minhas e de Olavo e que estava se perdendo no esquecimento tanto por mim quanto por ele. A segunda é que eu ouvi rumores de pessoas que estão utilizando este documento como sendo de outras autorias. A terceira, é por que gostaria que outras pessoas possam utilizar este documento e altera-lo, incrementa-lo e difundi-lo pela comunidade de desenvolvimento. A quarta razão é que em grandes, médias e pequenas empresas estas tecnologias são utilizadas e não possuem um padrão de codificação (até onde eu sei) e quando possuem, normalmente, não são tão completos.

  1. Comentários de Código-Fonte

Os comentários de código fonte servem não só apenas para identificar as partes do código que fazem o que na hora de fazer a manutenção dos sistemas e sim para ajudar na compreensão do código até mesmo no momento em que os sistemas que ainda estão em desenvolvimento, independente de quem está programando, pois, já é de conhecimento de todos que quando se está desenvolvendo algum sistema, é muito fácil esquecer o que aquele ou este trecho do código faz exatamente.

    1. Regras de utilização de Tags de Comentários

No caso de comentários, normalmente iremos utilizar tags especificas de para facilitar a organização e por conseqüência a compreensão dos mesmos.

Seguindo algumas regras gerais dentro das linguagens:

  • Todas as tags de comentário devem ser escritas em sua forma minúscula.

  • Todas as tags devem conter exatamente o conteúdo referente à mesma

  • Todas as tags devem estar no seu lugar especificado aqui.

    1. Tags possíveis

Para facilitar a padronização do comentário de código, iremos definir algumas tags padrões para facilitar a criação dos comentários. Segue abaixo a lista dos itens que serão utilizados nos comentários dos itens.

  • Description

  • Access

  • Author

  • Date

  • Version

  • Package

  • Param

  • Return

  • Var

  • Example

  • Tutorial

Sendo assim, temos as possíveis tags que serão utilizadas durante o processo de desenvolvimento. Sendo que cada uma tem regras e utilizações especificas dentro dos códigos.


Tag


description

descrição

Tag que define a descrição do item.

sintaxe

@description caractere.

A tag description possui estes parâmetros.

Observação

N/A

access


descrição

Modificador de acesso do item.

sintaxe

@access caractere.

A tag access possui estes parâmetros.

Observação

N/A

author


descrição

Nome seguido do e-mail do autor da criação/alteração do item.

sintaxe

@author nome .

A tag author possui estes parâmetros.

Observação

N/A

date

descrição

Identifica a data que foi desenvolvido/alterado o item em questão.

sintaxe

@date data.

A tag date possui estes parâmetros.

Observação

N/A

version

descrição

Identifica a versão que foi desenvolvido/alterado o item em questão.

sintaxe

@date data.

A tag date possui estes parâmetros.

Observação

N/A

copyright

descrição

Nome do proprietário do código. Ex.: “MDS Tecnologia”

sintaxe

@copyright nome.

A tag copyright possui estes parâmetros.

Observação

N/A

package


descrição

Nome do package em que se encontra o código. Ex.: “br.com.mdstecnologia.nomesistema”

sintaxe

@package nome.

A tag package possui estes parâmetros.

Observação

N/A

param


descrição

Identifica o parâmetro que será enviado para um “bloco de comando” (método/função/procedimento).

Sintaxe 1

@param identificador nome [direção].

Sintaxe 2

@param identificador1 nome1 [direção1] descrição1.

@param identificador2 nome2 [direção2] descrição2.

A tag param possui estes parâmetros.

Observação

  1. O parâmetro “Identificador” deve ser o tipo da variável que será recebida, no bloco de comando.

  2. Caso exista mais de um parâmetro para o “bloco de comando” deve-se repetir a tag “param” e escrever uma linha para cada parâmetro passado.

return


descrição

Identifica o parâmetro que será enviado para um “bloco de comando” (método/função/procedimento).

sintaxe

@return identificador.

A tag return possui estes parâmetros.

Observação

N/A

var

descrição

Descrição da variável ou propriedade.

sintaxe

@var identificador nome.

A tag var possui estes parâmetros.

Observação

N/A

Example

descrição

Exemplo de chamada de “blocos de comando” ou de componentes.

sintaxe

@example caratere.

A tag example possui estes parâmetros.

Observação

N/A

Tutorial

Descrição

Contém uma URL indicando o caminho de um arquivo que contém o “help” ou “documentação” completa do uso do item o qual o comentário se refere, contendo inclusive duvidas freqüentes, curiosidades e possíveis erros que podem ocorrer com o uso do mesmo além de melhores formas de uso entre outros.

sintaxe

@tutorial URL.

A tag tutorial possui estes parâmetros.

Observação

N/A

    1. Miscelânea

      1. Sintaxe de Comentários

Os blocos de comentários para documentação devem ser iniciados pelos caracteres “/**” e finalizados com “*/” e cada linha do comentário deve conter o caractere “*” no inicio de cada linha sendo os mesmos seguidos de um espaço em branco para separar as tags do mesmo. Além de que, para facilitar a leitura do comentário, devem-se alinhar os valores das tags com as declarações das tags de comentário. Conforme o exemplo a seguir.

/**

* @description Esta classe representa uma coisa

* @author Nome <e-mail@mdstecnologia.com.br>

* @date 01/01/1901

* @package br.com.mdstecnologia.projeto

* @copyright MDS Tecnologia

*/

      1. Exemplos de Uso dos Comentários

Veja abaixo os exemplos de uso dos comentários

        1. Comentário de arquivos

Veja abaixo os exemplos de uso dos comentários em arquivos

/**

* @description

* @author

* @date

* @package

* @copyright

*/

        1. Comentário de classes

Veja abaixo os exemplos de uso dos comentários de classes

/**

* @description

* @author

* @date

* @package

* @copyright

*/

        1. Comentário de métodos

Veja abaixo os exemplos de uso dos comentários de métodos

/**

* @description

* @author

* @date

* @access

* @param

* @return

*/

        1. Comentário de propriedades

Veja abaixo os exemplos de uso dos comentários de propriedades

/**

* @description

* @var

*/

        1. Comentário de funções

Veja abaixo os exemplos de uso dos comentários de funções

/**

* @description

* @author

* @date

* @param

* @return

* @example

* @tutorial

*/

        1. Comentário de procedimentos

Veja abaixo os exemplos de uso dos comentários de procedimentos

/**

* @description

* @author

* @date

* @param

* @example

* @tutorial

*/

        1. Comentário de componentes

Veja abaixo os exemplos de uso dos comentários de componentes

/**

* @description

* @version

* @author

* @date

* @package

* @param

* @return

* @example

* @tutorial

*/

        1. Comentário de stored procedures

Veja abaixo os exemplos de uso dos comentários de stored procedures

/*

* @description

* @author

* @date

* @package

* @access

* @param

*/

  1. Regras de Nomenclatura

Este tópico vem a ajudar na indicação e facilitar a compreensão dos códigos desenvolvidos pela MDS. Pois visa padronizar o nome das variáveis dos sistemas desenvolvidos na mesma. Tendo em vista que várias pessoas podem trabalhar no desenvolvimento de um mesmo software e provavelmente as pessoas que farão as correções e evoluções dos sistemas nem sempre serão os mesmos que desenvolveram, é de extrema necessidade para compreensão de todos o que existe nos códigos desenvolvidos pela empresa.

    1. Nomenclatura de Constantes

As constantes são identificadores de memória que ao contrario das variáveis possuem valores que não podem ser alterados durante a execução dos sistemas. Ou seja, são CONSTANTES.

      1. Regras de nomenclatura de Constantes

Para identificá-las utilizaremos as seguintes regras:

  • O valor “CONS” no inicio dos nomes das constantes.

  • As letras que compõem o nome das constantes devem ser escritas totalmente em sua forma maiúscula.

  • Para separar as palavras que compõem o nome das constantes deveremos utilizar um “_” (underline).

  • As palavras que compõem o nome de uma constante devem ser escritas em sua forma completa, sem uso de siglas ou abreviações.

      1. Exemplos de nomenclatura de Constantes

Veja abaixo os exemplos de uso de constantes

        1. Sintaxe

<CONS>_<Nome(s) que identifica(m) a constante>

        1. Exemplo

CONS_CODIGO_SERVICO_ODONTOLOGIA

CONS_SEMANA

CONS_TOTAL_COLUNAS

    1. Nomenclatura de Variáveis

Veja abaixo como criar as variáveis dentro dos padrões adotados.

      1. Regras de nomenclatura de Variáveis

Para identificá-las utilizaremos as seguintes regras:

  • Os três primeiros caracteres serão identificadores do tipo de variável.

  • Os nomes das variáveis começarão com letras minúsculas (inclusive o identificador citado acima) e a partir da segunda palavra serão utilizados letras maiúsculas para a primeira letra e o restante da palavra em minúsculo. Com exceção é claro das siglas, que serão escritas todas em maiúsculas.

  • Não poderá ser utilizado underline na nomenclatura das variáveis.

  • As palavras que compõem o nome da variável devem ser escritas em sua forma completa e não em forma de siglas ou abreviações.

      1. Identificadores do tipo de variável

Para identificar o tipo da variável, utilizaremos identificadores de tipo de variável, ou seja, um identificador de três letras para cada tipo de variável. Como se trata de um documento para varias linguagens, será utilizado tipos mais abrangentes, conforme a tabela abaixo:

Prefixo

Tipo de Variável

Descrição

str

String

Cadeia de caracteres, sem limite de comprimento.

chr

Char

Um único caractere.

int

Integer

Número inteiro.

dbl

Double Precision

Número de ponto-flutuante.

bln

Boolean

Valor lógico que pode assumir true ou false

var

Variant

Pode assumir qualquer tipo de dados

arr

Array

Um vetor/matriz. Neste caso deverá haver um outro identificador que será o tipo de valor contido no vetor/matriz

obj

Object

Um objeto instanciado qualquer. Neste caso deverá haver um outro identificador que será do tipo do objeto instanciado.

        1. Regras de utilização do tipo de variável

Alguns identificadores de tipos de variáveis possuem algumas regras especiais, como citado na tabela acima. Veja abaixo algumas regras.

  1. Array - Caso esteja-se declarando um array, deve-se colocar alem do identificador de array (“arr”) no inicio do nome da variável, deve-se também colocar o identificador de três letras do tipo de valor existente na mesma. Como por exemplo: temos uma variável do tipo array que possui a idade de alguns clientes. Sendo a idade dos clientes valores inteiros, colocaremos o seguinte nome no array: arrIntIdade. Tendo o identificador Int logo após o identificador arr.

  2. Objeto - Seguindo a mesma linha de raciocínio deve-se aplicar a mesma regra para os objetos. Por exemplo, caso tenhamos que instanciar a classe ADODB, utilizaremos o identificador do objeto (“obj”) seguido do identificador da classe que o mesmo instanciou, este indicador pode ser uma sigla (não recomendado) ou o nome da classe que se está instanciando. Como por exemplo: objADODB. No objeto iremos encontrar uma particularidade, que seria a possibilidade de uma mesma classe ser instanciada várias vezes. Neste caso será necessário mais um identificador. Sendo este o correspondente ao valor em questão. Por exemplo: vamos supor que existe uma classe chamada “Combo” que tem por objetivo mostrar um combo em um formulário. Porém, este mesmo formulário possui um combo com valores dos nomes de pais e outro combo com valores de nomes de filhos. Neste caso teremos duas instancias da classe combo. Então utilizaremos a nomenclatura “objComboPai” para o combo do pai e “objComboFilho” para o combo que contem os nomes dos filhos.

      1. Exemplos de nomenclatura de Variáveis

Veja abaixo os exemplos de uso de variáveis

        1. Sintaxe

<IDENTIFICADOR(ES)><Nome(s) que identifica(m) a variável>

        1. Exemplo

Veja abaixo os exemplos de variáveis com as regras gerais aplicadas

intIdadeCliente

strNomeCliente

objCliente

Veja abaixo os exemplos de variáveis com as regras específicas aplicadas

arrIntIdadeCliente

arrStrNomeCliente

objClienteLoja

objClienteFornecedor

    1. Nomenclatura de Itens de Funções e Procedimentos

Veja abaixo como nomear as funções e procedimentos dentro dos padrões adotados.

      1. Regras de nomenclatura de Funções e Procedimentos

Para identificá-las utilizaremos as seguintes regras:

  • Os nomes das funções e procedimentos terão as palavras que a compõem letras maiúsculas na primeira letra e e a partir da segunda palavra serão utilizadas letras maiúsculas para a primeira letra e o restante da palavra em minúsculo, com exceção é claro das siglas, que serão escritas todas em maiúsculas.

      1. Exemplos de nomenclatura de Funções e Procedimentos

Veja abaixo os exemplos de nomenclatura de Funções e Procedimentos

        1. Sintaxe

Vide “sintaxe” de variáveis

        1. Exemplo

Vide “exemplo” de variáveis

    1. Nomenclatura de Itens de Conceitos de Objetos

Veja abaixo as regras dos itens que existem dentro do conceito de uso de objetos

      1. Nomenclatura de Classes

As classes seguirão o modelo de Orientação a Objeto para definição de regras de nomenclatura para as mesmas.

        1. Regras de nomenclatura de Classes

Para identificá-las utilizaremos as seguintes regras:

  • Primeira letra de cada palavra que a identifica deve ser colocada em maiúscula, inclusive a primeira letra.

  • As palavras serão escritas todas juntas, sem nenhum tipo de separador.

  • As palavras que compõem o nome da classe devem ser escritas em sua forma completa e não em forma de siglas ou abreviações.

        1. Exemplos de nomenclatura de Classes

Veja abaixo os exemplos de nomenclatura de Classes

          1. Sintaxe

<Nome(s) que identifica(m) a classe>

          1. Exemplo

Cliente

Banco

Combo

      1. Nomenclatura de Atributos

Os atributos seguirão o modelo de Orientação a Objeto para definição de regras de nomenclatura para os mesmos.

        1. Regras de nomenclatura de Atributos

Para identificá-los utilizaremos as seguintes regras:

  • Primeira letra de cada palavra que a identifica deve ser colocada em maiúscula, inclusive a primeira letra.

  • As palavras serão escritas todas juntas, sem nenhum tipo de separador.

  • As palavras que compõem o nome do atributo devem ser escritas em sua forma completa e não em forma de siglas ou abreviações.

        1. Exemplos de nomenclatura de Atributos

Veja abaixo os exemplos de nomenclatura de Atributos

          1. Sintaxe

<Nome(s) que identifica(m) o atributo>

          1. Exemplo

Cliente::Nome

Cliente::DataNascimento

Cliente::Profissao

      1. Nomenclatura de Propriedades

Os atributos seguirão o modelo de Orientação a Objeto para definição de regras de nomenclatura para os mesmos.

        1. Regras de nomenclatura de Propriedades

Para identificá-los utilizaremos exatamente as mesmas regras de nomenclatura de variáveis. Vide regra a cima.

        1. Exemplos de nomenclatura de Propriedades

Veja abaixo os exemplos de nomenclatura de Propriedades

          1. Sintaxe

Vide “sintaxe” de variáveis

          1. Exemplo

Vide “exemplo” de variáveis

        1. Regras de nomenclatura de Métodos

Para identificá-los utilizaremos exatamente as mesmas regras de nomenclatura de métodos. Vide regra a cima.

        1. Exemplos de nomenclatura de Métodos

Veja abaixo os exemplos de nomenclatura de Métodos

          1. Sintaxe

Vide “sintaxe” de variáveis

          1. Exemplo

Vide “exemplo” de variáveis

 

©2007 - 2010 Escovando Bytes | Template Blue by TNB