Jump to content

If's longos


passarito
 Share

Recommended Posts

Boas,

Dei-me conta de uma situação algo estranha... Não gosto de If's longos! Tudo o que seja para cima de 50-100 linhas já me começo a perguntar se aquilo tem de ser mesmo assim!

- Repeat's e While's tudo bem;

- For's não sei mas acho que torço o nariz;

- Case's estão na classe dos if's ou ainda menos linhas!

Por acaso esta sensação até me bateu com ASP, mas o principio é o mesmo para pascal, delphi ou qulquer outra linguagem de programação!

Como ASP não há forum de ASP Puro / VBScript e as opções que há não funcionam como aqui, comem voçês com a pastilha(desabafo)! 😄 :D 😄

Será que estou a ficar paranoico, bebi de mais ontem à noite, é um sinal do gajo lá de cima a dizer que o meu prazo de validade está acabar ou por outro lado esta implicancia tem alguma razão de ser?

Comentem lá sff!

Link to comment
Share on other sites

Deixa lá, também não gosto deles...

Não é por nenhuma razão técnica, apenas são mais difíceis de ler.

Muitas vezes prefiro criar um procedimento, mesmo que só vá ser usado uma vez, mas facilita a leitura:

if coiso
  then fazIsto
  else fazAquilo;

Se houver variáveis ao barulho, que esse código deva usar, crio os procedimentos dentro do procedimento ou função que o vai chamar, usando as variáveis do principal como variáveis globais do outro.

  • Vote 1

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Link to comment
Share on other sites

Também não gosto desse tipo de código. O problema é que a maioria dos programadores iniciados (presumo que estamos a falar desses) tem alguma aversão a utilizar funções/procedimentos. Com alguma insistência nossa lá vão conseguindo separar o código em bocados lógicos e reutilizáveis.

Mas não é suficiente criar funções de modo a que sejam reutilizáveis. É preciso explicar que as funções e procedimentos são unidades de abstracção que devem ser utilizadas mesmo quando só queremos dar um nome simples a um conjunto de operações complexas. Os compiladores são inteligentes o suficiente para compilar tudo inline se isso se justificar.

Um grave problema (que me parece especialmente notório nos programadores jovens de Pascal) é a forma como pensam que um programa que compile é automaticamente correcto. Ninguém quer saber se é legível ou se está conceptualmente bem organizado -- é tudo secundário. O que interessa é atirar para lá com código e ver se cola. Enfim.

  • Vote 2
Link to comment
Share on other sites

Isso nota-se também na aversão à indentação.

Se compila, para quê perder tempo com essa "estupidez" de indentação? Não serve para nada!

Vê-se logo aí quem é que pode vir a ser bom programador, ou quem é que só lá anda para cumprir curriculo.

Salvo alguma excepção, um gajo que não veja os benefícios da indentação logo de inicio, nunca chegará longe na programação, porque ele próprio não vai entender o que anda a fazer!

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Link to comment
Share on other sites

Se houver variáveis ao barulho, que esse código deva usar, crio os procedimentos dentro do procedimento ou função que o vai chamar, usando as variáveis do principal como variáveis globais do outro.

Também costumo usar essa técnica dos procedimentos dentro dos procedimentos e procedimentos por causa das variaveis, mas como disse isto aconteceu-me em ASP / VBScript e isto não aceita esta técnica! Vou cortar os pulsos!

Também não gosto desse tipo de código. O problema é que a maioria dos programadores iniciados (presumo que estamos a falar desses) tem alguma aversão a utilizar funções/procedimentos. Com alguma insistência nossa lá vão conseguindo separar o código em bocados lógicos e reutilizáveis.

Não estava a falar dos outros, estava a falar de mim! Não sou um programador de elite, mas também não sou tão básico!

Não tenho problemas em criar muitos procedimentos!

Salvo alguma excepção, um gajo que não veja os benefícios da indentação logo de inicio, nunca chegará longe na programação, porque ele próprio não vai entender o que anda a fazer!

Às vezes não é só do aluno. cabe ao professor mostrar-lhe essas vantagens. Não estou a falar de todos os professores, mas que há alguns, há!

Edited by passarito
  • Vote 1
Link to comment
Share on other sites

Isso é verdade, também vai muito do professor.

Mas um bom aluno com um mau professor, pode ainda assim aprender.

Já um mau aluno com um bom professor, só por milagre lá vai.

De ASP é naquela... Nunca vi uma única linha de código daquilo. Não tenho ideia de como ajudar aí! 😉

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Link to comment
Share on other sites

Não estava a falar dos outros, estava a falar de mim! Não sou um programador de elite, mas também não sou tão básico!

Não tenho problemas em criar muitos procedimentos!

Logicamente, pensei que estavas a falar de código de terceiros, e então falei de problemas que costumo ver no código de programadores mais novos.

Link to comment
Share on other sites

Eu já fiz if's longos, entre outras estruturas, mas isso era quando era muito jovem na programação e ainda não usava muitos procedimentos (mas, ao contrário de muitos aprendizes, eu usava! 😄 ), ou então quando hoje em dia preciso de fazer um teste rápido e não estou com cabeça para fazer "código bonito" - preciso de saber se X funciona, ou de fazer um processamento de dados rápido com o qual sei fazer melhor em Pascal que em Python. No final não me interessa pois descarto o código.

Fora isso, eu evito sempre que possível mega-estruturas. A sua leitura torna-se incrivelmente difícil, mesmo que devidamente comentado, e não é nada estético. Tal como o @nunopicado, eu uso métodos encadeados sempre que se justifica. É uma maravilha que o Pascal nos oferece que não faz sentido não usar. Além disso, há situações em que determinado processo que fazemos dentro de um estrutura é, afinal, potencialmente útil em mais situações - "bota" com ele numa unit 😛

ASP.NET é da família do C# e do VB.NET. VB é uma prima do BASIC, VB.NET é uma prima afastada, e ASP.NET e C# são primos em terceiro grau, no qual o C# tem como progenitor o C. Conclusão: é uma família muito alegre.

O problema é que, dadas as características das linguagens de onde vêm, esta família não suporta uma parafernália de coisas que nós, pascalianos, consideramos básicas. Entre elas estão os métodos encadeados.

@passarito, o que sentes é muito normal. Aliás, segundo vi, todos nós aqui sentimos a mesma aversão a mega-estruturas. Pessoalmente deixo as mega-estruturas para engenheiros de arranha-céus ou barcos cargueiros de dimensões colossais. Em programação eu prefiro algum minimalismo sempre que possível e sempre que aplicável. 🙂

Edited by thoga31

Knowledge is free!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.