最新のソフトウェア開発のためにどのような原則を提案しますか?
Extreme Tuesday Clubの前回の仮想会議で、SOLIDの原則が時代遅れであるかどうかについて話し合いました。少し前に私はこのトピックについて冗談を言ったので、ミートアップの主催者の1人が、私がSOLIDに同意しないかどうか、彼を何に置き換えるかを尋ねました。たまたまこれについてはしばらく考えていたので、頭字語CUPIDが出てきた5つの原則を提示することにしました。
この記事はこれらの原則に関するものではありません。これが私の次の投稿になります。この記事は、なぜそれらが必要だと思うのかについてです。全体像を伝え、SOLIDを購入したことがない理由を説明したいと思います。では、それについて話しましょう。
すべてのSOLIDアイテムが間違っているのはなぜですか
PubConfは、NDC会議の一種のアフターパーティーとして考案されました。名前が示すように、場所はパブで行われます。いくつかのスピーカーがIgniteスタイルで演奏します— 20スライド、スライドあたり15秒、自動フォロー—そして聴衆は場所に応じて吠え、拍手、突き、そして感謝します。勝者は何かを手に入れ、誰もが素晴らしい時間を過ごします。
数年前、私はロンドンで開催されたPubConfイベントで講演するよう招待されました。私は限られた話の挑戦が好きです。私はロバート・マーチンのSOLIDの原則について長い間考えていましたが、真面目な顔を保ちながら、これらの原則のそれぞれに反論するのは面白そうでした。また、各アイテムの代替案を提案したいと思いました。
: , , , , , - 5 . 15 , 45 . - 20 !
, , . -, , ( , ). -, : . " ""?", , .
SpeakerDeck , , , , .
, , . , 15 , , 15 , , 15 . ? !
(SRP)
SRP , . , " ". " " ( “Pointlessly Vague Principle” - . ). " "? DataProcessor ETL (extract-transform-load - - - ) ? , , , , , .
, " ". , - , . , - , - . , /, /, , , .
: " ?". , , , . , , , , .
, "" . , , , . , . , - , - (SRP). - , .
- (OCP)
, , , , , .
, :
: , C++ 1990 . .
: , IDE ( Smalltalk), .
, : - , ( , , , RCS SCCS ( - . )), . , . , . CVS, , , , . CVS, (changeset-based version control.)
, , , : , - ! , , , , , , . , .
" ". (Cruft Accretion Principle) (́(. accrētiō «, » accrēscere «») — . - . )
- "", , , . - . , ! , , , , , .
(LSP)
, , LSP (""), , "" "", " " , 1980 , " (is-a)" " (has-a)" .
, , : "-- (act-like-a)", "-- (sometimes-be-used-as)" "---- (pass-off-as-a-if-you-squint)"; , , , , , . , , " ", .
(ISP)
- . - , , , . , , , God object, Xerox. Job
. , , , , " " . :
,
Job
.
, , ,
Job
, , .
Job
, . (, .)
, , . .
: " , ", " ".
, (God-). ( ) ( , ). , , " , !".
: , " " (Stable Door Principle). (, - . , - . ) , , , .
, . - , , Working Effectively With Legacy Code.
(DIP)
DIP . , , , .
. , , , . , main
.
, , J2EE, OSGi, Spring " ", - . J2EE , - EJB, servlets, web domains, remote service locations, - .
, , , DI , . , " DI " , , .
, , , . - , - , .
« , »
SOLID, , - , , , , . . ? , SOLID , , , , « , ».
, , 30 , - ? ? , .