
Seguramente cualquiera que se dedique a la programación recuerda cómo al principio del viaje cae sobre él un torrente de información sobre algoritmos, patrones y métodos de desarrollo. Él recuerda ese mismo sentimiento cuando, habiendo lidiado con una idea fresca o simplemente nueva para uno mismo, el sentimiento "bueno, ¡ahora viviremos!" Y también esa sensación de ligera desesperación - después de intentar aplicar todo esto en un proyecto real, con personas reales, con giros repentinos de lógica empresarial y constantes “muy urgentes”.
¿Cómo es posible que en un mundo en el que la mayoría de los proyectos encajen en el patrón de "entrada de datos, validación y guardado en la base de datos", tantos proyectos acaben en un lío? A pesar de que todos los desarrolladores están llenos de conocimiento sobre algoritmos, marcos y patrones, y los principios de SOLID en la entrevista rebotan en los dientes. Me atrevería a expresar en esta ocasión mi suposición sobre la causa, así como mi forma personal de abordarla.
Tesis
. , . : , , . , , , , ( ). , "" . , “” .
? , . , “” , .
, - , - , , . , . . , , UI. , “” , .. “” “”. , : “ ” “ ” ?
, : , “”, ? , “” - , , - .

1- .
, , : (), , ? - ? , RFC 5322, - , . " " - . , , " ?". , .. , , . , , - - . , “-”. , , , . , , , .
1- : () .
, , , , . , - - . , , .

2- . "" ""
, ? , : , , “”.
: , "" ()? . , - "" , . , " , - ", " ", , - .

3- .
2 . “ ?” UI, , . Console.Write()
textbox.Text
html-, .
. , , , “ ”. , , , -, , .
, . , , , , , . , . , , , .
: Win , , .

4 : , , , . - - “ ”.
, . , . , . , , , . , , , () - : “ ” ? , “” , . , , , . - , , , .
, . Windows .
. - SMS . - - .
, “ , ”, - - . , - .
, Client
, , IO - ClientGet(int id)
, .
, IO . ClientGet
Client. ClientVerySpecificStatsInfo
, IO . , , , , . , , , , , . , . - , , .
, - ( “”) “” , " !".
, . , - - , . , , - . , , , . . , - , - , , , , .
, , . , , MVP . - , - , , - “”. , UserPresenter
, UserPrecursor
.
“ ” . , .. .. , - , “ ” - , , , .

: , UI. UI , “” , UI. ( ) . .
. “ ” . “ ” . - . , “” . , , , , .

, () - . , - . , Order (), Client User. Order Line (), . , Line Order . , , , . .
Logic.Order
Logic.Orders.Line
, Line Order - , Line Orders.
Logic.Order
Logic.Line
, Line , , .
, “” , “”, “”, . , , . . , , Zip, City, Address - , . , , .
:
/Geo
Address
City
Zip
/Orders
Line
Order // "Orders"
, , : , .
, . , , , - , . , , . -.
, . - . UML, , , , - , … … . , - Zip, Address, City - - , - - GeoObject .
, , - . “ - ” - . - .Subitems
. - .Subtypes
, .
.Def
, , , - , . .Def
(Definitions). , . UML, , .
/Geo
Address
City
Zip
/Orders
/.Def
OrderType
OrderBase
Line
Order
.Spec
, 1-1 . 1-1 . , , , .. - .
, . UML .
.Spec
- ( specification - , ), .
, User UserLikes, , / User’ .
“ ” . “” , - .
. , UserStats (“”) . , , , , . , , .. , . Stats, . (, UserStats , Stats .)
:
/Users
/.Spec
UserLikes
UserStats // 1-
Stats //
User
. , , UML, , UML. , , , - .
.Calc
, , . . , . , , .. . “” , - , 0 1 . PDF , Adobe Acrobat Reader, . .Calc
( calculators).
, . , , , , . , “ - ? ?”
- , - . . .
.Models
.Models
, -, , , . , Team, ID
Name
. , , , , ”” . 2- , User , .
- , . - , , , .
, . , presenter.Submit(input)
clientValidator.Validate(input)
, “-” , .
“” , UI “”.

, , , , , , .. . - . . , , Ms Excel. - UI, , . , , - Html, Pdf, Rtf, Json, Xls .

, , .
.Tech
, , . , , - - . , , , , . “ ” , , , .
, . , , “” .. .Dev
. IO , .
, , - ? Money? ? , , Options? - , Context - MoneyContext, OptionsContext ..
MVC, MVP, MVVM
MVC, MVP MVVM , .. ( ) . , , , “” - . , , . - .
, , - . . , . , “ !”, . “ ”, “ ”, “ ”. , - .
, “” - “”. - , - - ( , ), .

, , “ ?”. . , “” . , - .
, , , - . , , , - , - . , - , "" . , .
p.s. C !