Your SlideShare is downloading. ×

Inheriting Code

669
views

Published on

It is inevitable that at some point in your career as a developer you will inherit code developed by others. Trying to understand code developed by someone else can often lead to stress and …

It is inevitable that at some point in your career as a developer you will inherit code developed by others. Trying to understand code developed by someone else can often lead to stress and frustration, but it doesn't have to. This talk will provide you with tools and techniques to help understand and begin working with code from other developers quickly and easily.

Published in: Technology, Business

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
669
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
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. Inheriting Code Anthony Eden Tuesday, June 8, 2010
  • 2. Who are you? Tuesday, June 8, 2010
  • 3. Explorer Tuesday, June 8, 2010 You’ll need to be willing to travel down uncharted paths and create a map to find your way out.
  • 4. Historian Tuesday, June 8, 2010 You’ll need to understand what got the code here.
  • 5. Forensic Analyst Tuesday, June 8, 2010 You’ll need to understand the motives by looking at the crime scene.
  • 6. Psychic Tuesday, June 8, 2010 You’ll need to read minds.
  • 7. Sadist Tuesday, June 8, 2010 You’ll need to be able to hurt the code.
  • 8. Masochist Tuesday, June 8, 2010 You’ll need to be able to withstand the pain that the code causes you.
  • 9. Prepare Tuesday, June 8, 2010 Adjust your mode of thinking.
  • 10. Assume nothing Tuesday, June 8, 2010
  • 11. You are not smarter, just different Tuesday, June 8, 2010 Put yourself in the mind of the author. Keep an open mind about implementations that are different from how you might do it. Understand why they may have written code in the way they did.
  • 12. Learn Tuesday, June 8, 2010
  • 13. Read Tuesday, June 8, 2010 Read the code Read the documentation
  • 14. Cause and Effect Tuesday, June 8, 2010 What were the business needs that caused this code to be written? What other factors were present when the code was written?
  • 15. Find the dragons Tuesday, June 8, 2010 What code was written to solve an immediate problem, but never refactored? What code was written to old APIs? What code was written in different styles by different developers?
  • 16. Act Tuesday, June 8, 2010
  • 17. Resolve Dependencies Tuesday, June 8, 2010
  • 18. Run the test suite Tuesday, June 8, 2010
  • 19. Write tests where there are none Tuesday, June 8, 2010 Top down approach with Cucumber. Bottom up approach with RSpec, Shoulda or plain Test::Unit. If tests are already written then start Regardless you’ll need both.
  • 20. Simplify complex code Tuesday, June 8, 2010 When a test is written you can refactor it.
  • 21. Reduce Tuesday, June 8, 2010 Reduce the amount of code. Remove unused methods and classes. Version control is your friend.
  • 22. Have a rollback strategy Tuesday, June 8, 2010 You will misunderstand the purpose of some of the code. Be able to rollback easily. Version control is essential. Make small changes.
  • 23. Make small changes Tuesday, June 8, 2010 Small changes are easier to fix. Small changes are easier to undo.
  • 24. Compartmentalize Tuesday, June 8, 2010 Break down monolithic code into smaller chunks. Break down large features into smaller ones.
  • 25. Protect the data Tuesday, June 8, 2010 Along with code you’ll be inheriting data.
  • 26. Write for maintainability Tuesday, June 8, 2010 New features are always tested.
  • 27. Follow conventions Tuesday, June 8, 2010 Rails conventions are your friend.
  • 28. Deploy Early, Deploy Often Tuesday, June 8, 2010
  • 29. Build a better legacy Tuesday, June 8, 2010
  • 30. Share knowledge Tuesday, June 8, 2010 Pairing helps tremendously here Perform code reviews
  • 31. http://www.flickr.com/photos/natedreger/4272271989/ http://www.flickr.com/photos/atelier_tee/212176187/ http://www.flickr.com/photos/h-k-d/3617751660/ http://www.flickr.com/photos/vogelium/2623770180/ http://www.flickr.com/photos/9619972@N08/2636808004/ http://www.flickr.com/photos/emeraldrose/3587025487/ http://www.flickr.com/photos/mcgraths/3248483447/ http://www.flickr.com/photos/inhalingsounds/4444522392/ http://www.flickr.com/photos/rossinabossio/289756071/ http://www.flickr.com/photos/wili/2628869994/ http://www.flickr.com/photos/fofurasfelinas/2549402702/ http://www.flickr.com/photos/ironrodart/4154904299/ http://www.flickr.com/photos/myrmician/228790898/ http://www.flickr.com/photos/29487767@N02/3644730871/ http://www.flickr.com/photos/teacherafael/2038442136/ http://www.flickr.com/photos/gamene/4015192611/ http://www.flickr.com/photos/shewatchedthesky/2835193235/ http://www.flickr.com/photos/myreflex/180524429/ http://www.flickr.com/photos/tzofia/202684786/ http://www.flickr.com/photos/capedcrusader/3713232485/ http://www.flickr.com/photos/jaxxon/93296381/ http://www.flickr.com/photos/jbird/19650368/ http://www.flickr.com/photos/joeharper/3872936498/ http://www.flickr.com/photos/bassclarinetist/4448830860/ http://www.flickr.com/photos/winterofdiscontent/3301816514/ http://www.flickr.com/photos/74274915@N00/3554610230/ http://www.flickr.com/photos/tal_axl/4297212753/ http://www.flickr.com/photos/essjay/2397379457/ Tuesday, June 8, 2010

×