我以前的文章“ IT历史。当计算机很大时…… ”我们在1980年代末结束,当时发生了两次重大事件。首先,有OOP和C ++对象语言。其次,出现了个人计算机,这从根本上改变了IT开发面临的任务。
而且这里的重点并不是将计算机放在家里并在计算机上执行工作任务:编辑文本,执行计算,创建图形。用于此目的的软件与用于大型计算机的软件根本没有区别-他们知道如何开发它。唯一的问题是对有限资源的优化和适应。
主要的变化是个人计算机使小型公司可以使用计算机。我们需要用于使业务流程自动化的系统,这在不同公司中非常不同。制作一个典型的系统很困难:现在这样的系统已经存在,例如1C,但那时还不存在。OOP帮助解决了这个问题。我将在本文中介绍这部分IT发展历史以及随后出现并仍在使用的概念。
OOP的出现
, - - () .
. , 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. , , . – .