Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Working With Other People's Code

Working With Other People's Code

4d6be90af74894fd132fb06dacec04d7?s=128

Samuel E. Giddins

August 29, 2014
Tweet

More Decks by Samuel E. Giddins

Other Decks in Programming

Transcript

  1. Make It Yours Working With Other People's Code For The

    First Time Samuel E. Giddins
  2. My Story • First app: November 2012 — Clickr •

    First job: March 2013 — Slader • First OSS contribution: May 2013 — RestKit • Now: Tumblr + CocoaPods
  3. Day One • Ask questions • Technical • Business •

    Explore • Fix something
  4. It's not about the orientation or onboarding

  5. The First Bugfix This will be the smallest and most

    insignificant commit you will ever make to the project.
  6. It will also lead the way to all the other

    commits. Don't be scared. Don't be reverant. Show 'em who's boss.
  7. The First Bugfix • Defined problem • Easily evaluated goal

    • User-facing
  8. Geometry Book Always goes to same page Pages with letters

    can't be searched for
  9. Made search case-insensitive if ([aPage.name isEqualToString:aPageNumber]) { if ([[aPage.name lowercaseString]

    isEqualToString:[aPageNumber lowercaseString]]) {
  10. Stopped assuming that the last page had the highest intVal

    NSInteger maxIndex = [[pages[pages.count -1] name] intValue]; NSInteger maxIndex = NSIntegerMax;
  11. The First Feature

  12. • Easy to see • Little code • Big impact

  13. To Refactor or Not To Refactor That is the wrong

    question
  14. • Project organization • Coding style • Pods

  15. Make it perfect Make it work, then make it pretty

  16. Be modular It's always good Lets you be you

  17. Don't assume There's always a story

  18. Be compassionate

  19. Learn from the code (Especially if you think it's bad)

  20. • Bugs • Improvements • Code niceties • Features

  21. Figure out what's in your way

  22. Get it out of your way* *Only if it's worth

    it
  23. The most important single aspect of software development is to

    be clear about what you are trying to build. — Bjarne Stroustrup
  24. We have to stop optimizing for programmers and start optimizing

    for users. — Jeff Atwood
  25. There are tools to help • AppCode • ClangFormat •

    CocoaPods • lldb • Reveal • XCTest (seriously) • The Internet
  26. Take ownership

  27. By shipping, it becomes yours

  28. Own Your App

  29. Go Get 'Em

  30. Samuel E. Giddins @segiddins segiddins.me github.com/segiddins