fv_2007
Agile innovative developer with deep insight into all shapes of lightweight technologies such as ROA, REST and Ruby. Absolute “early adopter” in Web 2.0 technologies, platforms and Framework. Large professional network and fervent speeches at the conference level on architecture, strategy, design patterns, restful services, object-oriented thinking and modeling languages. Special interest in language constructs based on a deep knowledge of programming languages such as Smalltalk, Erlang, Java, Clojure, Scala, Ruby ... read more
View Frank Vilhelmsen's profile on LinkedIn Recommend Me

Overengineered Software September 07, 2008 10:52 4 months ago

Problemet med design pattern, best practices, og paradigmer er overforbrug af et enkelt princip.

Uanset hvad du overvejer kan overforbrug af DRY føre til overengineered software i form af lag og klasser, overforbrug af Separation Of Concerns føre til class explotion, overforbrug af jar arkiver føre til vedligeholdes helved.

  1. Du begynder at bruge udtryk som “potentielt”, “i fremtiden”, eller “skalerbarhed”.
  2. Du tilbringer mere tid tænker på “indkapsling”, “abstraktion”, og “afkobling”, end det faktiske problem.
  3. Du tror kvaliteten af softwaren bliver bedre ved at øge mængde af frameworks, biblioteker og programmeringssprog.
  4. Du er i stand til at erstatte hvert enkelt koncept, klasse og lag. Men kunden har det ikke som krav.
  5. Du forstår ikke koden og bliver nødt til at købe flere produkter og konsulenter for at forstå det.
  6. Du hader monolitiske strukturer så alt kan konfigurtioneres, udskiftes, mens det køre. Hvis det bliver for komplekst, gå til punkt 5.
  7. Du begynder at gennemføre en generator til at håndtere kompleksitet.
  8. Din konfigurations fil bliver større end din kode.
  9. Din brugergrænseflade er så flydende at kun domæne eksperter forstår koden.

Sund fornuft er balancen mellem begreber og paradigmer på en løsning. Meget urealistisk i den virkelige verden.


By Frank Vilhelmsen - 2 tags: architecture job - Add comment