Executando verificação de segurança...
3

Eu considero DRY o princípio mais importante de todos, de um jeito ou de outro, até mesmo em arquiteturas complexas ele precisa ser seguido ou facilitado. Até em DDD, microsserviços, NoSQL, precisa de algum DRY para funcionar bem, e justamente por ser difícil de seguí-lo em ambientes assim, mas não impossível, ele acaba não sendo seguido. O preço será pago, ninguém perceberá, ficarão todos felizes e o caos estará lá presente disfarçado.

A maioria das pessoas não entende o DRY e vai muito além do código. Veja mais https://pt.stackoverflow.com/q/120931/101. Não é sobre repetição, ainda que concretamente seja fácil perceber assim.

KISS e YAGNI são ótimos, tão bons que todo mundo os prega, quase ninguém o faz. Sempre existe a desculpa de que vai precisar daquilo, que é o mais simples que dá para fazer, mesmo sendo mentira. E nem estou falando dos casos que isso seja verdade, o problema é que isso é mais raro. Não vou listar aqui mas um dia farei em algum lugar que a esmagadora maioria das pessoas prega algo, em geração abstrações, camadas, técnicas que adicionam algo para facilitar a manutenção que nunca trará benefício algum, mesmo depois de ter pago caro para facilitar algo que na prática não se muda, ou deveria ter feito de um jeito que não precisaria mudar. E pior, é muito comum a pessoa não fazer cosias que vão complicar muito mudanças que a pessoa não previu. Tudo tem um contexto e é difícil decidir quando colocar algo para ajudar o futuro, nenhum ser humano é bom em futurologia, mesmo os experientes. Só que alguns (quase todos hoje em dia) cometem erros crassos, como abstrair o banco de dado porque pode ser que um dia vai trocar. não vai e se trocar a abstração não vai ajudar como ela achava, e pior, a trocar provavelmente só foi necessária porque a abstração estava prejudicando.

POLS eu acho que desvia um pouco, tem até outros princípios mais importantes, alguns mais específicos, mas ele é bom, claro, e talvez não tenha ficado claro para todos que é mais sobre o que você faz na solução e não tanto a preocupação com o usuário, que obviamente é bom que fique menos surpreso também (no sentido negativo). Mais uma vez, falar é fácil, fazer é difícil. Inclusive porque depende de contexto, e aí pode ser até que violá-lo pode ser bom. Existe uma escola que praga que deve ir até o limite para qualquer idiota não se surpreenda ou entenda o que está acontecendo, mas tem quem prega que você deve observar seu público, e o programador competente é que deveria ser o público na maioria dos casos.

CoC é muito interessante sim, mas novamente, é difícil de achar a dosagem correta para não engessar muito, não criar mais dificuldades, ambiguidades. Eu tenho a impressão que o uso de frameworks ou algo assim, não é o centro do que o princípio prega, mas vou estudar mais a fundo para ter isso mais sólido e um dia poder responder isso melhor, tem casos que pode ser pensado assim colateralmente, mas não vou me comprometer sem profunda reflexão. Eu ainda acho que é sobre o que você faz e não o que você usa. E não importa a escala, até porque se só vale para projetos de grande escala, como eses são uma fração mínima do que se realiza, então ele seria um princípio pouco importante. Também não acho que convenção de nomenclatura esteja relacionado a isto, até porque não tem possibilidade de configuração.

Object Calisthenics

Este é especial, não só porque foi colocado separado, como bônus, talvez até por entender que isto não é um princípio. Ainda vou falar muito dele em outras ocasiões porque ele é um símbolo.

Não estou dizendo que eles não têm dicas, práticas interessantes de usar em certos contextos, que não possam pontualmente se confundir com algum princípio. Mas princípio é algo mais sério, amplo, que vem de uma base muito sólida. Que fique claro, alguns deles devem ser usados sim, ou em algum raro contexto ou até em muitos. Mas tem alguns que quase não deve ser usado, pelo menos não do jeito que ele prega, ele não explica corretamente. Na verdade, eu consigo contradizer todos eles, sejam por completo de forma simples, seja pontual ou contextualmente, talvez forçando um pouco em algum caso. Não o farei aqui, já fi em alguns lugares e faria com maior aprofundamento. A falta de estudo sobre a computação faz as pessoas acreditarem nessas cosias, impede a pessoa analisar e ver como tem furos nisso e tem gente muito mais séria propondo quase que o contrário.

Mas a crítica maior é colocar esses 9 itens juntos e dar um nome esdrúxulo disso como se fosse algo sério. Isso tem uma seriedade semelhante ao do TIOBE (crítica aqui) e tem uma divulgação crescente, como aconteceu com o ranking acéfalo, como se fosse algo importante e bem pensado.

É incrível como algo feito p or alguém que queria clicks em seu blog criou algo que se tornou viral e crível por muitas pessoas. É praticamente um hoax. E forte, a maioria sequer desapega disso e insiste que é algo de valor (não estou falando que o valor dele é zero, mas poderia olhando ele como um todo, dá para tirar notas específicas, e tem um valor se ele for usado para debater o assunto, para aprender de fato como cada item é).

Notou que eles não têm muita relação? Foi só uma lista dessas que as pessoas fazem seguindo o manual de como fazer conteúdo viral na internet, que um dos primeiros ensinamentos é criar uma lista com um número que pareça que foi bem pensado.

Sabe outra crítica que se pode fazer que deveria ser percebida até mais pelos que gostam dessa lista? Ela é muito fraca, ela deixa de lado outros itens muito mais importantes, mas que se fossem usados ficaria feio, pouco atrativo e cansativo para quem só quer um receita de bolo simples e boa, afinal listar dezenas ou centenas de itens do que fazer em seu código não se tornará popular, que era o único objeto do autor original, que até onde eu sei, nunca respondeu às críticas, ou resolveu escrever algo maior defendendo, fundamentando, dando fontes porque ele escolheu fazer essa lista. Acredito que ele deve ter adotado a linha de pensamento muito em voga hoje em dia que é "não vou dar palco para os críticos, tenho fãs sobrando para dar o que preciso sem precisar do compromisso com a corretude e realidade". Até o SOLID que usou técnica semelhante de divulgação, mais um pouco mais de sentido e utilidade, mas também só republicou o que já existia, outro problema desse calibullshit.

Então aproveite para quem viu pela primeira vez ou está repassando, use a lista para estudar melhor a computação, não para seguir as "diquinhas de internet".

Pode ajudar: https://www.tabnews.com.br/maniero/faq-do-programador-perdidao.

S2


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui no perfil também).

Carregando publicação patrocinada...