About
fv_2007
Agile innovative developer with deep insight into lots of platforms, technologies and protocols. Absolute “early adopter” in Web 2.0 technologies and more. Large professional network and eagerly talking about architecture, strategy, design patterns, restful ressources, object-oriented thinking and modeling languages such as PML. Special interest in programminglanguages constructs, knowledge on languages like Smalltalk, Erlang, Java, Clojure, Scala, Ruby... read more
Comments
Language

Overengineered Software September 07, 2008 01:52 over 3 years 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 konfigureres, 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