Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Como você escreve seu código ASP, seja ele VB ou JS?
Existe uma maneira correta, melhor dizendo, produtiva para escrevê-lo, de modo que altere a velocidade e/ou precisão de sua escrita e/ou execução?
Sei que pode parecer uma discussão vaga, vazia ou até mesmo redundante relacionada ao Fórum ASP do iMasters, sendo que aqui participam desde os membros iniciantes aos moderadores avançados, e sabemos que cada um tem o seu modo, muitas das vezes bem peculiares, para escrever os códigos.
Devemos observar alguns pontos interessantes como:
1 - Como você escreve os comandos Sql?
Capitalize: Insert, Update, Delete, Distinct, From, Where, Order By, Inner Join, And, Or, Like
Ucase: INSERT, UPDATE, DELETE, DISTINCT, FROM, WHERE, ORDER BY, INNER JOIN, AND, OR, LIKE
Lcase: insert, update, delete, distinct, from, where, order by, inner join, and, or, like
2 - Como você escreve as condições?
Capitalize: End, End if, Else, Then, And, Or
Ucase: END, END IF, ELSE, THEN, AND, OR
Lcase: end, end if, else, then, and, or
3 - Como você escreve as variáveis?
Capitalize: VariavelX, VariavelY
Ucase: VARIAVELYX, VARIAVELY
Lcase: variavelx, variavely
4 - Você escreve seu código todo justificado à esquerda?
<%
If meu_codigo = condicao Then
Response.Write("conteúdo 1")
Response.Write("Conteúdo 2")
End If
%>
5 - Você escreve seu código em blocos tabulados?
<%
If meu_codigo = condicao Then
Response.Write("conteúdo 1")
Response.Write("Conteúdo 2")
End If
%>
Não sou profundo conhecedor sobre o assunto, por isso gostaria de contar com a participação de todos, pois acredito que tudo que vem para acrescentar de útil ao conhecimento é válido.
Então, como você escreve seu código? Existe uma forma correta ou mais produtiva?
Creio que todos entenderam o objetivo do tópico, caso contrário terei toda boa vontade para me expressar melhor.
Você está à vontade para postar a maneira que você escreve seu código.
Comente também quais os benefícios da sua escrita.
Colocarei meus Exemplos:
Uma simples conexão e inserção escrita em dois modos, Outline e Inline.
Me corrijam se preciso.
Outline:
db.asp
<%
Sub AbreConexao()
strCon = "DBQ=" caminho_do_seu_banco.mdb ";DRIVER={Microsoft Access Driver (*.mdb)};"
Set Conexao = Server.CreateObject("ADODB.Connection")
Conexao.Open strCon
End Sub
Sub FechaConexao()
Conexao.Close
Set Conexao = Nothing
End Sub
Sub ExecuteSQL(xstrSQL)
Conexao.Execute(xstrSQL)
End Sub
%>
inserir.asp
<%
Call AbreConexao()
titulo = Request.Form("titulo")
conteudo = Request.Form("conteudo")
data = Request.Form("data")
autor = Request.Form("autor")
publicado = Request.Form("publicado")
strSQL = "SELECT id "&_
"FROM tbl_noticias "&_
"WHERE titulo = '" & titulo & "';"
Set Rs = Conexao.Execute(strSQL)
Call ExecuteSQL("INSERT INTO tbl_noticias"&_
"( "&_
" titulo, "&_
" conteudo, "&_
" data, "&_
" autor, "&_
" publicado, "&_
") "&_
"VALUES("&_
" '" & titulo & "', "&_
" '" & conteudo & "', "&_
" '" & data & "', "&_
" '" & autor & "', "&_
" " & publicado & "); "&_
" ")
Call FechaConexao()
%>
---------------------------------------------------------------
InLine:
db.asp
<%
strCon = "DBQ=" caminho_do_seu_banco.mdb ";DRIVER={Microsoft Access Driver (*.mdb)};"
Set Conexao = Server.CreateObject("ADODB.Connection")
Conexao.Open strCon
End Sub
Sub FechaConexao()
Conexao.Close
Set Conexao = Nothing
End Sub
Sub ExecuteSQL(xstrSQL)
Conexao.Execute(xstrSQL)
End Sub
%>
inserir.asp
<%
Sub AbreConexao()
titulo = Request.Form("titulo")
conteudo = Request.Form("conteudo")
data = Request.Form("data")
autor = Request.Form("autor")
publicado = Request.Form("publicado")
strSQL = "SELECT id FROM tbl_noticias WHERE titulo = '" & titulo & "';"
Set Rs = Conexao.Execute(strSQL)
Call ExecuteSQL("INSERT INTO tbl_noticias (titulo, conteudo, data, autor, publicado) VALUES('" & titulo & "', '" & conteudo & "', '" & datag & "', '" & autor & "', " & publicado &
");")
Call FechaConexao()
%>
Existe uma logica para tabular? pois eu até hoje não sei como tabular... meus code sempre saem a esquerda justamente por eu não saber como arrumar isso.
alguém ae tem uma dica para eu saber como tabular? existe alguma regra?
[]'s
não uso lógica, uso o DW para isso, hehehe!
quando uso o NotePad ++ uso o velho TAB, de um nó a outro!
>
escrevo tabulados e inline!!!
esse outline seu foi brutal, hehe!
É, você entendeu. Eu quis dizer on line ou em linhas, como preferir.
Mas você que é um cara que saca bem de códigos em asp, poderia nos passar umas dicas de como fazer.
Ou você não presta essa assessoria em fóruns?
Abraço, particpe!
Essa questão de "formatação" não vai dar velocidade ao código, mas vai contribuir para organização, o que dará velocidade na manutenção do código.
Normalmente utilizo Capitalize e tabulado.
Sobre outline e inline, prefiro inline. Mas nem sempre é bom. Às vezes é interessante quebrar uma linha para melhor visualização do código. Supondo que seu INSERT tenha 20 campos. São 20 campos + 20 variáveis. Imagina isso em uma linha só e você tentando descobrir em qual campo tem que colocar ou retirar uma aspa?
é dúvida, estamos ai rapa!! e entendi o lance do em linhas, hehe, não foi piada, se liga a dica que aprendi aqui mesmo!!
hoje em dia temos computadores que trabalham com grandes memórias e grandes processamentos, faça um código que você entenda e principalmente comentado, para que os outros possam também entender, não adianta você criar um código monstruoso que ninguém consiga adaptar.
se usar tabulado, é bom, fica bem visível, e bem organizado, o programador que ver entende logo: exemplo:
if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
this._mouseStarted = (this._mouseStart(event) !== false);
if (!this._mouseStarted) {
event.preventDefault();
return true;
}
}if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {this._mouseStarted = (this._mouseStart(event) !== false);
if (!this._mouseStarted) {event.preventDefault();return true;}
}
deixando as coisas outline, qualquer programador, seja ele inline ou não, vai entender, agora uma inline, só aqueles programadores inline vão entender mais rápido, o outline vai ter que dar "ENTER" em seu codigo para entender, e o que você ganha com isso? Crítica, pois seu eu pegar um código seu inline irei te xingar todo, hehe!!
Use o tabulado, é bom!!
Cada caso é um caso. Eu não faria um If inline assim. rs
Inline utilizo apenas para SQL.
Patrique, para tabular você tem que manter o código dentro do inicio e fim das instruções. Exemplo criando uma função:
Function teste() 'inicio
teste = "oi"
End Function 'fim
Veja que teste está tabulado dentro da função, por está dentro dela.
Agora vamos criar um If dentro da função:
Function teste(variavel) 'inicio
If (variavel = True) Then 'inicio
teste = "oi"
Else 'como faz parte do primeiro If, é como se fosse o inicio dele, por isso segue a mesma tabulação
teste = "Tchau"
End If 'fim
End Function' fim
Criando um While dentro do If.
Function teste(variavel) 'inicio
Dim contador
If (variavel = True) Then 'inicio
While (contador < 10) 'inicio
variavel = variavel & contador
Wend 'fim
teste = variavel
Else
teste = "Tchau"
End If 'fim
End Function ' fim
Exemplo da mesma função escrita inline:
Function teste(variavel) : Dim contador : If (variavel = True) Then : While (contador < 10) : variavel = variavel & contador : Wend : teste = variavel : Else : teste = "Tchau" : End If : End Function
Imagina a manutenção disso...
é o que estava citando, esse tipo de inline não pode acontecer!
Realmente este inline ae é sinistro... mais eu faço tabulado mais sem os espaçamentos tipo
<%
If funcao = "0" then
response.write "patrique gostoso"
else
response.write "patrique é d+"
end if
%>
Ta vendo... eu não faço assim
<%
If funcao = "0" then
response.write "patrique gostoso"
else
response.write "patrique é d+"
end if
%>
vixiii... tenho que aprende muito ainda...
e ae, galera, bom eu sempre uso comandos Sql
Ucase,condições em Lcase,as variáveis,Lcase, com
um padrão de nomenclaturas, ou seja, sempre seguido de varstrnome_da_var
isso seguindo , abaixo:
Variáveis Texto: strNomeDaVariavel
Variáveis Numéricas: intNomeDaVariavel
Variáveis Data: dteNomeDaVariavel
Variáveis Flag: flgNomeDaVariavel
Dentre outras padronizações de nomenclatura de arquivos e diretórios.Variáveis sempre devem ser definidas com o menor escopo possível. Variáveis globais podem criar estado enormously complexo computadores e fazer a lógica de um aplicativo extremamente difícil de entender. As variáveis globais também tornar a reutilização e manutenção de seu codificar muito mais difícil.
existe um padrão de nomenclaturas oferecida pela Microsoft que está descrita no MSDN (Microsoft Developer Network).
Tipo de Variável Prefíxo Exemplo
Boolean bln blnFound
Byte byt bytRasterData
Date (Time) dtm dtmStart
Double dbl dblTolerance
Error err errOrderNum
Integer int intQuantity
Long lng lngDistance
Object obj objCurrent
Single sng sngAverage
String str strFirstName
TABELA VÁLIDA PARA VARIÁVEIS
Tipo de Objeto Prefíxo Exemplo
3D Panel pnl pnlGroup
Animated button ani aniMailBox
Check box chk chkReadOnly
Combobox,dropdown list box cbo cboEnglish
Command button cmd cmdExit
Common dialog dlg dlgFileOpen
Frame fra fraLanguage
Horizontal scroll bar hsb hsbVolume
Image img imgbotao
Label lbl lblHelpMessage
Line lin linVertical
List Box lst lstPolicyCodes
Spin spn spnPages
Text box txt txtLastName
Vertical scroll bar vsb vsbRate
Slider sld sldScale
TABELA VÁLIDA PARA OBJETOS
sempre escrevo meu código em blocos tabulados,Aninhamento bloco padrão, TAB-based, recuos devem ser duas a quatro espaços.Mais de quatro espaços é desnecessários e pode causar instruções para ser ocultos ou acidentalmente truncados. Menos de dois espaços não suficientemente aninhamento lógica apresentação. Na Microsoft Knowledge Base, usamos um três-recuar espaço. Use o diálogo Environment Options para definir a largura guia usar como padrão.
<%
If meu_codigo = condicao Then
Response.Write("conteúdo 1")
Response.Write("Conteúdo 2")
End If
%>
e uso sempre InLine, e lembrando, sempre bem comentado.
como tb tem objeto convenção de nomeação para objetos de banco de dados,Convenções de nomenclatura de menu,nomeação Variável de rotina,Nomeação constantes
obviamente, quando você está na faculdade eles tem auxiliam a fazer padrões de linguagem!
boa a citação do Xan, antigamente eu tbm padronizava as coisas, mais era ruim para trabalhar em conjunto!
Isso aí xanburzum, essa é a participação que eu esperava neste tópico, bem interessante para nossa comunidade.
Valeu, um abraço!
tambem sempre buscar identar para facilitar a leitura do codigo
escrevo tabulados e inline!!!
esse outline seu foi brutal, hehe!