"Railsで開発できる" への道

B5689026d84bb3a823c82590eefc3b8f?s=47 Yasuko Ohba
November 21, 2018

"Railsで開発できる" への道

2018-11-21 銀座Rails#3 での発表資料です。書籍『現場で使える Ruby on Rails 5速習実践ガイド』の紹介を中心に、Railsで開発できるエンジニアになるための道筋について考察しています。

B5689026d84bb3a823c82590eefc3b8f?s=128

Yasuko Ohba

November 21, 2018
Tweet

Transcript

  1. l3BJMTͰ։ൃͰ͖Δz ΁ͷಓ ɹۜ࠲3BJMT !OBZ

  2. ࣗݾ঺հ େ৔ೡࢠʢ͓͓͹΍͢͜ʣ !OBZʢωΠ͞Μʣ ϓϩάϥϚʢ̏̌೥͘Β͍΍ͬͯ·͢ʣ 3BJMTΤϯδχΞʢ̍̎೥΍ͬͯ·͢ʣ ג ສ༿୅දऔక໾ࣾ௕

  3. We are hiring!

  4. l3BJMTͰ։ൃͰ͖Δz ΁ͷಓ IUUQTXXXqJDLSDPNQIPUPT!/

  5. ࠓ೔࿩͢͜ͱ 3BJMTΛֶΜͰ͍͘ͱ͖ͷΞϓϩʔν ʮ3VCZPO3BJMT଎श࣮ફΨΠυʯ Λࣥචͨ͠ͷͰ঺հ͠·͢ l3BJMTͰ։ൃͰ͖Δzʹ౸ୡ͢Δ·Ͱ ͷϋϚΓͲ͜Ζ

  6. ࢓ࣄͰ3BJMTΛ ࢖͍ͬͯΒͬ͠ΌΔํ

  7. 3BJMTॳ৺ऀΛ ࣗೝ͞Ε͍ͯΔํ

  8. 3BJMT͸޿͍ IUUQTXXXqJDLSDPNQIPUPTEBOSBNBSDI

  9. l3BJMTΛ৮ͬͨ͜ͱ͕͋Δz l3BJMTͰ։ൃͰ͖Δz

  10. Ͳ͏͍͏ಓΛ௨Δͱ ޮ཰తͳͷ͔ʁ

  11. ̎ͭͷΞϓϩʔν ॻ੶ͳͲͰ ମܥతʹ ஌ࣝΛಘΔ ࡞Γ͍ͨ ෺Λ࡞Δ ࣮຿

  12. ྆ํ͋ͬͨ΄͏͕ྑ͍

  13. ࢠᐌɺֶࣕෆࢥଇ᠕ɺࢥࣕෆ ֶଇຆɻ ࢠᐌ͘ɺֶͼͯࢥΘ͟Ε͹ଇ ͪ᠕͠ʢ͘Β͠ʣɺࢥֶ͍ͯ͹ ͟Ε͹ଇͪຆ͠ʢ͋΍͏͠ʣɻ

  14. ॻ੶ͳͲͰ ମܥతʹ ஌ࣝΛಘΔ ࡞Γ͍ͨ ෺Λ࡞Δ ࣮຿ ֶͿ ࢥ͏ ʢߟ͑Δʣ

  15. ֶͿ͚ͩͩͱɾɾɾ ॻ੶ͳͲͰ ମܥతʹ ஌ࣝΛಘΔ w ਎ʹ͔ͭͳ͍

  16. ߟ͑Δ͚ͩͩͱɾɾɾ ࡞Γ͍ͨ ෺Λ࡞Δ ࣮຿ w ࢥ͍ࠐΈ w ࢹ໺ͷڱ͞ w ಠಛͷบ͕ͭ͘

    w ίϛϡχςΟͰ ྑ͍ͱ͞ΕΔ͜ ͱΛ஌Βͳ͍
  17. ٕज़ͷ޿͞ͱਂ͞ ਂ͞ ޿͞

  18. ٕज़ͷ޿͞ͱਂ͞ ਂ͞ ޿͞ ࡞Γ͍ͨ ෺Λ࡞Δ ࣮຿

  19. ٕज़ͷ޿͞ͱਂ͞ ਂ͞ ޿͞ ॻ੶ͳͲͰ ମܥతʹ ஌ࣝΛಘΔ ࡞Γ͍ͨ ෺Λ࡞Δ ࣮຿

  20. ͲͪΒ͔ҰͭΛ બ΂ͱݴΘΕͨΒ

  21. ݸਓతʹ͸ͬͪ͜ ࡞Γ͍ͨ ෺Λ࡞Δ ࣮຿ w ෺ࣄ͕࢝·Δ w ୀ۶͠ͳ͍

  22. ߦͬͨΓདྷͨΓ͕ྑ͍ ॻ੶ͳͲͰ ମܥతʹ ஌ࣝΛಘΔ ࡞Γ͍ͨ ෺Λ࡞Δ ࣮຿

  23. ߦͬͨΓདྷͨΓ͕ྑ͍ ॻ੶ͳͲͰ ମܥతʹ ஌ࣝΛಘΔ ࡞Γ͍ͨ ෺Λ࡞Δ ࣮຿

  24. 3BJMTͷຊͷ ࣥච࿩Λ ͍͍ͨͩͨͷͰ

  25. ॳ৺ऀΛ l3BJMTͰ։ൃͰ͖Δz ΁ಋ͚ΔΑ͏ͳ ຊΛॻ͖͍ͨͱࢥͬͨ

  26. ݱ৔Ͱ࢖͑Δ 3VCZPO3BJMT଎श࣮ફΨΠυ ݱ৔3BJMT ສ༿ऺਓͰ։࢝ ࣥචʹ೥͔͔ͬͨʜ

  27. ݱ৔Ͱ࢖͑Δ 3VCZPO3BJMT଎श࣮ફΨΠυ ݱ৔3BJMT ສ༿ऺਓͰ։࢝ ࣥචʹ೥͔͔ͬͨʜ ࠷ޙ͸ Ԍ্ϓϩδΣΫτঢ়ଶʹʜ

  28. ͓࣋ͪͷํ

  29. ૂ͍ 3BJMTΛखͬऔΓૣ͘ɺ۩ମతʹ೺Ѳ͢Δ ૯߹తͳ೺ѲʢֶͿʣͱɺৄࡉͷମݧʢߟ ͑ΔʣΛަޓʹ܁Γฦ͢ ॳ৺ऀ͔Βܦݧऀ·ͰɺಘΔ΋ͷ͕͋ΔΑ ͏ʹ Ձ஋؍ͷڞ༗Λ໨ࢦ͢

  30. ڞ༗͍ͨ͠Ձ஋؍ ʮਖ਼ղʯ͸ࣗ෼ͨͪͰܾΊΔ Ͳͷબ୒ࢶ͕ྑ͍͔͸ɺঢ়گʹΑΔ όʔδϣϯΞοϓॏཁ 3BJMT8BZʹ৐Ζ͏ ΍ͬͯΈͳ͸Ε

  31. Թ౓ײΛఴ͑ͨ ʮ"Ͱ΋#Ͱ΋ॻ͚·͢ʯͰ͸໎͏ ࣗ෼ͨͪͳΒͲ͏͢Δ͔Λఴ͑ΔΑ͏ʹ ͨ͠

  32. ݱ৔3BJMTຊͷߏ੒ ೖ໳ฤ ϨϕϧΞοϓฤ ൃలฤ

  33. ೖ໳ฤ $IBQUFS3BJMTͷͨΊͷ3VCZೖ໳ $IBQUFS3BJMTΞϓϦέʔγϣϯΛ ͷ͍ͧͯΈΑ͏ $IBQUFSλεΫ؅ཧΞϓϦέʔγϣ ϯΛ࡞Ζ͏

  34. $IBQUFS 3BJMTͷͨΊͷ3VCZೖ໳ 3BJMTίʔυΛಡΉͨΊͷۙಓ ΦϒδΣΫτ΍ΫϥεΛཧղͯ͠΋Β͏ ͜ͱʹϑΥʔΧε ˠ͜Ε͕෼͔Βͳ͍ͱޙͰͭ·ͮ͘ 3VCZͬΆ͍ॻ͖ํ

  35. $IBQUFS 3BJMTΞϓϦέʔγϣϯΛ ͷ͍ͧͯΈΑ͏ ؀ڥߏங 84-ʢ8JOEPXT4VCTZTUFNGPS-JOVYʣ ͷ׆༻ 4DBGGPME ίʔυΛʮॻ͘ʯΑΓʮݟΔʯʹϑΥʔΧε खૣ͘Θ͔ͬͨؾʹͤ͞Δ

  36. $IBQUFS λεΫ؅ཧ ΞϓϦέʔγϣϯΛ࡞Ζ͏ εΫϥονͰΞϓϦΛ࡞Γ࢝ΊΔ ݕূͱ͔ɺ໘౗ͳ͜ͱ͸ඈ͹͢ Ͱ͖Δ͚ͩγϯϓϧʹҰ௨Γ࡞Δ

  37. γϯϓϧʹ͢Δͷ͕ େมͩͬͨ

  38. TBWFͨ͠Β ݕূʹݴٴͨ͘͠ͳΔ qBTIͱ͔ ύʔγϟϧͱ͔ ϧʔςΟϯάͱ͔ આ໌͍ͨ͜͠ͱ͸ࢁఔ͋Δ

  39. ϨϕϧΞοϓฤ $IBQUFSݱ࣮ͷෳࡶ͞ʹରԠ͢Δ $IBQUFSςετΛ͸͡ΊΑ͏ $IBQUFS3BJMTͷશମ૾Λཧղ͢Δ $IBQUFSػೳΛ௥Ճͯ͠ΈΑ͏

  40. ຊؾग़ͯ͘͠Δ ΤϦΞ

  41. $IBQUFS ݱ࣮ͷෳࡶ͞ʹରԠ͢Δ ϚΠάϨʔγϣϯ ݕূ ίʔϧόοΫ ϩάΠϯػೳ ؅ཧػೳ

  42. $IBQUFS ݱ࣮ͷෳࡶ͞ʹରԠ͢Δ ϚΠάϨʔγϣϯ ݕূ ίʔϧόοΫ ϩάΠϯػೳ ؅ཧػೳ ϋʔυʂʂ

  43. $IBQUFS ςετΛ͸͡ΊΑ͏ 4ZTUFN4QFDΛத৺ʹղઆ ݶΒΕͨࢴ໘ͰɺΘΓͱ࣮༻తͳϨϕϧ ·Ͱ͍࣋ͬͯ͜͏ͱ౒ྗͨ͠

  44. $IBQUFS 3BJMTͷશମ૾Λཧղ͢Δ

  45. ষΛஔ͍ͨҙຯ ʮৄࡉʯ͔Βʮશମʯ΁ ၆ᛌ͢Δ͜ͱͰɺ͜Ε·Ͱͷ஌ࣝɾܦݧΛམͪண͔ͤΔ ࢹ໺Λ޿͛Δ ʮ3BJMTͰ͜Ε͕Ͱ͖Δʯͱ͍͏஌ࣝΛ࣋ͬͯ΋Β͏ ϧʔςΟϯά ࠃࡍԽ ࣌ࠁͷѻ͍ํ ηΩϡϦςΟFUD

  46. $IBQUFS ػೳΛ௥Ճͯ͠ΈΑ͏ ͭͷষͰϨγϐϒοΫతཁૉΛ࣋ͨͤͨ ֬ೝը໘ɺݕࡧɺιʔτɺϝʔϧɺ$47ɺ ඇಉظॲཧ ۩ମతʹԿ͔Λ΍ΔͨΊʹ3BJMTΛֶͿਓ ʹɺ໨త΁ͷγϣʔτΧοτΛఏڙ͍ͨ͠

  47. ͜͜·Ͱ ίʔυΛॻ͖ͳ͕Β ಡΈਐΊͨΒ ͋Δఔ౓ 3BJMTʹ׳Ε͖ͯͦ͏

  48. ൃలฤ $IBQUFS3BJMTͱ+BWB4DSJQU $IBQUFSෳ਺ਓͰ3BJMTΞϓϦέʔ γϣϯΛ։ൃ͢Δ $IBQUFS3BJMTΞϓϦέʔγϣϯ ͱ௕͘෇͖߹͏ͨΊʹ

  49. 3BJMTΛ͋Δఔ౓ ஌͍ͬͯΔਓͷ ଍Γͳ͍ΤϦΞΛ ิॆ͢Δ

  50. $IBQUFS 3BJMTͱ+BWB4DSJQU ఻౷తͳ+4ͱϞμϯͳ+4ͷجૅͱۭؾ ײΛ఻͑Δ ઌʹਐΉͨΊͷ଍͕͔ΓΛఏڙ

  51. ࢴ਺ͱਐ௙ͷؔ܎Ͱ ষ͝ͱམͱ͢બ୒ࢶ΋ ු্͚ͨ͠Ͳ ͳΜͱ͔ೖΕΒΕͨ

  52. $IBQUFS ෳ਺ਓͰ3BJMT ΞϓϦέʔγϣϯΛ։ൃ͢Δ (JU)VCΛ࢖ͬͨνʔϜ։ൃͷஈऔΓ΍งғ ؾΛ঺հ ίʔυϨϏϡʔɺ-JOUɺ$* ʮҰਓͰίʔυΛॻ͘ʯ͔ΒʮνʔϜͰ։ൃ ͢ΔʯʹεϜʔζʹҠߦ͢ΔͨΊͷΨΠυͱ ͳΔ͜ͱΛૂͬͨ

  53. $IBQUFS 3BJMTΞϓϦέʔγϣϯͱ ௕͘෇͖߹͏ͨΊʹ ஶऀͨͪͷܦݧΛ௨ͨ͡ʮݴ͍͍ͨ͜ͱʯ͕ ͍Ζ͍Ζ٧·͍ͬͯΔ όʔδϣϯΞοϓ ίʔυͷෳࡶੑʹ޲͖߹͏۩ମతͳํ๏ ܦݧऀ͕ಡΜͰ΋ָ͍͠ͷͰ͸ͳ͍͔

  54. ޻෉ͨ͜͠ͱ

  55. ॻ੶ͳͲͰ ମܥతʹ ஌ࣝΛಘΔ ࡞Γ͍ͨ ෺Λ࡞Δ ࣮຿ ֶͿ ʢ޿͞ʣ ߟ͑Δ ʢਂ͞ʣ

  56. ຊͷதͰ΋ ֶͿʢ޿͞ʣͱ ߟ͑Δʢਂ͞ʣΛ ަޓʹߦ͖དྷͰ͖Δ ͜ͱΛૂͬͨ

  57. ֶͿʢ޿͞ʣ ૣΊʹશମ૾Λࣔ͢ ද΍ਤͳͲͰ໢ཏ͢Δ ͍Ζ͍Ζͳ࿩୊ΛऔΓ্͛Δ

  58. ֶͿʢ޿͞ʣ ૣΊʹશମ૾Λࣔ͢ ද΍ਤͳͲͰ໢ཏ͢Δ ͍Ζ͍Ζͳ࿩୊ΛऔΓ্͛Δ ॻ੶ͳͲͰ ମܥతʹ ஌ࣝΛಘΔ

  59. ߟ͑Δɾਂ͞ ۩ମతͳίʔυΛҭͯͯ෺Λ࡞Δ ໢ཏͨ͠ޙʹɺ۩ମྫΛࣔ͢ ਂ͍͜ͱΛຊจʹॻ͘ͱے͕ݟ͑ͳ͘ͳ ΔͷͰɺ٭஫΍ίϥϜΛ׆༻

  60. ߟ͑Δɾਂ͞ ۩ମతͳίʔυΛҭͯͯ෺Λ࡞Δ ໢ཏͨ͠ޙʹɺ۩ମྫΛࣔ͢ ਂ͍͜ͱΛຊจʹॻ͘ͱے͕ݟ͑ͳ͘ͳ ΔͷͰɺ٭஫΍ίϥϜΛ׆༻ ࡞Γ͍ͨ ෺Λ࡞Δ ࣮຿

  61. ॻ੶ͷ֎ͷ࢓૊Έ ג ສ༿ڭҭΧϦΩϡϥϜ IUUQTHJUIVCDPNFWFSZMFBG FMUSBJOJOH ՝୊ηοτΛެ։͍ͯ͠Δ ຊͱಉ͘͡ʮλεΫ؅ཧʯ

  62. ॻ੶ͷ֎ͷ࢓૊Έ ג ສ༿ڭҭΧϦΩϡϥϜ IUUQTHJUIVCDPNFWFSZMFBG FMUSBJOJOH ՝୊ηοτΛެ։͍ͯ͠Δ ຊͱಉ͘͡ʮλεΫ؅ཧʯ ࡞Γ͍ͨ ෺Λ࡞Δ ࣮຿

  63. ຊ΍ΧϦΩϡϥϜΛ ͥͻ͝׆༻͍ͩ͘͞

  64. ۤ࿑࿩ᶃ

  65. ࠷ॳ͸ɺଞݴޠͰͷ 8FCΞϓϦ։ൃ ܦݧऀΛλʔήοτʹ ͍ͯͨ͠

  66. ͔͠͠

  67. ʮॳ৺ऀ΋ ಡΊΔΑ͏ʹʯΛ ৺͕͚͍ͯΔ͏ͪʹ

  68. શํҐ޲͚ʹͳͬͯ ࣙॻฤࢊΈ͍ͨͳ ঢ়گʹɾɾɾ IUUQTXXXqJDLSDPNQIPUPTBEEFEFOUSZ

  69. 3BJMT͸޿͍ IUUQTXXXqJDLSDPNQIPUPTEBOSBNBSDI

  70. ۤ࿑࿩ᶄ

  71. ஶऀ͕ਓ IUUQTXXXqJDLSDPNQIPUPTUPEEFSJDL

  72. ϝϦοτɾσϝϦοτ ྆ํ͋ͬͨ

  73. ϝϦοτ શମͱͯ͠ΈΕ͹ਐΈ΍͍͢ ଟ͘ͷਓͷ஌ܙΛ׆͔ͤΔ ࢥ͍੾ͬͨ෼୲͕Ͱ͖Δ ϨϏϡʔྗ ౔ஃ৔Ͱ͸͍͢͝ύϫʔ͕ग़ͤΔ એ఻ྗ͕͋Δ

  74. σϝϦοτ จମɺߏ੒ɺίʔυ౳Λଗ͑ΔͨΊͷ࿑ ྗ͕େ͖͘ɺख໭Γ͕ଟ͘ͳΔ େ੎͍ΔͷͰɺ͍ͭ҆৺ͯ͠͠·͏ ෺ࣄΛܾΊΔͷʹͲ͏ͯ͠΋͕͔͔࣌ؒ ΔɻᎍΊͨΓ໎ͬͨΓ͠ͳͯ͘΋ɺେ੎ Ͱ΍ΓͱΓ͢Δ͚ͩͰ͕͔͔࣌ؒΔ

  75. ڭ܇ ͲͷΑ͏ʹຊΛॻ͔͘ͷΨΠμϯεΛߦ͍ɺ ҙࢥ౷ҰΛਤ͓͖͔ͬͯͨͬͨ ΨΠμϯε୅ΘΓͷຊΛॻ͖͍ͨ ૣ͍ஈ֊ͰɺԣׂΓͰͷ໾ׂ෼୲ΛऔΓೖΕ Ε͹Α͔ͬͨʢίʔυจষٕज़ݕূͳͲʣ ͋Β͢͡Λॻ͍͔ͯΒݸผࣥචମ੍ʹҠߦ͢ Ε͹Α͔ͬͨ

  76. l3BJMTͰ։ൃͰ͖Δz΁ͷ ಓதͷϋϚΓͲ͜Ζ IUUQTXXXqJDLSDPNQIPUPTDIFXJF

  77. ᶃ3VCZͱ͔ ΦϒδΣΫτࢦ޲ͱ͔

  78. 3BJMT͔ΒೖΔͱ ʮ3VCZʯ͕ݟ͑ͳ͍ IUUQTXXXqJDLSDPNQIPUPTqZDBNFSB

  79. ͳΜͱͳ͘ ϑϨʔϜϫʔΫʹ ߹ΘͤΔ͜ͱʹ ௥ΘΕͯ

  80. ݪଇతͳ 3VCZϓϩάϥϜͷ ॻ͖ํΛֶͼͮΒ͍ ͜ͱ͕͋Δ

  81. ͨͱ͑͹ ࣗ෼Ͱ୯७ͳΫϥεΛ ࡞Δػձ͕গͳ͍

  82. ݱ৔3BJMTͰ΋ ষͰΧόʔ͢ΔΑ͏ ͕Μ͹Γ·ͨ͠

  83. None
  84. ᶄ8FCΞϓϦ

  85. ίϯτϩʔϥͱ͔ ΞΫγϣϯͱ͔ ϦΫΤετͱ͔ ηογϣϯͱ͔΁ͷ ཧղɾ׳Ε

  86. ࣗ෼Ͱਤ͕ ॻ͚ΔΑ͏ʹͳΕ͹ Ұ҆৺

  87. ᶅσʔλϕʔεɺϚΠ άϨʔγϣϯɺϞσϧ

  88. ֶͿ΂͖͜ͱ͕ଟ͘ ͕͔͔࣌ؒΔ

  89. पғʹ૬ஊͰ͖Ε͹ ͳΜͱ͔ͳΔΜ͡Ό ͳ͍͔ͳɾɾɾ

  90. ͜ͷลͰ ࠷௿ݶඞཁͳྖҬΛ ΧόʔͰ͖ͯ͘Δ

  91. ࠷ޙʹ

  92. ᶆओମੑɺ ྑ͍΍Γํͷ௥ٻ

  93. ͦͷίʔυ͸ Ͳ͏ͳͷ͔ ྑ͍ͷ͔ѱ͍ͷ͔

  94. ʮ࣮ݱͰ͖Δ͔Ͳ͏͔ʯ Λ৺഑͢Δਓ͔Β ʮͲ͏࣮ݱ͢Δ͔ʯΛ ۛຯ͢Δਓ΁

  95. ྑ͍΍ΓํΛ͢Δ ͜ͱʹ৘೤Λ࣋ͭ

  96. ෺ࣄΛࣗ෼Ͱ ධՁ͠ͳ͕Β ਐΊΔ

  97. ෺ࣄΛࣗ෼Ͱ ධՁ͠ͳ͕Β ਐΊΔ ͜Ε͸ ͏·͍͔ͬͨ͘ͳ

  98. ෺ࣄΛࣗ෼Ͱ ධՁ͠ͳ͕Β ਐΊΔ ͜Ε͸ ͏·͍͔ͬͨ͘ͳ ͜Εɺࣦഊ ͩͬͨΘʔʔ

  99. ෺ࣄΛࣗ෼Ͱ ධՁ͠ͳ͕Β ਐΊΔ ͜Ε͸ ͏·͍͔ͬͨ͘ͳ ͜Εɺࣦഊ ͩͬͨΘʔʔ ࣍͸͜͏͠Α͏

  100. վળαΠΫϧΛ ճ͢

  101. l3BJMTͰ։ൃͰ͖Δz IUUQTXXXqJDLSDPNQIPUPTEJUUNBST