[quote=rodrigoy]
O problema é que as literaturas dão exemplos de implementação e não regras de implementação. Tomar os exemplos como regras é uma rigidez conceitual arriscada. Você mesmo concorda que não há CERTO ou ERRADO, eu particularmente não gosto quando dizem “não deve tocar”, “nunca deve depender”, “não é correto”. Algumas pessoas podem errar um padrão por desconhecer, outras podem tomar decisões fugindo da literatura baseadas em risco e benefício. [/quote]
Talvez não haja o certo, mas com certeza ha o errado. Desse ponto de vista, o certo é não fazer errado.
Em outras palavras: existem best pratices(melhores práticas) e bad pratices (más práticas). O certo é seguir as melhores práticas e abandonar/não seguir as más práticas. Acho que isso é passivelmente aceitável.
Agora atenda ao nome “melhores práticas”. “prática” aqui, não opoe a teoria, mas significa apenas “experiencia empirica”. Ou seja, de tanto trabalhar com a coisa, as pessoas já descobrir formas mais eficientes de trabalhar com elas ( e também as formas menos eficientes). Isto, acho, também é obvio.
O que tlv não seja tão obvio - tlv nasça a ideia de que ha um certa prepotência nas afimações - é que as melhores práticas podem ser deduzidas de principios primeiros, fundamentais, da OO e de outras áres relacionadas a desenvolvimento ( pro exemplo, melhores práticas de construção de UI não vêm de OO, vêm de disciplinas como a ergonomia e em ultima análise da teoria das cores e da arte).
Deste ponto de vista os principios fundamentais ( como o Principio de Separação de Responsabilidade) são a “melhor teoria” de onde pode ser derivada a melhor prática e a pior prática. Deste ponto de vista sim existe o correto e o errado e são uma única coisa : o nivel de obediencia aos principios fundamentais.
Quanto a pessoa não conhece os principios fundamentais ou não vê como eles se relacionam com outras coisas ( padrões , por exemplo) ela não entende que a autoridade de uma melhor prática advêm de um pensamento, de um principio, e pensa -erradamente- que se trata de uma mera convenção; que as pessoas dicidiram fazer da forma X e fazer da forma X é melhor porque é o que a maioria aceita. Ora, isso não é verdade. A verdade é que se faz da forma X porque a forma X deriva de principios fundamentais. E não se faz da forma Y porque Y é uma violação aos principios fundamentais.
O conhecimento empirico é muito bom, mas é pior que o conhecimento teorico que lhe dá origem. Se uma pessoa tentar decorar todos os principios práticos ela será um bom desenvolvedor se os respeitar; mas se ela souber de onde eles derivam ela não terá que os decorar e poderá derivá-los sempre que necessário e conforme a circunstancia do ambiente onde os necessita.
É esta adapatabilidade que a teoria tem a produzir resultados ligeiramente dirernetes conforme o ambiente que o conhecimento empirico não tem.
Conhecer os principios e derivar as práticas é ciencia. Conhecer as práticas e ingorar os principios é superstição.
Sim existe o certo e sim existe o errado. O errado é não fazer o certo, e o certo é seguir os principios.
Aceite esta permissa básica sobra discutir a imutabilidade dos principios.
Os principios em si são imutáveis. o SoC sempre será o SoC. Mas o conjunto de principios aceites como “matriz primária” podem variar com o tempo e os costumes. Antigamente não se pensava em Objetos. Funções e rotinas eram o que havia de melhor.
Este conjunto de principios que aceitamos como “o conjunto básico” forma aquilo a que se chama o paradigma.
Portanto, paradigmas mudam, mas dentro de um paradigma é possivel estabelecer o que é certo e errado. quando o paradigma mudar, tlv uma acção que era certa vire errada e uma que era errada seja aceite como certa, mas será em outro paradigma.
A literatura simplesmente corre atrás das alterações de paradimga e da documentação das práticas ( boas e más) e da sua relação com os principios básicos. Contudo este é sempre um trabalho em andamento (work in progresss) e nunca pode ser tomada como a palavra final. Nunca.
A literatura serve para nos guiar, não para nos prender.