Как жить в согласии с SOLID?

Embed Size (px)

Citation preview

addconf presentation template

SOLID? HWdTech, LLChwdtech.ru

11- .NET 31 2015dotnetconf.ru

1

, .

, , .

, -

#

, 5 . 5 .

5 , - 100 !

#

? , - , , .

-, , , , -, , , .

, , , .

#

,

#

1969 . An Axiomatic Basis for Computer Programming1971 . Procedures and Parameters: An Axiomatic Approach

1980 . 1990 . 2000 . ,

#

, if while

, goto .

#

1. 2. 3. 4. , .5. .

#

#

: ?

#

: ?

#

: ?

#

: ?

#

?

Planning pokerAgile

#

?

SOLID

(2014 ) , , !

#

#

SOLID, , , switchenum new

#

! ! .

Herb Sutter, 2005 The Free Lunch Is Over A Fundamental Turn Toward Concurrency in Software The bad news is that, at least in the short term, the growth will come mostly in directions that do not take most current applications along for their customary free ride.

#

#

ORM

#

JSON ( NoSQL ). . 6 (!) . ( ). , . ( ) . , Toyota, , , , - General Motors Chevrolet, Opel , . , .

{ : , : [ { : 01.09.2015, : 2000 }, { : 01.10.2015, : 2000 }

]}

#

interface IObject{ object getValue(string name); void setValue(string name, object val);}

class Field{ public Field(string name) {} public abstract T this[IObject o] { get; set; }} IObject

interface MyObj{ int A { get; } string B { get; set; }}

#

IObject

?

(. 10 DotNetConf)

, ,

#

Carl Hewitt, Peter Bishop, Richard Steiger

A Universal Modular ACTOR Formalism for Artificial Intelligence 1973

#

? ,

#

vs . . . , . . - , . , 1 , , .

#

, , , Erlang, Scala ..? Java Framework.Erlang ( , Erlang ., , . 18,19 ~20 !) Scala ( Philipp Haler, Martin Odersky, 2006 Event-Based Programming Without Inversion Control) , , ( )

#

Node. MessageBus. , .

#

, , , ( ) ( ) , ., , . , , , , (, -)

#

, . . , . . .

#

() , . - , , , , .

#

, , ( , , , , , ) , , , , ,

#

. , . , , , , ! , .

#

JSON ,

{ actors: [{ name: emailSender, smtp: , }, { name: dailyReport, } messagePaths: [{ name: newAd, }], enpoints: []}

#

( ) , , , , , API

{ actors: [{ name: emailSender, smtp: , }, { name: dailyReport, } messagePaths: [{ name: newAd, }], enpoints: []}

#

. . - , , .

#

, , , .

#

, , -.

#

, (-) , .

#

. ?

#

, - .

#

5 4,5 400 1000 ! 15 3! : , , 64, . , 50/34/8, 3/5, , , .

#

100 ElasticSearch, MongoDb .. 200 , . 7-46 ( < 1 )

#

, , HTML5 CSS3- Mac, Window, Linux ( 40 )

#

HWdTech, [email protected]/etyumentcev

#