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


Cf7b553387b247d737c60cfceabb2cea?s=47 Naoto Takai
December 15, 2012


At #devlove2012


Naoto Takai

December 15, 2012


  1. ʲపఈൺֱʳ4*FSͱ8FCܥ͸ίί͕ҧ͏ʂ ฏ੒೥݄೔ɹߴҪɹ௚ਓ ग़੮ऀ֤Ґ ΩϟϦΞνΣϯδͨ͠ΤϯδχΞ͕ݟͨ྆ऀͷݱ৔͔Β

  2. ഈܒɹو఼ʹ͓͔Ε·ͯ͠͸ɺ͝ਗ਼ӫͷ͜ͱͱ͓تͼਃ্͛͠ ·͢ɻ·ͨɺ͜ͷ౓͸ൃදͷػձΛ͍͖ͨͩ·ͯ͠ɺ੣ʹ͋Γ ͕ͱ͏͍͟͝·͢ɻ ɹࢲ͸ɺࣾձਓͱͯ͠ब৬Ҏདྷɺඍྗͳ͕Β΋γεςϜΠϯς άϨʔλɺΠϯλʔωοταʔϏεاۀͳͲͰɺਚྗͯ͠ࢀΓ ·ͨ͠ɻࠓճൃදਃ্͛͠Δ಺༰ʹ͖ͭ·ͯ͠΋ɺͦͷ஝ੵ͞ ΕͨܦݧΛ΋ͱʹൃද͍ͤͯͨͩ͘͞ॴଘʹ͍͟͝·͢ɻ ɹͲ͏͔ຊൃදΛΑΖ͘͠͝ݕ౼͍͖ͨͩɺࠓޙͷو఼ͷ͝׆ ༂ͷࢀߟͱͳΒΜ͜ͱΛ͝ف೦͍ͨ͠·͢ɻ ͸͡Ίʹ

  3. NAOTO TAKAI Cowboy Coder

  4. Once upon a time…

  5. None
  6. None
  7. Question ‣How old? ‣Suit or T-Shirt? ‣Contractor or In-House?

  8. 2000~ Computer Distributor 2001~ Web Production 2007~ System Integrator 2011~

    Recipe Site
  9. 2000~ Suit, Contractor 2001~ T-Shirt, Contractor 2007~ Suit, Contractor 2011~

    T-Shirt, In-House Memo: Talk about me
  10. Agenda ‣SIer / Web Business ‣A Future in Development ‣Career

  11. ‣SIer / Web Business

  12. I got a job at system integrator…

  13. None
  14. Excel with Square Grid

  15. ‣Requirements ‣Design documentation ‣Test Plan ‣Man-Month Calculation

  16. Requirements System Design Module Design Implementation Acceptance Test System Test

    Integration Test Unit Test Memo: Talk about customer approval
  17. Dogma System requirements is the most important.

  18. ✓ Process Quality ✓ Code Generation

  19. I got a job at recipe site…

  20. None
  21. Code without Documents

  22. ‣Hypothesis ‣Prototype ‣Release ‣Evaluation

  23. Measure Learn Build Memo: Code, Data, Ideas

  24. Dogma Nobody knows the requirements

  25. ✓ Rapid Prototyping ✓ Log Analysis

  26. Chanko

  27. None
  28. None
  29. % rails generate chanko like_button create app/units/like_button/like_butto create app/units/like_button/views/_sho create

    app/units/like_button/spec/contr create app/units/like_button/spec/model create app/units/like_button/spec/helpe create app/units/like_button/stylesheet create app/assets/stylesheets/units/lik create app/units/like_button/javascript create app/assets/javascripts/units/lik create app/units/like_button/images/log create app/assets/images/units/like_but
  30. app/units/like_button/like_button.rb /views/ /spec/ /stylesheets/ /javascripts/ /images/ Directory Structure Unit script

    Other staff
  31. # app/units/like_button/like_button.rb module LikeButton include Chanko::Unit active_if :logged_in do |context,

    opts| context.current_user.logged_in? end scope(:view) do function(:show) do render :partial => "/show" end end end Unit Script Code
  32. # app/units/like_button/views/_show.html.haml .copy Share this site with your friends .fb-like{:data

    => {:href => 'http://recompi #fb-root :javascript (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0] if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/ja_JP/all fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); Unit View Code
  33. # app/views/photos/index.html.haml = invoke(:like_button, :show) do %address.copy Copyright © 2005-2012

    Naoto Ta Original View Code # app/views/photos/index.html.haml %address.copy Copyright © 2005-2012 Naoto Taka Before: After:
  34. Chanko Before: After:

  35. ‣works in production ‣feedback from real user ‣enables a “small

    start” Chanko
  36. Log Analysis A Log Collector Daemon

  37. App s3 Log Storage MySQL Before: MySQL MySQL

  38. ‣heavy & slow ‣batch (sql, hadoop) ‣many database tables Problem

  39. fluentd fluentd fluentd fluentd MongoDB TreasureData App Servers Log Storage

    s3 After:
  40. ‣lightweight ‣pluggable architecture ‣schema less Fluentd

  41. Measure Learn Build Chanko Fluentd

  42. ‣before starting the development ‣after ending the development ‛ REQUIREMENTS

    Memo: Ask audience how real world is
  43. ‣A Future in Development

  44. 0 1,250,000 2,500,000 3,750,000 5,000,000 2000 2001 2002 2003 2004

    2005 2006 2007 2008 2009 2010 2011 ग़యɿܦࡁ࢈ۀলʮಛఆαʔϏε࢈ۀಈଶ౷ܭௐࠪʯ
  45. the number of transistors on a chip will double approximately

    every two years. Moore’s Law
  46. 1961 IBM 7030 1 MIPS 1994 Intel Pentium 188 MIPS

    2012 Google Nexus 7 13800 MIPS Moore’s Law Memo: Talk about usage of computer
  47. Military Use Business Use Personal Use Memo: Talk about media

    theory and usage
  48. ‣in any devices ‣in any context ‣with computer technology for

    Personal Use
  49. ‣before starting the development ‣after ending the development ‛ REQUIREMENTS

    Memo: Ask audience how real world will be
  50. All companies become technology companies bakery, flower shop, liquor shop,

    bookstore… Memo: Ask audience how SIer will be
  51. Core competence: own business Technology Doesn't Matter

  52. To make everyday cooking fun ‣Rapid Prototyping ‣Log Analysis

  53. Open Source Software Memo: Talk about chanko, OSS policy

  54. ‣Career Changing

  55. All companies become technology companies bakery, flower shop, liquor shop,

  56. All companies employ software engineers bakery, flower shop, liquor shop,

  57. Selling software itself with software engineering Career Changing Memo: Be

    interested in their business
  58. ޙ޻ఔ͸͓٬͞· Memo: Talk that only programmers can provide software

  59. DON’T HANDS OFF THE CONTROL “upstream” sucks. “downstream” rocks.

  60. Only you can control how you act. Thank you