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

Value and Pain to Keep Rails Applications Alive

Yasuko Ohba
December 02, 2016

Value and Pain to Keep Rails Applications Alive

How to upgrade Rails from 2 to 5 and what we are doing to keep longtime Rails applications alive, which was a talk in RubyConf Taiwan 2016.

Yasuko Ohba

December 02, 2016
Tweet

More Decks by Yasuko Ohba

Other Decks in Technology

Transcript

  1. "QQ BENJO "QQ GPSFOEVTFST "QQ GPSFOEVTFST .FSHF 3BJMT 0VS1SPKFDU(PBM 3BJMT3VCZ

    6QHSBEJOH 3BJMT3VCZ 3FGBDUPSJOH %SBXJUBXBZ GSPN 3BEJBOU$.4
  2. "QQ BENJO "QQ GPSFOEVTFST "QQ GPSFOEVTFST .FSHF 3BJMT 0VS1SPKFDU(PBM 3BJMT3VCZ

    6QHSBEJOH 3BJMT3VCZ 3FGBDUPSJOH %SBXJUBXBZ GSPN 3BEJBOU$.4 "/$*&/5$0%&
  3. "QQ BENJO "QQ GPSFOEVTFST "QQ GPSFOEVTFST .FSHF 3BJMT 0VS1SPKFDU(PBM 3BJMT3VCZ

    6QHSBEJOH 3BJMT3VCZ 3FGBDUPSJOH "EE 'FBUVSFT %SBXJUBXBZ GSPN 3BEJBOU$.4 "/$*&/5$0%&
  4. "QQ BENJO +----------------------+-------+-------+---------+---------+-----+-------+ | Name | Lines | LOC |

    Classes | Methods | M/C | LOC/M | +----------------------+-------+-------+---------+---------+-----+-------+ | Controllers | 6169 | 4554 | 79 | 573 | 7 | 5 | | Helpers | 1090 | 762 | 0 | 95 | 0 | 6 | | Models | 33339 | 23101 | 363 | 2629 | 7 | 6 | | Javascripts | 18382 | 9653 | 8 | 1191 | 148 | 6 | | Libraries | 3764 | 2504 | 45 | 279 | 6 | 6 | | Controller specs | 220 | 173 | 0 | 0 | 0 | 0 | | Feature specs | 12738 | 9900 | 0 | 5 | 0 | 1978 | +----------------------+-------+-------+---------+---------+-----+-------+ | Total | 75702 | 50647 | 495 | 4772 | 9 | 8 | +----------------------+-------+-------+---------+---------+-----+-------+ 5IF3FDFOU3FTVMU
  5. "QQ VTFS +----------------------+-------+-------+---------+---------+-----+-------+ | Name | Lines | LOC |

    Classes | Methods | M/C | LOC/M | +----------------------+-------+-------+---------+---------+-----+-------+ | Controllers | 1560 | 1100 | 25 | 137 | 5 | 6 | | Helpers | 1512 | 1163 | 1 | 132 | 132 | 6 | | Models | 33388 | 23145 | 364 | 2632 | 7 | 6 | | Javascripts | 11588 | 6841 | 0 | 966 | 0 | 5 | | Libraries | 3190 | 2162 | 29 | 275 | 9 | 5 | | Feature specs | 3878 | 2978 | 0 | 0 | 0 | 0 | | Helper specs | 157 | 117 | 0 | 0 | 0 | 0 | +----------------------+-------+-------+---------+---------+-----+-------+ | Total | 55273 | 37506 | 419 | 4142 | 9 | 7 | +----------------------+-------+-------+---------+---------+-----+-------+ 5IF3FDFOU3FTVMU
  6. 5PUBM4DIFEVMF "VHVTU.BZ NPOUIT QFPQMF      

         6QHSBEJOH 3FGBDUPSJOH /FX 'FBUVSFT" /FX 'FBUVSFT# QMBOOJOHEFTJHOJOH CZPVSDMJFOU PVSEFTJHOJOHBOE JNQMFNFOUBUJPO JOUFHSBUJPOUFTUJOH CZBQBSUOFSDPNQBOZ
  7. 6QHSBEJOH4DIFEVMF       "QQ UP3BJMT UP3VCZ

    UP3BJMT UP3BJMT "QQ UP3BJMT UP3VCZ UP3BJMT UP3BJMT 'JMF6QMPBEJOH 1BHJOBUJPO &NBJM4FOEJOH #BDLHSPVOE1SPHSBNT 3BJMT3VCZˠ3BJMT3VCZ
  8. 6QHSBEJOH4DIFEVMF       "QQ UP3BJMT UP3VCZ

    UP3BJMT UP3BJMT "QQ UP3BJMT UP3VCZ UP3BJMT UP3BJMT 'JMF6QMPBEJOH 1BHJOBUJPO &NBJM4FOEJOH #BDLHSPVOE1SPHSBNT 3BJMT3VCZˠ3BJMT3VCZ
  9. 6QHSBEJOH4DIFEVMF       "QQ UP3BJMT UP3VCZ

    UP3BJMT UP3BJMT "QQ UP3BJMT UP3VCZ UP3BJMT UP3BJMT 'JMF6QMPBEJOH 1BHJOBUJPO &NBJM4FOEJOH #BDLHSPVOE1SPHSBNT 3BJMT3VCZˠ3BJMT3VCZ
  10. 6QHSBEJOH4DIFEVMF       "QQ UP3BJMT UP3VCZ

    UP3BJMT UP3BJMT "QQ UP3BJMT UP3VCZ UP3BJMT UP3BJMT 'JMF6QMPBEJOH 1BHJOBUJPO &NBJM4FOEJOH #BDLHSPVOE1SPHSBNT 3BJMT3VCZˠ3BJMT3VCZ
  11. 6QHSBEJOH4DIFEVMF       "QQ UP3BJMT UP3VCZ

    UP3BJMT UP3BJMT "QQ UP3BJMT UP3VCZ UP3BJMT UP3BJMT 'JMF6QMPBEJOH 1BHJOBUJPO &NBJM4FOEJOH #BDLHSPVOE1SPHSBNT 3BJMT3VCZˠ3BJMT3VCZ
  12. .BQPG3BJMT6QHSBEJOH 3BJMT 5IF3JWFSPG5FBST 3BJMT  3BJMT  4BZ(PPECZF UP3VCZ 3BJMT

     5IF.PVOUBJOT PG.PEFSO3BJMT 3BJMT  5IF4USPOH1BSBNFUFST'BMMT
  13. .BQPG3BJMT6QHSBEJOH 3BJMT 5IF3JWFSPG5FBST 3BJMT  3BJMT  4BZ(PPECZF UP3VCZ 4BGF

    3BJMT  5IF.PVOUBJOT PG.PEFSO3BJMT 3BJMT  5IF4USPOH1BSBNFUFST'BMMT
  14. .BQPG3BJMT6QHSBEJOH 3BJMT 5IF3JWFSPG5FBST 3BJMT  3BJMT  4BZ(PPECZF UP3VCZ 4BGF

    3BJMT  5IF.PVOUBJOT PG.PEFSO3BJMT 3BJMT  3BJMT  5IF4USPOH1BSBNFUFST'BMMT
  15. #FGPSF3BJMT 3BJMT 5IF3JWFSPG5FBST 3BJMT  3BJMT  4BZ(PPECZF UP3VCZ 4BGF

    3BJMT  5IF.PVOUBJOT PG.PEFSO3BJMT 3BJMT  3BJMT  5IF4USPOH1BSBNFUFST'BMMT 3BJMT
  16. 3BJMT 3BJMT 3BJMT  3BJMT  3BJMT  4BZ(PPECZF UP3VCZ

    4BGF 3BJMT  5IF3JWFSPG5FBST 5IF4USPOH1BSBNFUFST'BMMT 5IF.PVOUBJOT PG.PEFSO3BJMT 3BJMT 
  17. $POEJUJPOT .BOJQVMBUJPO QSFQBSBUJPOGPS.PEFMpOE BMM DPOEJUJPOTʜ  JGTPNFUIJOH  DPOEJUJPOT@TUSJOH"/%TPNFUIJOH 

    DPOEJUJPOT@QBSBNTWBMVF FOE SFMSFMXIFSF TPNFUIJOHWBMVF JGTPNFUIJOH :PVOFFEUPLOPX"--42-TJOUFOEFE
  18. 3BJMT   (PPEQPJOUT 3BJMT 3BJMT DSFBUF BOFXBQQ SBJMTNZBQQ SBJMTOFXNZBQQ

    DPOTPMF SVCZTDSJQUDPOTPMF SBJMTD TFSWFS SVCZTDSJQUTFSWFS SBJMTT
  19. 3BJMT   (PPEQPJOUT 3BJMT 3BJMT DSFBUF BOFXBQQ SBJMTNZBQQ SBJMTOFXNZBQQ

    DPOTPMF SVCZTDSJQUDPOTPMF SBJMTD TFSWFS SVCZTDSJQUTFSWFS SBJMTT
  20. (PUPUIFOFYUTUFQ 3BJMT 3BJMT  3BJMT  4BZ(PPECZF UP3VCZ 4BGF 3BJMT

     5IF3JWFSPG5FBST 5IF.PVOUBJOT PG.PEFSO3BJMT 3BJMT  3BJMT  5IF4USPOH1BSBNFUFST'BMMT
  21.  3BJMT 3BJMT  3BJMT  4BZ(PPECZF UP3VCZ 4BGF 3BJMT

     5IF3JWFSPG5FBST 5IF.PVOUBJOT PG.PEFSO3BJMT 3BJMT  3BJMT  5IF4USPOH1BSBNFUFST'BMMT
  22. "MNPTU%POF 3BJMT 3BJMT  3BJMT  4BZ(PPECZF UP3VCZ 4BGF 3BJMT

     5IF3JWFSPG5FBST 5IF.PVOUBJOT PG.PEFSO3BJMT 3BJMT  3BJMT  5IF4USPOH1BSBNFUFST'BMMT
  23. 'SPN3BJMTUP3BJMT 3BJMT 3BJMT  3BJMT  4BZ(PPECZF UP3VCZ 4BGF 3BJMT

     5IF3JWFSPG5FBST 5IF.PVOUBJOT PG.PEFSO3BJMT 3BJMT  5IF4USPOH1BSBNFUFST'BMMT 3BJMT 
  24. :PVOFFEUPLOPX &7&3:5)*/(JO:063"11 ,OPX8IBU 'PS BMMBDUJPOT SFNPWJOHEFGBVMUSPVUJOH SFGBDUPSJOH63-TBOE)551NFUIPET BMMQBSBNFUFSTPG FBDIBDUJPOT BQQMZJOHTUSPOHQBSBNFUFSTTUSJDUMZ

    SJHIUMPPLTPGBMM QBHFT pYJOHIFMQFSTBOEFTDBQJOHDPSSFDUMZ BMM42-T SFQMBDJOHDPOEJUJPOTUPDIBJOBCMFRVFSZ BMMBTTFUpMFT VTJOHBTTFUTQJQFMJOFFGGFDUJWFMZ BMMNPOLFZ QBUDIJOH NBLJOHUIFNXPSLJONPEFSO3BJMT QSFQFOEJOTUFBEPGBMJBT@NFUIPE@DIBJO
  25. 8SJUFUFTUTˠ6QHSBEF *G ZPVS BQQ JT UPP PME UP EP UIBU

    PS JG ZPVS BQQT FYJTUJOH UFTUT BSF UPP DSB[Z
  26. 8SJUFUFTUTˠ6QHSBEF *G ZPVS BQQ JT UPP PME UP EP UIBU

    PS JG ZPVS BQQT FYJTUJOH UFTUT BSF UPP DSB[Z
  27. 8SJUFUFTUTˠ6QHSBEF 6QHSBEFˠ8SJUFUFTUT *G ZPVS BQQ JT UPP PME UP EP

    UIBU PS JG ZPVS BQQT FYJTUJOH UFTUT BSF UPP DSB[Z
  28. 8SJUFUFTUTˠ6QHSBEF 6QHSBEFˠ8SJUFUFTUT *G ZPVS BQQ JT UPP PME UP EP

    UIBU PS JG ZPVS BQQT FYJTUJOH UFTUT BSF UPP DSB[Z