Going the Extra Mile

9,237 views

Published on

Go the Extra Mile in developing your next big web app.

DRY, KISS, Agile are your friends.

Go out and build something awesome...

Published in: Technology
0 Comments
24 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
9,237
On SlideShare
0
From Embeds
0
Number of Embeds
204
Actions
Shares
0
Downloads
550
Comments
0
Likes
24
Embeds 0
No embeds

No notes for slide

Going the Extra Mile

  1. .............................................................................................................. Going the Extra Mile in building Beautiful & Scalable Applications.............................................................................................................. 1
  2. Internet Addict for 11+ Years... Karthik Kastury 24x7 Internet Geek | Unlucky in Cards B.E. Information Science Engineer / Hacker / Blogger / Apple fanboi and evil minded. *Pun Intended*................................................................................................................................ Blog http://karthik.kastury.in/ Email hello@karthik.kastury.in Twitter @KarthikDot................................................................................................................................ 2
  3. .............................................................................................................. #ExtraMileNitte ........................................................................................................... 3
  4. .............................................................................................................. Ready to Dive in?.............................................................................................................. 4
  5. Extra Mile in Going the building Beautiful & Scalable Applications.............................................................................................................. What? > Why? > How?.............................................................................................................. Conclusion.............................................................................................................. 5
  6. .............................................................................................................. WHAT?.............................................................................................................. 6
  7. .............................................................................................................. What we do today ‣ Traditional Development Tools like .NET or JAVA with their IDE’s. ‣ Development in teams can be tricky at best. ‣ Testing, Documentation are usually ignored, or need separate tools themselves............................................................................................................... 7
  8. .............................................................................................................. OUCH!.............................................................................................................. 8
  9. .............................................................................................................. OMG!.............................................................................................................. 9
  10. .............................................................................................................. Some might like this, but its mostly because most Software Development Tools are designed for computers, not for human beings............................................................................................................... 10
  11. ..............................................................................................................They treat you like a Baby.............................................................................................................. 11
  12. ..............................................................................................................LEARNING TO WALK.............................................................................................................. 12
  13. .............................................................................................................. When you are the.............................................................................................................. 13
  14. .............................................................................................................. BOSS.............................................................................................................. 14
  15. .............................................................................................................. Is it Bad? ‣ Development, Testing, Debugging are different cycles. * ‣ Documentation is often ignored, or left to another team. ‣ Collaboration between teams,Version Control are different tools, and not standards based. * Until VS 2010.............................................................................................................. 15
  16. .............................................................................................................. Extra Mile in Going the building Beautiful & Scalable Applications.............................................................................................................. 16
  17. .............................................................................................................. WHY?.............................................................................................................. 17
  18. .............................................................................................................. “ There are no traffic jams along the extra mile ” ROGER STAUBACH.............................................................................................................. 18
  19. .............................................................................................................. Why? ‣Personal ambitions ‣Clients will you ( Yes, this is good ) ‣You will get noticed ‣More opportunities ................................................................................................................. 19
  20. ..............................................................................................................CODING CAN BE FUN!.............................................................................................................. 20
  21. .............................................................................................................. HOW?.............................................................................................................. 21
  22. .............................................................................................................. How? ‣Use modern Development Languages. ‣Go beyond Relational Databases (NoSQL) ‣The Internet (Mobile) is the ONLY platform going forward. ‣Social Coding Platforms is the key to Success. ‣Be bold enough to break the traditions............................................................................................................... 22
  23. .............................................................................................................. Buzz Words.............................................................................................................. 23
  24. .............................................................................................................. GET REAL.............................................................................................................. 24
  25. .............................................................................................................. GETTING REAL ‣Build the Real thing first. ‣Stay Small and Agile ‣Start with Interface, and build backwards. ‣Do what’s needed, and nothing that’s not............................................................................................................... 25
  26. .............................................................................................................. BE AGILE.............................................................................................................. 26
  27. .............................................................................................................. BE AGILE! ‣Start building right away. ‣It’s easier to throw something away, when you didn’t spend time doing it. ‣Build, Test, Gather Feedback and iterate. ‣Lower the cost of change............................................................................................................... 27
  28. .............................................................................................................. LESS IS MORE.............................................................................................................. 28
  29. .............................................................................................................. LESS IS MORE! ‣Don’t try to one up Competitors. ‣Solve the simple problems, and leave the rest. ‣Think ahead, and build what’s best for your users, rather than build everything............................................................................................................... 29
  30. .............................................................................................................. KEEP IT SIMPLE,.............................................................................................................. 30
  31. .............................................................................................................. STUPID.............................................................................................................. 31
  32. .............................................................................................................. KEEP IT SIMPLE, STUPID! ‣Each time you increase your code, you increase complexity exponentially. ‣Complex code => More Bugs ‣So, write Less Code, Less Features in short Keep it Simple, Stupid. (K.I.S.S ).............................................................................................................. 32
  33. .............................................................................................................. DON’T REPEAT YOURSELF.............................................................................................................. 33
  34. .............................................................................................................. Don’t Repeat Yourself ‣Reduce Duplicate Code. ‣Changing one component should not have cascading effects. ‣Modularize, Use Code Generators. ‣Single Source of Truth............................................................................................................... 34
  35. .............................................................................................................. COLLABORATE.............................................................................................................. 35
  36. .............................................................................................................. COLLABORATE ‣Share your code. (Don’t be a jerk) ‣Take feedback from the end users during development. ‣Make sure you get the product right, before its too late. ‣Help others, and help yourself............................................................................................................... 36
  37. ..............................................................................................................GEN ‘Y’ TOOLS.............................................................................................................. 37
  38. .............................................................................................................. Use the Next Generation Tools ‣The world no longer relies on one Language. ‣Performance, Scalability are the key. ‣Ruby on Rails (Web), WPF(Windows), Cocoa (iPhone and MacOSX) ‣MVC (Model View Controller) ‣Zero Dependency, and easy Configuration.............................................................................................................. 38
  39. 39
  40. .............................................................................................................. “ Ruby on Rails is astounding. Using it is like watching a kung-fu movie, where a dozen bad-ass frameworks prepare to beat up the little newcomer only to be handed their asses in a variety of ” imaginative ways. Nathan Torkington, OReilly Program Chair for OSCON.............................................................................................................. 40
  41. .............................................................................................................. Ruby on Rails is an open-source web framework that’s optimized for programmer happiness and sustainable productivity. It lets you write beautiful code by favoring convention over configuration............................................................................................................... 41
  42. .............................................................................................................. Ruby on Rails is an open-source web framework that’s optimized for programmer happiness and sustainable productivity. It lets you write beautiful code by favoring convention over configuration............................................................................................................... 42
  43. .............................................................................................................. Ruby on Rails is an open-source web framework that’s optimized for programmer happiness and sustainable productivity. It lets you write beautiful code by favoring convention over configuration............................................................................................................... 43
  44. .............................................................................................................. Ruby on Rails is an open-source web framework that’s optimized for programmer happiness and sustainable productivity. It lets you write beautiful code by favoring convention over configuration............................................................................................................... 44
  45. .............................................................................................................. Ruby on Rails is an open-source web framework that’s optimized for programmer happiness and sustainable productivity. It lets you write beautiful code by favoring convention over configuration............................................................................................................... 45
  46. .............................................................................................................. Ruby on Rails is an open-source web framework that’s optimized for programmer happiness and sustainable productivity. It lets you write beautiful code by favoring convention over configuration............................................................................................................... 46
  47. .............................................................................................................. 80/20 Like the 69 of the real world!.............................................................................................................. 47
  48. .............................................................................................................. MVC.............................................................................................................. 48
  49. Controller Structures ApplicationProvides Provides Data UX and UIModel View 49
  50. .............................................................................................................. A Programmer’s A Programmer’s Best Friend Best Friend.............................................................................................................. 50
  51. .............................................................................................................. say = “I love Ruby” puts say => “I love Ruby”.............................................................................................................. 51
  52. .............................................................................................................. no type declarations. string... no “main” method say = “I love Ruby” puts say no end of instruction no “superfluous” marker keywords (“var”).............................................................................................................. 52
  53. .............................................................................................................. say = “I love Ruby” say[‘love’] = “*love*” puts say.upcase => “I *LOVE* RUBY”.............................................................................................................. 53
  54. .............................................................................................................. 3.times { puts say } => “I *love* Ruby” => “I *love* Ruby” => “I *love* Ruby”.............................................................................................................. 54
  55. ..............................................................................................................[Ruby is] a dynamic, open sourceprogramming language with afocus on simplicity andproductivity.It has an elegant syntax that isnatural to read and easy to write............................................................................................................... 55
  56. ..............................................................................................................[Ruby is] a dynamic, open sourceprogramming language with afocus on simplicity andproductivity.It has an elegant syntax that isnatural to read and easy to write............................................................................................................... 56
  57. ..............................................................................................................[Ruby is] a dynamic, open sourceprogramming language with afocus on simplicity andproductivity.It has an elegant syntax that isnatural to read and easy to write............................................................................................................... 57
  58. ..............................................................................................................[Ruby is] a dynamic, open sourceprogramming language with afocus on simplicity andproductivity.It has an elegant syntax that isnatural to read and easy to write............................................................................................................... 58
  59. ..............................................................................................................[Ruby is] a dynamic, open sourceprogramming language with afocus on simplicity andproductivity.It has an elegant syntax that isnatural to read and easy to write............................................................................................................... 59
  60. TAKING THE PAIN OUT OFTHINGS YOU DON’T LIKE DOING 60
  61. 61
  62. .............................................................................................................. EXPLORE.............................................................................................................. 62
  63. .............................................................................................................. VERSION CONTROL.............................................................................................................. 63
  64. .............................................................................................................. VERSION CONTROL ‣One of the most overlooked features of modern development. ‣A time machine for your code. ‣Easy to setup, Zero Headaches. ‣Examples Git(Github.com), SVN, Mercurial.............................................................................................................. 64
  65. .............................................................................................................. DISASTERS STRIKE.............................................................................................................. 65
  66. .............................................................................................................. BUT DON’T CRY!.............................................................................................................. 66
  67. .............................................................................................................. Git to the Rescue! ‣Git is the simplest Version Control tool you’ll ever use. ‣Scales beautifully to any number of developers. ‣Online Community Support and Code repo at Github.com.............................................................................................................. 67
  68. .............................................................................................................. Git Magic! Step 1: git init Step 2: git add . Step 3: git commit -a -m “Your Message” Go back in Time! git reset --hard <hash>.............................................................................................................. 68
  69. .............................................................................................................. DATABASES.............................................................................................................. 69
  70. .............................................................................................................. Beyond SQL and RDBMS ‣Relational Databases are hard to scale. ‣Concepts from the 1980’s, don’t work in the internet era. ‣Adopt NoSQL i.e. Not only SQL ‣No one Database fits the bill, so experiment. ‣SQL will be what COBOL is to our generation............................................................................................................... 70
  71. ................................................................................................................................ Let’s take an example Come up with a simple database schema for Facebook to store profile information and friends................................................................................................................................ 71
  72. ................................................................................................................................It Probably Looks like.. User Friends id Name DOB .... fid1 fid2 state Select * from Friends where fid1= ‘myid’ OR fid2= ‘myid’ AND state=1............................................................................................................................... 72
  73. ................................................................................................................................ How about this... A Representation of how Facebook stores Data................................................................................................................................ 73
  74. .............................................................................................................. Consider Twitter... ‣Averages about 1000 tweets per second. (~1000 inserts per second) ‣Contains metadata such as Hashtags, and Mentions. ‣About 1 Billion Searches per day or 11k searches per second.............................................................................................................. 74
  75. .............................................................................................................. The World of NoSQL ‣Cassandra DB ‣VoltDB ‣MongoDB ‣MemcacheDB ‣Redis ‣CouchDB and many more................................................................................................................. 75
  76. .............................................................................................................. READY TO JUMP?.............................................................................................................. 76
  77. .............................................................................................................. Let’s build an app ‣We are going to build an application in Rails. ‣A Simple blog, with comments and access control. ‣Sounds complex? Should take ~15mins with Rails magic. ‣Let’s use Git for good measure............................................................................................................... 77
  78. 78
  79. .............................................................................................................. Final Words... ‣Modern Software Development is fun. ‣Uncomplicate and Simplify ‣Bid Goodbye to Complex IDEs and general purpose languages like C, Java. ‣Build applications in bottom up fashion, rather than top down!.............................................................................................................. 79
  80. .............................................................................................................. LIVE ON THE EDGE.............................................................................................................. 80
  81. .............................................................................................................. CODE IS POETRY.............................................................................................................. 81
  82. .............................................................................................................. Q+A.............................................................................................................. 82
  83. .............................................................................................................. Get the Related Resources kit@karthik.kastury.in.............................................................................................................. 83
  84. I’m available to help................................................................................................................................ Blog http://karthik.kastury.in/ Email hello@karthik.kastury.in Twitter @KarthikDot Ask http://karthik.kastury.in/ask................................................................................................................................ 84
  85. Footnotes................................................................................................................................ All images are creative commons licensed from Flickr. 37 Signals Signals vs Noise Blog. Agile Programming Tips................................................................................................................................ 85
  86. .............................................................................................................. THE END Or the start of something new............................................................................................................... 86

×