According to my view point, the massive expansion of the software industry is forcing developers to use already implemented libraries, services, and frameworks to develop software within ever shorter periods of time. New developers are trained to use (I would say more often) already developed software components to complete the development quicker. They just plug in an existing library and some how manage to achieve the requirements. But the sad part of the story is, they never get the training to define, design the architecture for, and implement such components. As a number of years pass by, these developers become leads and software architects. Their titles change, but the old legacy of not understanding, of not having any architectural experience, continues, creating a vacuum of good architects. The bottom line is that only a small percentage of developers know how to design a truly object oriented system. The solution to this problem is getting harder every day as the aggressive nature of the software industry does not support an easy adjustment to existing processes, and also the related online teaching materials are either complex, or less practical, or sometimes even wrong. Most of them use impractical, irrelevant examples of shapes, animals, and many other physical world entities to teach the concepts of software architecture. There are only very few good business-oriented design references. Unfortunately, I myself am no exception and am a result of this very same system. I got the same education that all of you did, and also referred to the same resource set you all read.
Coming back to the initial point, I noticed that there is a knowledge gap, increasing every day, between architects who know how to architect a system properly and others who do not. The ones who know, know it right. But the ones who do not know, know nothing. Just like the world’s wealth distribution, it is an unbalanced distribution of knowledge.
- 4.1. What is Software Architecture?
- 4.2. Why Architecture is important?
- 4.3. What is OOP?
- 4.4. What is an Object?
- 4.5. What is a Class?
- 4.6. How to identify and design a Class?
- 4.7. What is Encapsulation (or information hiding)?
- 4.8. What is Association?
- 4.9. What is the difference between Association, Aggregation and Composition?
- 4.10. What is Abstraction and Generalization?
- 4.11. What is an Abstract class?
- 4.12. What is an Interface?
- 4.13. What is the difference between a Class and an Interface?
- 4.14. What is the difference between an Interface and an Abstract class?
- 4.15. What are Implicit and Explicit interface implementations?
- 4.16. What is Inheritance?
- 4.17. What is Polymorphism?
- 4.18. What is Method Overloading?
- 4.19. What is Operator overloading?
- 4.20. What is Method Overriding?
- 4.21. What is a Use Case?
- 4.22. What is a Class Diagram?
- 4.23. What is a Package Diagram?
- 4.24. What is a Sequence Diagram?
- 4.25. What is two-tier architecture?
- 4.26. What is three-tier architecture?
- 4.27. What is MVC architecture?
- 4.28. What is SOA?
- 4.29. What is the Data Access Layer?
- 4.30. What is the Business Logic Layer?
- 4.31. What is Gang of Four (GoF) Design Patterns?
- 4.32. What is the difference between Abstract Factory and Builder design patterns?
C’est bien, je vois le mur devant moi.
C’est l’architecture de systèmes, l’algorithmie que je dois fouiller.
Si je comprends ça, je peux peut être plus faire ce que je veux.
Je traîne ça depuis longtemps, maintenant.
Il y a déjà des petits trous, mais ces interstices sont comme des chimères pour moi,
Elles me chantent des trucs à l’oreille, mais je n’ai pas encore le bagage qui me permet de jouer avec.
Il est aussi possible qu’une fois cela résolu, ça perde tout son charme.
On gagne du vocabulaire avec la technique, mais les mots doivent pouvoir danser,
on doit pouvoir manier ça avec aisance, avant de pouvoir faire des poèmes.
Dépasser l’outil, ne plus y penser, c’est plus rapide avec un burin.
Il s’agit de ciseler finement, ou de brutalité, mais c’est ce qu’on est, ce qu’on fait, qui nous importe.
J’aime bien les maquettes d’architectes, mais souvent moins leur réalisation.