はてなブログ最近の開発テクニックと最新の開発風景のご紹介

 はてなブログ最近の開発テクニックと最新の開発風景のご紹介

Cc696ce673253d3bd21b3aa9e7927f39?s=128

hitode909

July 01, 2017
Tweet

Transcript

  1. ͸ͯͳϒϩά࠷ۙͷ ։ൃςΫχοΫͱ࠷ ৽ͷ։ൃ෩ܠͷ͝঺ հ

  2. IJUPEF ژ౎͔Βདྷ·ͨ͠ ͸ͯͳϒϩάΛ։ൃ͍ͯ͠Δ

  3. ͸ͯͳϒϩά ʙ ࠓ೥೥໨

  4. ҆ఆͯ͠։ൃΛ ଓ͚ΔͨΊͷऔΓ૊Έ ͦͷͱ͖ʹߟ͑ͨ͜ͱ΍ίπ

  5. ೥ؒͷาΈ

  6. ೥ʙ 03.࢖Θͳ͍ ബ͍ϑϨʔϜϫʔΫ

  7. 42-खॻ͖ .PEFM΋ख࡞Γ 42-͸$POUSPMMFS͔Βൃߦ

  8. ೥ʙ 42-ίϐϖ໰୊ 4FSWJDFΫϥε͔Β42-Λൃߦ

  9. ೥ υϝΠϯۦಈઃܭ͕ྲྀߦΔ ϢϏΩλεݴޠ஋ΦϒδΣΫτΤϯςΟςΟ

  10. :"1$"4*" 1FSMͷ্ʹ΋ࡾ೥ ͣͬͱΠέͯΔαʔϏεΛ ࡞Γଓ͚Δٕज़

  11. None
  12. ઃܭ΍ϞσϦϯά΁ͷؔ৺ͷߴ·Γ ಡॻձΛ΍ͬͨΓ

  13. Ұํͦͷࠒ

  14. ϑϩϯτΤϯυ ڊେͳϑΝΠϧˠ#SPXTFSJGZͰ෼ׂ K2VFSZˠ3FBDU

  15. None
  16. αʔόαΠυͷ1FSM ϑϩϯτΤϯυͷ+4 ͜ΕΒ͕Α͚Ε͹࠷ߴ

  17. αʔόαΠυͷ1FSM ϑϩϯτΤϯυͷ+4 ͜ΕΒ͕Α͚Ε͹࠷ߴ͔ ͱ͍͏ͱͦ͏Ͱ΋ͳ͍

  18. Ұํͦͷࠒ

  19. )5.-ͷ഑৴͸ ૉ๿ͳ฻Β͕͠ଓ͍͍ͯͨ

  20. ϒϩάαʔϏε͸ϒϩάΛ഑৴͢ΔαʔϏε σβΠϯΧελϚΠζ දࣔ಺༰ͷ੾Γସ͑Φϓγϣϯ ͳ͔ͳ͔ෳࡶͳΘΓʹύϥμΠϜ͕ݹ͍

  21. 7JFXΛ͖Ε͍ʹ อͭͷ͕೉͍͠

  22. 9TMBUFͷ55FSTFΛ࢖͍ͬͯΔ ݴޠػೳ͕ૉ๿ ڽͬͨ͜ͱ͸ͤͣී௨ʹ࢖͍ͬͯΔ͚ͩ ೥ؒύϥμΠϜͷਐԽ͕ͱ͘ʹͳ͍

  23. ૉ๿ͳ7JFXͷੈք؍ 7JFXଆͰ͸ม਺Λએݴͤͣ $POUSPMMFS͔Β౉ͤ͹ݺ΂Δ ςϯϓϨʔτ෼ׂͷࢦ਑͕ͳ͍ )5.-λάͰ͸ͳ͘จࣈྻΛѻ͍ͬͯΔ

  24. 7JFXΛͳΜͱ͔͢Δ 7JFX.PEFMԽ 3FBDUԽ ੩తղੳ͕ͯ͠Μ͹Δ

  25. ෳࡶͳϩδοΫΛ 7JFX.PEFMʹҠ͢

  26. ϩδοΫΛॻ͘ͱͳ͔ͳ͔େม

  27. None
  28. ϖʔδJEΛ༻͍ͯ બ୒தͷλϒΛϋΠϥΠτ

  29. <*'QBHF@JEbVTFSCMPHDPOpH ccQBHF@JEbVTFSCMPHDPOpHEFUBJM ccQBHF@JEbVTFSCMPHDPOpHQFSNJTTJPO > TFMFDUFE <&/%> ૉ๿ʹॻ͘ͱ

  30. දࣔ༻ͷ؅ཧը໘αΠυόʔΛ ͋ΒΘ͢ΫϥεΛ࡞Δ

  31. <*'TJEFCBSTFMFDUFE@UBC@JT CMPHDPOpH > TFMFDUFE <&/%>

  32. )BUFOB&QJD7JFX"EBQUFS"ENJO4JEFCBS λϒ໊Λ౉͢ͱɼબ୒த͔Ͳ͏͔ڭ͑ͯ͘ΕΔ ී௨ͷ1FSMͷΫϥεͳͷͰςετՄೳ

  33. ೉͍͜͠ͱΛ͢Δͱ͖͸3FBDUͰ ॻ͖௚͢

  34. چདྷɿ55ˠK2VFSZ ࠷ۙɿ࠷ॳ͔Β3FBDU

  35. ؅ཧը໘ Ϋϩʔϧ͞ΕΔඞཁͳ͍ ಈతͳཁૉ͕ଟ͍

  36. ಈతͳͱ͜Ζ͸·ͣ3FBDUͰॻ͖ ௚ͨ͠Γ͍ͯ͠Δ

  37. QSPQ5ZQFTͰ σʔλߏ଄ΛνΣοΫ FTMJOUͰղੳ ϨϯμϦϯάͷςετ

  38. จࣈྻͰ͸ͳ͘λά୯Ґ ࣗવͱߏ଄Խ͞ΕΔ

  39. ੩తղੳ͕ͯ͠Μ͹Δ

  40. 1$εϚʔτϑΥϯ".1

  41. ࣅ͍ͯΔ͕ͪΐͬͱ͕ͪ͏ ίϐϖͯ͠ฤू͕ͪ͠

  42. ੩తղੳͯ͠੔ཧ͢Δ

  43. YSU YTMBUF SFGBDUPSJOH UPPM

  44. None
  45. None
  46. XSJUUFOJO3VCZ

  47. XSJUUFOJO3VCZ 94MBUFʹґଘ͠ͳ͍ͨΊ1FSMͱ͸ ผݴޠͰ࣮૷

  48. 55ͷจ๏Λύʔε ύʔεͨ͠৘ใΛදࣔ ϦϑΝΫλϦϯά

  49. ύʔε <ʙ> จࣈͣͭݟ͍ͯ͘

  50. ϒϩοΫͷݕग़ 55  <*'>ʜ<&/%>

  51. ϒϩοΫͷݕग़ )5.-  EJWʜEJW

  52. 55ͱ)5.-ಉ࣌ʹύʔε

  53. ػೳ ωετ਺ͷදࣔ ॏෳ͢ΔϒϩοΫͷݕग़ ผϑΝΠϧʹ੾Γग़͠

  54. ωετ਺ͷදࣔ

  55. YSUEVNQUFNQMBUFTTBNQMFIUNM %VNQJOHUFNQMBUFTTBNQMFIUNM IUNM CPEZ <'03JUFN*/JUFNT> <*'JUFNUJUMF> I<UJUMF>I <&/%> <&/%> CPEZ

    IUNM 
  56. ωετͷେ͖͍ͱ͜Ζ͔Β੔ཧ ࠷େͰωετ਺ͷͱ͜Ζ΋͋ͬͨ

  57. ࢦఆͨ͠ϒϩοΫͷ੾Γग़͠

  58. UFNQBMUFTTBNQMFIUNM IUNM CPEZ <'03JUFN*/JUFNT> <*'JUFNUJUMF> I<UJUMF>I <&/%> <&/%> CPEZ IUNM

  59. YSUFYUSBDUUFNQMBUFTTBNQMFIUNM<'03JUFN*/JUFNT>UFNQMBUFT @JUFNTUU

  60. UFNQBMUFTTBNQMFIUNM IUNM CPEZ <*/$-6%&@JUFNTUU> CPEZ IUNM UFNQMBUFT@JUFNTUU <'03JUFN*/JUFNT> <*'JUFNUJUMF> I<UJUMF>I

    <&/%> <&/%>
  61. ࢦఆ͞ΕͨϒϩοΫΛൈ͖ग़͢ ϑΝΠϧʹॻ͖ग़͠ */$-6%&จΛ༻ҙ ΠϯσϯτΛௐ੔

  62. ͳΔ΂͘খ෼͚ʹ͍ͯ͘͠࡞ઓ ҙຯͷ·ͱ·Γ͝ͱʹ෼ׂ ࠷খͰ͸ϑΝΠϧλά

  63. @XSBQQFSDBOPOJDBMUU <*'DBOPOJDBM> MJOLSFMDBOPOJDBMISFG<DBOPOJDBM> <&/%>

  64. ੔ཧ͍ͯ͘͠ͱݟ͑Δ΋ͷ ෆཁͳϑϥά ॏෳ

  65. ੩తղੳ͠·͠ΐ͏

  66. දݱྗͷऑ͍ͱ͜ΖͰ ೉͍͜͠ͱΛ͠ͳ͍ 1FSMʹدͤͨΓ +4ʹدͤͨΓ

  67. IUUQTXXXBNB[PODPKQ&"$&"$&#&#$&#%&&&"&"&"&#&&"$&"&0CKFDU0SJFOUFE4FMFDUJPO&"'&""&#&##&&#$&&"&"#EQ

  68. IUUQTXXXBNB[PODPKQ&"$&"$&#&#$&#%&&&"&"&"&#&&"$&"&0CKFDU0SJFOUFE4FMFDUJPO&"'&""&#&##&&#$&&"&"#EQ ϨΨγʔίʔυվળΨΠυͰ͸ͳ͍ ͣͭ͢͜͠վળ͔ΒϑϧεΫϥον·Ͱ 7JFX.PEFMͷ࿩

  69. ΞϓϦέʔγϣϯʹ৽͍͠άοζΛ ಋೖ͢Δͱ͖ͷίπ ࿈ଓతʹҠߦͰ͖Δ Ұൠతͳ֓೦Ͱ͋Δ ࣦഊͨ͠Βݩʹ໭ͤΔ

  70. ࿈ଓతʹҠߦͰ͖Δ ن໛͕େ͖͍ͱҰؾʹॻ͖׵͑Δͷ͸ࠔ೉ ࠔͬͯΔͱ͜Ζ͔ΒඞཁʹԠͯ͡΍͍ͬͯ͘

  71. Ұൠతͳ֓೦Ͱ͋Δ ಠࣗͷ֓೦ΑΓ͸ɼطଘͷ֓೦ͷ΄͏͕ शಘ͠΍͍͢ ຊΛಡΊ͹෼͔Δͱ͔

  72. ࣦഊͨ͠Βݩʹ໭ͤΔ ΍ͬͯΈ͚ͨͲ͋·ΓΑ͘ͳ͔ͬͨΒ ఫୀͰ͖Δͱͷͧ·͍͠ ӡ༻தʹঢ়گ͕มԽͯࣗ͠વͱফ͑Δ৔߹΋

  73. 7JFX͸ͩΜͩΜ ྑ͘ͳ͍ͬͯΔ ͓ΘΓ

  74. αʔόαΠυͷ1FSM ϑϩϯτΤϯυͷ+4 )5.-ͷ૊Έཱͯ ͜ΕΒ͕Α͚Ε͹࠷ߴ

  75. αʔόαΠυͷ1FSM ϑϩϯτΤϯυͷ+4 )5.-ͷ૊Έཱͯ ͜ΕΒ͕Α͚Ε͹࠷ߴ͔ ͱ͍͏ͱͦ͏Ͱ΋ͳ͍

  76. ϓϩμΫγϣϯͷίʔυҎ֎ ίʔυΛॻ͘؀ڥ ॻ͍ͨίʔυΛϦϦʔε͢Δ

  77. खݩͷ։ൃ؀ڥͷ࿩ σβΠφʔͱͷ࿈ܞ

  78. ͸ͯͳͷσβΠφʔ σβΠϯ ϚʔΫΞοϓ )5.- 9TMBUF 3FBDU 6OEFSTDPSF5FNQMBUF

  79. Ϟμϯͳπʔϧ͕ͳ͍ͱ ։ൃ΋େม σβΠφʔͷΤσΟλ"UPN  4VCMJNF5FYU͔Β"UPNʹ౷Ұ

  80. ηοτΞοϓΛख఻͏ 3FBDUܥͷϓϥάΠϯೖΕΔ FTMJOUೖΕΔ Πϯσϯτͷઃఆ FEJUPSDPOpH

  81. Πϯσϯτ +4 ͱ +49 ࠞࡏ͠ ͍ͯͨͷΛʹଗ͑ͨ

  82. Πϯσϯτˠ FTMJOUŠpY ίϝϯτ͸ਖ਼نදݱͰ௕͞൒෼ʹ

  83. `git grep --name-only -P '^ +//' -- src/js/ `.split(/\n/).each{|path| source=open(path).read;

    open(path, 'w'){|f| f.write source.gsub(/^( +)\/\//){|space| ' '*(space.length/2-1) +'//'} } }
  84. λϒԡͨ͠ΒΠϯσϯτଗ͏Α͏ʹ ΩʔόΠϯυͷઃఆ

  85. JG΍ϧʔϓ͸50%0Ͱॻ͍ͯ΋ Β͏ ΤϯδχΞ͕͋ͱ͔Βಈ͔͢ ೉͍͠ͱ͜Ζ͸ϖΞϚʔΫΞοϓ

  86. MJOUͱ͔Πϯσϯτͱ͔ ΤσΟλͷࢧԉΛօ͕ड͚ΒΕΔ

  87. ։ൃ؀ڥΛ࡞Δίπ ΤσΟλͷΧελϚΠζ͸ झຯͰ͸ͳ͘࢓ࣄ

  88. ։ൃ؀ڥ खݩͰ1FSM .Z42-  NFNDBIDFE &MBTUJDTFBSDI ͳͲಈ͔͍ͯ͠Δ

  89. TDSJQUTFUVQ 1FSMΠϯετʔϧ %#εΩʔϚͷηοτΞοϓ OPEFͷηοτΞοϓ 1ZUIPO΋ηοτΞοϓ &MBTUJDTFBSDIͷΠϯσοΫε࡞Δ

  90. Α͋͘Δձ࿩

  91. ʮखݩͰΤϥʔ͕ग़·ͨ͠ʯ ʮΤϥʔϩάΛష͍ͬͯͩ͘͞ʯ ʮషΓ·ͨ͠ʯ ʮ΋͏গ্͠΋ష͍ͬͯͩ͘͞ʯ

  92. σβΠφʹͱͬͯ͸ɼͲ͜·Ͱ͕Τ ϥʔ͔෼͔Βͳ͍ ΤϯδχΞʹͱͬͯ͸ɼσβΠφͷ खݩͷঢ়گΛ೺Ѳ͢Δͷ͕೉͍͠

  93. ͲͷϒϥϯνͰ  ԿΛͨ͠Β  Ͳ͏ͳͬͨͷ͔  ηοτΞοϓ͸े෼͔  ฉ͘͜ͱ͍Ζ͍Ζ͋Δ

  94. ԣʹ͍Ε͹ը໘ݟʹߦ͚Δ ϦϞʔτͩͱखؒ

  95. ࣗಈͰखݩͷΤϥʔΛ4MBDLʹྲྀ͢ 1MBDL.JEEMFXBSF

  96. 1MBDL.JEEMFXBSF1PTU&SSPS5P4MBDL ୭͕ Ͳͷϒϥϯνͷ Ͳͷ63-Ͱ ͲΜͳΤϥʔʹૺ۰͔ͨ͠

  97. ݺ͹ΕΔલʹαϙʔτͰ͖ͯศར

  98. ։ൃ؀ڥΛ࡞Δίπ ؾܰʹฉ͍ͯ΋Β͏ յΕͨͱ͖ʹ͸͙͢௚͢

  99. ։ൃ؀ڥͷ࿩ ͓ΘΓ

  100. ϨϏϡʔͷ࿩

  101. ίʔυϨϏϡʔ ຖ೔ϨϏϡʔλΠϜ ͳΔ΂݅͘ʹͳΔ·ͰݟΔ

  102. ࣌ؒʹͳΔͱ͓஌Βͤ

  103. ঢ়ଶ͕มΘΔͱ4MBDLʹྲྀ͢ ϨϏϡʔͯ͠ΔਓΛՄࢹԽ

  104. ϥϕϧͰঢ়ଶΛ؅ཧ

  105. ׬ྃͨ͠ͱ͖ʹྑ͍ͷ͔ѱ ͍ͷ͔෼͔Βͳ͍

  106. ϨϏϡʔ׬ྃΛͭʹ෼ׂ

  107. σβΠϯϨϏϡʔ΋ϥϕϧͰ

  108. ϥϕϧͭར༻͍ͯ͠Δ

  109. ݟΒΕͣ์ஔ͞Ε͍ͯΔ1VMM3FRVFTUʹؾ෇ ͖͍ͨ

  110. IUUQTUXJUUFSDPNTJEF@UBOBTUBUVT

  111. ݹ͍1VMM3FRVFTUʹؾ෇͖͍ͨ ೔ؒಈ͖͕ͳ͚Ε͹ࣗಈͰϥϕϧΛ෇༩

  112. ϥϕϧͭར༻͍ͯ͠Δ

  113. ࠷ۙ͸ඪ४ͷػೳͰϨϏϡ ʔͰ͖ΔͷͰซ༻͍ͯ͠Δ IUUQTIFMQHJUIVCDPNBSUJDMFTBCPVUQVMMSFRVFTUSFWJFXT

  114. ϨϏϡʔͷϑϩʔΛ੔͑Δίπ ϨϏϡʔͯ͠΋Β͑ͳ͍ͱ։ൃ͕ࢭ·ΔͷͰ ීஈݟ͑Δͱ͜ΖͰ΍Δ

  115. ϨϏϡʔΛਐΊΔίπ ײ৘ʹૌ͑ΔͷͰ͸ͳ͘ࣄ࣮ΛՄࢹԽ͢Δ ϨϏϡʔґཔͷ݅਺ɼϨϏϡʔͷਐ௙ɼݹ͞

  116. ϨϏϡʔͷϑϩʔΛ੔͑Δίπ σβΠφʔ޲͚ͷࢧԉ΋ΤϯδχΞ༻ ͱಉ༷ʹ༻ҙ͢Δ

  117. ϦϦʔεͷ࿩

  118. TUBHJOHʹϚʔδ͍ͯ͘͠ ϦϦʔε଴͕ͪஷ·͖ͬͯͨΒϦϦʔε ೔ճʙճ͘Β͍

  119. CPU͕ϦϦʔεΛଅͯ͘͠ΕΔ

  120. None
  121. Ϛʔδ݅਺ ίʔυͷߦ਺ ࠷େߦ਺1VMM3FRVFTUͷ୲౰ऀ ͕ϦϦʔε୲౰

  122. ϦϦʔε͍͚ͨ͠Ͳػೳ

  123. CPU͕ಠΓݴΛ౤ߘ͢Δ

  124. னٳΈ͸ආ͚Δ ༦ํ͸ආ͚Δ ༵ۚ೔͸ආ͚Δ ॕલ೔͸ආ͚Δ

  125. ৬ਓͷ൑அΛࣗಈԽ

  126. None
  127. ϦϦʔε಺༰ʹԠͯ͡ ಈతʹϦϦʔεखॱΛม͑Δ

  128. ;ͩΜͷखॱ

  129. BMUFSUBCMF͋Δͱ͖

  130. - [ ] `master`ʹϚʔδ <%- if changed_files.any?{|f| f.match(%r{^db/}) } -%>

    - [ ] alter table (db/* ͕มߋ͞Ε͍ͯ·ͨ͠) <%- end -%> ϦϦʔεखॱΛ ςϯϓϨʔτΤϯδϯͰੜ੒
  131. ͨ·ʹ΍ΔखॱΛࣗಈݕ஌ BMUFSUBCMF OHJOYͷઃఆϦϩʔυ DSPOͷߋ৽

  132. ϦϦʔεϑϩʔΛ࡞Δίπ ຖ೔΍Δ΋ͷͳͷͰࣗಈԽ ਓ͕ݟΔલʹCPUʹ࢓ࣄͤ͞Δ

  133. ϦϦʔεͷ࿩ ͓ΘΓ

  134. ·ͱΊ ࠓ೔ͷ࿩͸Կͷ࿩ͩͬͨͷ͔

  135. ৮Δର৅ͱͦͷ࡞ઓ ϓϩμΫγϣϯίʔυ͸ஸೡʹ ։ൃ؀ڥ͸ͲΜͲΜ΍Δ

  136. ΞϓϦέʔγϣϯͷઃܭ͸৻ॏʹ ण໋͕௕͍ ৮Ε߹͏࣌ؒ΋௕͍ ͦͷઃܭΛҰ೔த৮Γ͍͔ͨ

  137. ఫୀ͠΍͢͞ ബ͍ϑϨʔϜϫʔΫΛେ੾ʹ͍ͯ͠Δ ॏްͳάοζʹ͸ґଘͤͣ͋ͱ͔Β ·ͨม͑Δલఏ ಋೖٕ͕ͨ͠ݹͼͨͱ͖ఫୀͰ͖Δ͔

  138. ਓʹ໨Λ޲͚Δ νʔϜϝϯόશһ͕։ൃ͠΍͍͢؀ڥΛ ࡞Δͷ͸ΤϯδχΞͷ࢓ࣄ ಉ྅͕खͰΠϯσϯτͯͨ͠Βνϟϯε

  139. ։ൃΛαϙʔτ͢ΔͨΊͷίʔυ͸ ؾܰʹม͍͑ͯ͘ ϓϩμΫγϣϯίʔυΑΓण໋͕୹͍ յΕͨΒࣺͯͯ࡞Γ௚͢

  140. ·ͱΊ ҆ఆͯ͠αʔϏε։ൃΛଓ͚ΔͨΊ ͷίʔυͷઃܭ΍ํ਑ ։ൃ؀ڥ΍։ൃϑϩʔ ։ൃϝϯόͷαϙʔτ

  141. ׬

  142. એ఻γʔϧ഑ͬͯ·͢

  143. એ఻γʔϧ഑ͬͯ·͢