Mon précédent article « Histoire de l'informatique. Quand les ordinateurs étaient gros ... »nous avons terminé à la fin des années 80, lorsque deux événements importants se sont produits. Tout d'abord, il y avait la POO et le langage objet C ++ . Et deuxièmement, les ordinateurs personnels sont apparus , ce qui a fondamentalement changé les tâches du développement informatique.
Et le fait ici n'est pas qu'il soit devenu possible de garder les ordinateurs à la maison et d'y effectuer des tâches de travail: éditer des textes, faire des calculs, créer des dessins. Le logiciel pour cela ne diffère pas fondamentalement de celui des gros ordinateurs - ils savaient comment le développer. La seule question concernait l'optimisation et l'adaptation pour des ressources limitées.
Le principal changement est que les ordinateurs personnels ont mis les ordinateurs à la disposition des petites entreprises. Nous avions besoin de systèmes pour automatiser les processus commerciaux, qui sont très différents selon les entreprises. Il est difficile de créer un système typique: à présent, de tels systèmes existent déjà, par exemple 1C, mais à l'époque ils n'existaient pas. La POO a aidé à résoudre ce problème. Cette partie de l'histoire du développement de l'informatique et les concepts qui sont alors apparus et sont encore utilisés, je le raconterai dans cet article.
L'émergence de la POO
, - - () .
. , 1960-. , : (1960), 1967 , , 1972 Smalltalk. , : , , Smaltalk , .
? . , . , , . (2010-) : Erlang, . Smaltalk . ++, , , .
, , . , . , 1979-1986 C++. , Objective-C (1982), , Eiffel (1985) design by contract, .
, , , , , , . , . , , , . , « », ++ .
: , , . , , . IT- , , - .
« » . , , , . , . , . -, – , , , . , , , . , – , C, «» .
, , 1976 « + = » . 1980- ++, , .
, , . ++ , , , - . , , , ++, , , . , , .
…
, C++ . — . , , .
, , . – SOLID. . SOLID , , . , -, ,
, - , . - , , - , . .
? , , .
, – . , , . , , , , , .
– , . , if
, else if
. switch
, , default
. , , , , junior- . – , .
: -
, - . . – , . , , .
-. 1990- . - . - , - : Object-oriented programming Object-oriented analysis and design.
UML (Unified Modelling Language), , , . . , , , . , :
– ?
– .
1990- Rational Software – , , . .
UML. , , – Object Management Group (OMG), .
. 1997 UML Distilled, UML , , .
UML : , . , . , , -, (1960-) ( ) ER-, .
-
. - , , . .
, , , . 90-95% – « ».
100 , 5-10 . 10000 , 500-1000, . 50 , . , , , -. - . . , SAP, , .
, , , . know-how, , . know-how , , . 1C , , , -, , -. – , . .
, 90- – . , . , , . – 64 , , : , , . , , 128 .
-
- , , -, . , , , , .
UML, , , . -, , , .
, - . – .
, . , . , -, UML . , , - .
. , , , , . , , – , – , . , , – . , – - , - , – . , . , , , , UML.
: ?
, . -, , . , 90-, - - , , , , . , , .
, , , -. , , , , , , , . . , – , , , . .
, . . - , , , , .
, , . , , .
, – . , , , . – . , .
, , , , , , , C++ . IT, , – - .
, , , IT, . , IT.
, , , , , , . , " ", "", " " .
— , ( ), , , .
, , , , — " " " " , - . , , , " ", "".
, SAP 1C, , , , . . – , 90-, , - .
« », . , , . , , , .
«Patterns of Enterprise Application Architecture» ( – ), . , – . , Record Set Transaction Script.
, , . , , , , . , , .
, , , , . , . .
? . 2010-, public web, NoSQL , . . , , PostgreSQL NoSQL , NoSQL , SQL-. , , .
, , , , , – . – ORM, Object Relational Mapper. 90- . , , , . -, , , . .
C# 2008 , . .
, , . , , . , , . , , , – , , . , , , .
, , : , , .
: ORM
, . 2000- . , - . - , , .
web-, enterprise- – , , , , web, -. .Net, , Delhi Java- .
, Oracle, PL/SQL . . , , . Oracle, , . PL/SQL, , . .
. . : , . : , linq, .
2003 , -. . , , , , .
Domain Driven Design
Domain Driven Design (DDD), . 2003, 2010 «- ». 2006 « DDD », , 2007. , , , DDD .
? -, . , , , , . : -, , -, . , (Ubiquitous Language), . , .
, , - , , , . , -, .
, , , , . , , . , , , . , inhouse-, , Agile- . , , . Agile , , . .
DDD . , , . : , - , , . , , , , , , .
, , .
.
, , DDD . . -, -, SAP, 1 - , DDD. , . . , -, , , , . , , . , , , , .
, , – (bounded context). , . , , , (context map).
, , . , — , , . . , «» , , . , , .
, , « ». , . DDD « - », . WIAD-2019 « — ».
DDD , , . 2011 AgileDays « — Agile-» Application Developers Days « . CUSTIS».
, , , . Rich Object , . , , . . DDD- , .
, . , , . - , DDD Rich Object. , , - , . , , . « », «DDD: » Software People-2013, .
Domain Driven Design , . WIAD-2020 «Domain-driven design: ». . , .
. IT public web, -, enterprise-. , .
, . . Java Script. , , . – .