Em meus 15 anos como desenvolvedor, descobri que as falsas crenças sobre a natureza humana são os principais inimigos da boa decomposição . Conhecendo-os e procurando não cair na armadilha deles, com o tempo, você pode formular dicas para criar uma boa decomposição . Isso aconteceu comigo, e apresso-me em compartilhar esse conhecimento.
(feature) — -, . , -. .
— , . , .
— , . « » : , .
Há mais de 5 anos trabalho como desenvolvedor backend na FunBox. Na empresa, acreditamos que bons produtos são o resultado de uma forte cultura de engenharia e nos esforçamos para praticar esse princípio no desenvolvimento de soluções para operadoras móveis. Ele tem suas próprias características de pilha e processos, mas também há aspectos universais que são aplicáveis em qualquer domínio. Um deles é a abordagem de decomposição . Graças à natureza do trabalho baseada no produto e à cultura da engenharia, pude adquirir experiência e percepções que não posso deixar de compartilhar.
Navegação pelo artigo:
- Falsas crenças sobre a natureza humana
- Lei de Parkinson
- Um continuum de estilos de decomposição
- Decomposição humana
- Estratégias de decomposição
- Do precedente à descrição do trabalho
- Fontes
Falsas crenças sobre a natureza humana
:
- , .
- , , .
- , ().
- ( ).
- , ().
- ().
, , . , .
. , . , .
, . « ».
, , . . , , . . , . , .
. , , . — , , . . — () , .
. , . , , , .
, , .
, , «» «» , , , .
« »
4 :
, .
« », 1955 . , . , .
« . » , , . , , .
:
- , ;
- #NoEstimates, .
« » , . :
- ( № 2), , .
- ( № 6), , , , , .
- , . , , , . 10—15 , . , , ( № 5).
, , , , . 1840- 1960- . , . , , . , . .
, . ( Thinking Fast And Slow). . . , , , . .
, , . , , . , , , .
, . , . , , , , , .
NoEstimates
#NoEstimates ( ) , , .
AgileDays'14. , , :
- .
- , - . (CI) .
- , , .
, , :
- , , .
- .
- , , .
, , , .
#NoEstimates . , . , , .
, , #NoEstimates, , .
#NoEstimates .
, , , , . .
:
- . , .
- 3—5 . , .
Loose Coupling / High Cohesion ( / ), :
- Loose Coupling: .
- High Cohesion: , .
, , API . , , , , .
. API decomposition smell ( code smell), .
, . .
:
- ?
- - , ?
- ? - , ?
:
- , , , ?
- ( 3—5 )?
- ?
, . . . . .
3—5 — . , , . Ruby on Rails.
, - , , .
, c « ». , :
- , , .
- , , , ( № 3) , .
, . , , . . , , , , , . - , , . , , .
. , , — . , , , . , , . , - . , .
, , , , - .
. , . .
.
,
, ( Ruby on Rails) CRUD .
, .
— . , , . - , . , , , .
Ruby on Rails «--». has_and_belongs_to_many
HABTM- .
, , HABTM- .
, . , , HABTM-, , . . , UI, . « », .
, UI, , , , , — , .
, , , .
, , . . — , — , . , .
:
- .
- , .
- .
- , , .
- , .
- .
, 5 , , . , , «»: .
. , . API , , . API , . , .
. , , , . , .
, 10% , : , .
. , , , . , , . . API , , .
, .
, .
1.
«» , , .
, , .
3—5 , , , , . , .
2.
, . , , , . № 5, . , , , .
, — , . , , . № 6, - . , , , .
— , . « » .
, .
, . , — .
, . .
, . , , . .
, , , .
, , , , . . . , , , . 6 .
3.
, — . , - . , — - - .
. , .
: . , .
, . , , . , , .
4. ,
, . .
, , , , . , , , .
, , . — W.I.P. (work in progress). , .
5.
, , .
, , . , - , - .
. , , .
. .
6.
- .
, -, .
15 «» «- (DDD). ». (Generic Subdomains) (Cohesive Mechanisms), (Core Domain), .
, , , .
-, . , , . .
« -».
, .
, , (accidental complexity) - . , .
, - , . . omakase-, Ruby On Rails .
, . . , , . . , , .
, .
, , . , . .
7.
. , . . , .
« », , 1:3. , . — .
, , .
— , .
, . , . , . , .
, , .
, . — .
- , , . . . , , .
« . » 1999 . , 1975 , « -».
11 « » , :
— .
, . .
. , : , . -. . , . , . .
FunBox .
, , , .
:
- « . ».
- « -».
- «- (DDD). ».
- « . ».
- « . ».
:
- .
- « . » « . ».
- « . ».
- Thinking Fast And Slow.
- « », , . .
:
- « ». AgileDays'14, , , #NoEstimates. .
- « ». . , , , , , .