Writing good software is not easy. Clear methods, solid classes, well designed services, and successful applications have something in common: they were hard to write. The opposite is also true complex software is easy to write. This is known as spaghetti code. In this talk well uncover some tips and techniques to improve your software quality and help you identify and articulate when its worth investing time into simplicity so that you can grow your applications into something incredible!
18. "Our goal is to try to bring a calm
and simplicity to what are
incredibly complex problems so that
you're not aware really of the
solution, you're not aware of how
hard the problem was that was
eventually solved."
-Jonathan Ive
19. E = mc^2
quod erat demonstrandum
E Pluribus Unum
a^2 + b^2 = c^2
circumference / diameter = pi
20. Whatever is predicated universally
for a given class is predicated for
anything within that class.
42. Naming Tips
The more local the smaller the
variable name
Consistent idioms
Magic numbers are not logical -
proprietary knowledge that's not
transferrable
43. Reusability
Abstract
Useful
Named Appropriately
57. "We choose to go to the moon. We choose
to go to the moon in this decade and do
the other things, not because they are
easy, but because they are hard"
-John F. Kennedy, September 12, 1962
59. Resources:
http://www.infoq.com/presentations/Simple-Made-Easy
Rich Hickey - Author of Clojure
http://www.carlopescio.com/2010/11/notes-on-software-design-chapter-12.html
Carlo Pescio - Entanglement
http://www.carlopescio.com/2011/04/your-coding-conventions-are-hurting-you.html
Carlos Pescio - Naming
http://www.telegraph.co.uk/technology/apple/9283706/Jonathan-Ive-interview-simplicity-isnt-simple.html
Jonathan Ive - Simplicity isn't Simple
Books:
Elements of Logic - Richard Whately (1826)
The Practice of Programming - Brian Kernighan, Rob Pike
Refactoring - Martin Fowler
60. Comments for CodeFaire 2012:
https://joind.in/6720
Jim Siegienski:
jim.siegienski@gmail.com
@JimSiegienski
http://www.linkedin.com/in/jimsiegienski
http://www.slideshare.net/jimsiegienski