I’ve done partitioned programming (using various layers for different kinds of functionality) for ages.
The first time I can remember of official terms for it, I already used patterns like that for a couple of years.
Back then the parts were from Object-Oriented Design: Peter Coad, Edward Yourdon, back in a time when each part – back then not called common layer – was called “component”:
- PDC – Promblem Domain Component
- HIC– Human Interaction Component
- TMC– Task Management Component
- DMC– Data Management Component
Back in the 90s, lots of people knew those by heart, nowadays, few people do. That’s how history goes (:
For the people with a long history of Pascal or Delphi among us: Peter Coad even worked at Borland for a short period right before moving his work out of the software development field.
I never was deeply into SmallTalk, otherwise back then I would have known an abbreviation that started much easier and lasted much longer MVC (Model–View–Controller).
The two big things I learned while developing software (for over 25 years now), is that you need to structure your stuff, they way those structures or common layers are called will change over time.
Over the course of time lots of those abbreviations have come, some of gone, others lasted. But the need for structure continued.
The funny thing is that in my world, quite a few work comes in through recruiters. I sift the good and bad ones on how they select me for jobs: are they abbreviation frenzy or do they actually read my curriculum vitae in depth?
For the former, here is a list of software architecture patterns I have used or am still using (:
- MVC – Model–View–Controller.
- MVA – Model–view–adapter.
- MVP – Model–View–Presenter.
- MVVM – Model View ViewModel.
- Presenter First.
- Multitier architecture.
- Naked objects.
Note though it is not about those abbreviations, but on the awareness that you should structure your code, use common sense and have a common vocabulary within your group of developers.
It reminds me of project methodologies. I know Scrum, but never liked playing rugby. Given that most methodologies are based on best practices within an organisation, I always tell people I’m a fan of JBF2. It is a Dutch inside Prince2 joke as variation on JBF. So it actually is not a methodology at all, but the urge to following your intuition and use common sense. Which you should always do, even if you follow a formal methodology.
–jeroen
PS: some great Delphi MVVM info.
Filed under: Delphi, Development, Pascal, Software Development, Turbo Pascal