人工分解

img



在我从事开发工作的15年中,我发现关于人性的错误信念是良好分解的主要敌人随着时间的流逝,了解它们并尝试不陷入陷阱,您可以制定一些技巧来进行良好的分解这发生在我身上,我赶紧分享这些知识。



关键概念

(feature) — -, . , -. .



, . , .



— , . « » : , .



五年多来,我一直在FunBox担任后端开发人员。在公司,我们相信优质的产品是强大的工程文化的产物,我们致力于在为移动运营商开发解决方案时实践这一原则。它具有堆栈和过程的自身特征,但是也有适用于任何主题领域的通用方面。其中之一是分解方法由于工作基于产品的本质和工程文化,我得以获得我不禁分享的经验和见解。



浏览文章:







关于人性的错误信念



:



  1. , .
  2. , , .
  3. , ().
  4. ( ).
  5. , ().
  6. ().


, , . , .



. , . , .



.

, . « ».



, , . . , , . . , . , .



. , , . — , , . . — () , .



. , . , , , .



, , .



, , «» «» , , , .





« »



4 :



, .

« », 1955 . , . , .



« . » , , . , , .







:



  • , ;
  • #NoEstimates, .




« » , . :





, , , , . 1840- 1960- . , . , , . , . .



, . ( Thinking Fast And Slow). . . , , , . .



, , . , , . , , , .



, . , . , , , , , .



NoEstimates



#NoEstimates ( ) , , .



AgileDays'14. , , :



  1. .
  2. , - . (CI) .
  3. , , .


, , :



  1. , , .
  2. .
  3. , , .


, , , .



#NoEstimates . , . , , .



, , #NoEstimates, , .







#NoEstimates .

, , , , . .





:



  1. . , .
  2. 3—5 . , .


Loose Coupling / High Cohesion ( / ), :



  • Loose Coupling: .
  • High Cohesion: , .


, , API . , , , , .



. API decomposition smell ( code smell), .





, . .



:



  1. ?
  2. - , ?
  3. ? - , ?


:



  1. , , , ?
  2. ( 3—5 )?
  3. ?


, . . . . .





3—5 — . , , . Ruby on Rails.



, - , , .



, c « ». , :



  1. , , .
  2. , , , ( № 3) , .


, . , , . . , , , , , . - , , . , , .



. , , — . , , , . , , . , - . , .



, , , , - .



. , . .





.



,



, ( Ruby on Rails) CRUD .

, .



. , , . - , . , , , .



Ruby on Rails

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 .



, , , .







:



  1. « . ».
  2. « -».
  3. «- (DDD). ».
  4. « . ».
  5. « . ».


:



  1. .
  2. « . » « . ».
  3. « . ».
  4. Thinking Fast And Slow.
  5. « », , . .


:



  1. « ». AgileDays'14, , , #NoEstimates. .
  2. « ». . , , , , , .



All Articles