Your SlideShare is downloading. ×
打造真正的软件
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

打造真正的软件

444
views

Published on

Technical Track …

Technical Track
From: 赵喜鸿

Published in: Business, Technology

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
444
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
15
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Make Software Soft-- Learn from A Refactoring Case赵喜鸿
  • 2. Who am I?From Alcatel-LucentSoftware developerA fervent advocate of Agile methodologies11 years experience in software development and team managementNow, refactoring a legacy telecom equipment system.
  • 3. Why call it “Software”?
  • 4. Soft• yielding readily to touch or pressure; easily penetrated, divided, or changed in shape; not hard or stiff• Easily molded, cut, or worked.• Easy to influence or impose upon Easy to change
  • 5. Is Software Soft?
  • 6. Is Software Soft?http://www.codeproject.com/KB/books/SoftwareProjectSecrets1.aspx
  • 7. Is Software Soft?http://gtwebmarque.com/wikis/gtwm/index.php/Project_Failure
  • 8. “Reasons”and “Solutions”
  • 9. Contract
  • 10. Insufficient Upfront Design
  • 11. More Upfront Design
  • 12. Design Reality
  • 13. A Real Refactoring Case
  • 14. Understand Problem Domain
  • 15. Epon Management
  • 16. Run On NT Board On LT Board Is it soft?
  • 17. Make It Softer
  • 18. Update op state Save to databaseConfiguration Config to hardware Changed
  • 19. Observer Pattern
  • 20. Listener “state” Listener “persist”Configuration Listener Listener “HWW” “HWW” New Listener
  • 21. PonDataData- State Config Fault PM HWWBase
  • 22. PonDataData- State Config Fault PM HWWBase NtPonLine LtPonLine
  • 23. xxxDataData- State Config Fault PM HWWBase xxxLine Config State xxxData Data- Fault Base
  • 24. Now
  • 25. New Line Object Fault State xxxData PM Config Data- Base
  • 26. New Line Object Fault State xxxData PM Config Data- Base Open to change?
  • 27. config a line Context Retrieve PM PM Config Line Object Role
  • 28. Fault Handling Context Retrieve PM ContextRetrieve State ContextRetrieveLine Context ConfigLine Context
  • 29. DCI ArchitectureData What the system isContext The Context is the class (or its instance) whose code includes the roles for a given algorithm, scenario, or use case, as well as the code to map these roles into objects at run time and to enact the use case.Interaction The Interaction is "what the system does." The Interaction is implemented as Roles which are played by objects at run time http://www.artima.com/articles/dci_vision.html
  • 30. EponMgr Pon Ont Llid Uni Is It Soft? Service
  • 31. What is the essence of the problem?
  • 32. EponMgr Managed Object Pon Ont Llid Uni Service Relation
  • 33. ManagedObject ManagedObject Relation
  • 34. Box Board Line Service
  • 35. Domain ModelBox Board Line ServiceManagedObject ManagedObject
  • 36. SoftSoftware
  • 37. What Missed Domain Model Soft Bricks Software Refactoring Framework
  • 38. 道法自然Tao follows nature
  • 39. Summary
  • 40. The only thing constant is change
  • 41. Cope with Changes bymaking software soft
  • 42. Heart of making software soft is Discovering the “Tao”
  • 43. The way to discover “Tao” is refactoring
  • 44. “Tao” is the heart of making software SOFTPeople are the brain to find the heart
  • 45. Thank YouContact: xihong.zhao@gmail.com Weibo: http://weibo.com/zhaoxihong
  • 46. Questions?