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

『達人プログラマー 第2版』/ Pragmatic Programmer 2nd Ed.

『達人プログラマー 第2版』/ Pragmatic Programmer 2nd Ed.

#devsumi 2022
https://event.shoeisha.jp/devsumi/20220217/session/3650/

「ITエンジニア本大賞2022」に『達人プログラマー 第2版』が選出されたそうで、ご縁があって著者でも翻訳者でも編集者でもないのにプレゼン大会でピッチすることになりました 😇

Further Reading:
* goto.bookclub: https://gotopia.tech/bookclub/episodes/pragmatic-programmer-in-2020
* 『達人プログラマー 第2版』(PDF版)https://tatsu-zine.com/books/the-pragmatic-programmer-2ed
* 角谷信太郎 × 和田卓人 ピアソン技術書のゼロ年代と俺たち ―"OO厨"史観のふりかえりと、技術書翻訳のこれから― - YouTube https://www.youtube.com/watch?v=khNX9-4tpEU

Shintaro Kakutani

February 17, 2022
Tweet

More Decks by Shintaro Kakutani

Other Decks in Technology

Transcript

  1. !LBLVUBOJ'FC EFWTVNJ

    View Slide

  2. ࠓ೔ͷ͓͸ͳ͠
    w ʰୡਓϓϩάϥϚʔ ୈ൛
    Šख़ୡʹ޲͚ͨ͋ͳͨͷཱྀʱ͸
    l5IF1SBHNBUJD1SPHSBNNFSZPVSKPVSOFZUPNBTUFSZ
    UI"OOJWFSTBSZ&EJUJPOzͷ຋༁Ͱ͢ प೥ه೦൛

    w શ໘తʹݟ௚͞Εɺ͸ॻ͖ԼΖ͞Εͨվగ൛Ͱ͢ɻ࠷ॳͷ
    ൛ ΍৽૷൛
    Λཤम͞Εͨํ΋ະཤमͷํ΋ੋඇͲ͏ͧ
    w प೥ه೦൛ͰมΘͬͨͱ͜Ζ΍มΘͬͯͳ͍ͱ͜Ζͷେ࿮
    Λ͓఻͍͑ͨ͠ͱࢥ͍ͬͯ·͢
    վΊͯಡΈ௚͢ͱɺੲ࿩΍ࣗ෼ޠΓΛͨ͘͠ͳͬͯ͠·͏͕զຫզຫʜ😬

    View Slide

  3. ͥͻ࡭͓ٻΊ͍ͩ͘͞R
    w ࢴ൛೚ҙͷ ΦϯϥΠϯ
    ॻళ͔Β
    w ిࢠॻ੶൛,JOEMF ͳͲ

    w 1%'1%'ୡਓग़൛ձͰങ͑·͢R
    ࢲ͸ʰୡਓϓϩάϥϚʔʱ͸ݪஶͱҎલͷ൛ͱͰࢴ൛छྨɺిࢠॻ੶छྨ࣋ͬͯ·͢ʜɻ

    ·͋ɺ͜ΜͳΜͳΜ΅͋ͬͯ΋͍͍Ͱ͔͢ΒͶɻ
    IUUQTUBUTV[JOFDPNCPPLTUIFQSBHNBUJDQSPHSBNNFSFE

    View Slide

  4. ֯୩৴ଠ࿠
    @kakutani

    ʰϢχίʔϯاۀͷͻΈͭʱ༁ऀ🦄😇
    Ұࣾ
    ೔ຊ3VCZͷձཧࣄ
    ג
    Ӭ࿨γεςϜϚωδϝϯτސ໰

    ϑΟϤϧυϒʔτΩϟϯϓސ໰
    5IF1SBHNBUJD#PPLTIFMGࣾץߦॻ੶ LJOEB
    ຋༁ऀ

    View Slide

  5. View Slide

  6. IUUQTHPUPQJBUFDICPPLDMVCFQJTPEFTQSBHNBUJDQSPHSBNNFSJO

    View Slide

  7. ʰୡਓϓϩάϥϚʔʱ຋༁ͷόʔδϣϯ
    l5IF1SBHNBUJD1SPHSBNNFS'SPN
    +PVSOFZNBOUP.BTUFSz

    5IF1SBHNBUJD1SPHSBNNFSZPVSKPVSOFZUPNBTUFSZ

    UI"OOJWFSTBSZ&EJUJPO

    ϐΞιϯɾΤσϡέʔγϣϯץߦͷୈ൛ͷ຋༁

    ΦʔϜࣾץߦͷʮ৽૷൛ʯ ಺༰͸ୈ൛஫ऍ

    ΦʔϜࣾץߦͷʮୈ൛ʯ

    View Slide

  8. ϐΞιϯԶͨͪδϡϯΫಊ<ݕࡧ>
    ͍ΘΏΔlϐΞιϯɾγϣοΫz

    View Slide

  9. lϐΞιϯɾγϣοΫzαόΠόʔζ
    ͜ͷλΠτϧ͸೔ຊޠͰ΋ಡΈܧ͕Εͯ΄͍͔͠Βٹग़ͯ͠΄͍͠

    ͱ͓ئ͍ͨ͠ͷśƀśƀ ΦʔϜࣾ͞Μ͋Γ͕ͱ͏͍͟͝·͢


    ࠓ೔͓࿩͍ͯ͠͠Δͷ΋ʮಡΈܧ͕Εͯ΄͍͠ͱࢥ͍ͬͯΔਓ୅දʯŕũŠŪʜ

    View Slide

  10. ͥͻ࡭͓ٻΊ͍ͩ͘͞R
    w ࢴ൛೚ҙͷ ΦϯϥΠϯ
    ॻళ͔Β
    w ిࢠॻ੶൛,JOEMF ͳͲ

    w 1%'1%'ୡਓग़൛ձͰങ͑·͢R
    ຊͱΩʔϘʔυ͸࣮࣭ແྉ
    IUUQTUBUTV[JOFDPNCPPLTUIFQSBHNBUJDQSPHSBNNFSFE

    View Slide

  11. प೥ه೦൛

    View Slide

  12. IUUQTHPUPQJBUFDICPPLDMVCFQJTPEFTQSBHNBUJDQSPHSBNNFSJO
    “Tech and society have
    changed, but we are still
    people making the same
    mistakes we were making 20
    years ago.
    !"#$%#&'()*+,-.'+/&'012
    3456789:;<=>?@*ABC

    View Slide

  13. ੈل຤ˠੈلϓϥάϚςΟοΫ
    w &5$ &BTJFS5P$IBOHF
    ݪଇ[NEW!]
    w ϙϦάϩοτ ଟݴޠ
    ͦͯ͠ϚϧνύϥμΠϜ
    w ܧଓతΞʔΩςΫςΟϯά
    w ੜ੒తͳl։ൃϓϩηεz
    w lڞʹಇ͘z ηΫγϣϯ
    [NEW!]


    w l8JUIHSFBUQPXFSDPNFTHSFBUSFTQPOTJCJMJUZz🕸
    ෭୊͕l'SPN+PVSOFZNBOUP.BTUFSz͔ΒlZPVSKPVSOFZUPNBTUFSZzͱগ͠มΘ͍ͬͯΔͷ΋ʮΞοϓσʔτʯ͔΋ʜ
    ୯ʹࠓͱͳͬͯ͸৬ਓͷϝλϑΝΛલʹग़ͣ͞ͱ΋ŲƅƁŞƄŽŵŖΛޠΕΔͱ͍͏͜ͱͩͱࢥ͏͚ΕͲʜ

    View Slide

  14. IUUQTHPUPQJBUFDICPPLDMVCFQJTPEFTQSBHNBUJDQSPHSBNNFSJO
    “Developers are changing the
    world. We have a duty to be
    mindful of the impact of what
    we do.
    DEFGHI<&JABCK2
    .'+L/-MN);GOJABCPQRSTLUVWCXYGZC

    View Slide

  15. $)"/(&%ংจͷدߘऀ
    w 8BSE$VOOJOHIBN͔Β
    w ύλʔϯ8JLJ91
    w ୈ൛ͷ·͕͖͑ 1SFGBDF
    ͸࢒͍ͬͯΔ͕ɺংจ 'PSFXPSE
    ͸ফ͑ͨʜ🥺
    w 4BSPO:JUCBSFL΁
    w $PEF/FXCJF $PNNBOE-JOF)FSPFT
    w ͪ͜Β΋ྑ͍ংจͰ͢🥰
    ʰύλʔϯɺ8JLJɺ91ʱ͸ిࢠॻ੶Ͱࠓ͙͢ಡΊΔ

    View Slide

  16. lʜϓϩάϥϛϯά͸ϓϩάϥϚʔͷੈքͷҰ෦Ͱ͔͋͠Γ·
    ͤΜɻຊॻ͸ͦͷੈքΛ୳ٻ͍ͯ͠ΔͷͰ͢ɻʜ͜ͷੈքʹ
    ೖͬͯൺֱతؒ΋ͳ͍ਓ͸ɺϓϩάϥϛϯάͱ͍͏ߦҝͰ͸
    ͳ͘ɺϓϩάϥϚʔʹͳΔͱ͍͏ϓϩηεʹ؆୯ʹѹ౗͞Ε
    ·͢ɻʜΑΓΑ͍ϓϩάϥϚʔʹͳΔͱ͍͏ϓϩηε͸ɺϓ
    ϩάϥϛϯάͷํ๏Λ஌͍ͬͯΔ͚ͩͰ͸ɺ͙͢ʹ͸ੜΈग़
    ͞Ε·ͤΜɻΑΓΑ͍ϓϩάϥϚʔʹͳΔͱ͍͏ҙਤͷ΋ͷ
    ͱɺண࣮ʹ࣮ફ͍ͯ͘͠ඞཁ͕͋ΔͷͰ͢ɻຊॻ͸ͦ͏͍ͬ
    ͨΑΓΑ͍ϓϩάϥϚʔʹͳΔͨΊͷΨΠυͱݴ͑·͢ɻ
    ڧௐ౳͸Ҿ༻ऀʹΑΔ

    View Slide

  17. 5*.&-&44࣌Λ௒͑ͨϓϥάϚςΟοΫͳಓ
    w ϓϩάϥϚʔͱ͍͏ΩϟϦΞͷʮશମʯΛࣔ͢
    w ظ଴ʹԠ͑Δ͜ͱlզʑ͸໰୊Λղܾ͢ΔͷͰ͢z
    w ʮίϯςΩετʯΛѻ͏ͨΊͷϚΠϯυηοτ
    w ϓϩάϥϛϯά͸ٕܳʜͨΏ·͵ݚᮎʜ
    w ୯ͳΔ࢓ࣄΛ௒͑ͨΩϟϦΞʜͦͯ͠ਓੜʜ
    w lʮԿΛͨ͠ΒΑ͍͔ʯͱ͍͏ͷ͸୭΋ڭ͑ͯ͘Ε·ͤΜɻ
    ͔͠͠զʑ͸ɺͲΕΛ͢΂͖͔ͱ͍͏ਫ਼ਆʹ͍ͭͯ

    ޠΔ͜ͱ
    がで
    ͖·͢ʜz վΊͯಡΜͰΈΔͱɺ೥΍ͬͯͯ΋·ͩ·ͩࢸΒͳ͍͜ͱ͹͔
    ΓͰ͢Ͷʜ

    View Slide

  18. ࢲͷϝϞϥϒϧɾ
    ΫΥʔτ ঞ

    ͜ΜͳΜͳΜ΅Ͱ΋΍Ε·͔͢ΒͶ

    View Slide

  19. lιϑτ΢ΣΞ͸ݐஙͱ͍͏ΑΓ΋Ψʔσχϯά
    ʢͭ·ΓίϯΫϦʔτͰ͸ͳ͘ɺΑΓ༗ػతͳ΋
    ͷʣʹ͍ۙͷͰ͢ɻϏδωεാͷਓʑ͸Ϗϧͷݐங
    ϝλϑΝʔ͕๬·͍͠ͱߟ͍͑ͯ·͢ɻʜ͔͠͠
    զʑ͕࡞Γग़ͦ͏ͱ͍ͯ͠Δͷ͸ߴ૚ϏϧͰ͸͋Γ
    ·ͤΜɻʜΨʔσχϯάͷϝλϑΝʔ͸ιϑτ΢Σ
    Ξ։ൃͷݱ࣮ʹ͔ͳΓ͍ۙ΋ͷͰ͢ɻʜ
    ڧௐ౳͸Ҿ༻ऀʹΑΔ

    ΞϨάβϯμʔͷύλʔϯϥϯήʔδ͸ɺݐஙΛΨʔσχϯάͷΑ͏ʹ΍Ζ͏ͱ
    ͨ͠ײ΋͋Δʜιϑτ΢ΣΞ͕ʮ༗ػతʯͳΒʮ͍͖͍͖ͱͨ͠ʯιϑτ΢ΣΞ
    ͱ͍͏΋ͷ΋ଘࡏ͠͏ΔͷͰ͸

    View Slide

  20. lզʑ͸ɺιϑτ΢ΣΞΛߏங͢Δ།Ұͷ
    ํ๏͸ΠϯΫϦϝϯλϧʹਐΊ͍ͯ͘ͱ͍
    ͏΋ͷͩͱڧ֬͘৴͍ͯ͠·͢ɻΤϯυ
    πʔΤϯυͷখ͞ͳػೳΛߏங͠ɺͦ͜
    ͔Β࡞ۀΛਐΊͳ͕Β໰୊ʹֶ͍ͭͯश͠
    ͍ͯ͘ͷͰ͢ɻ
    ͜Ε͔͠ͳ͍ΜͰ͢l8FTUSPOHMZCFMJFWFUIBUUIFPOMZ
    XBZUPCVJMETPGUXBSFJTJODSFNFOUBMMZz
    ڧௐ౳͸Ҿ༻ऀʹΑΔ

    View Slide

  21. ͜͜Ͱࢲͷ͓ؾʹೖΓ
    ͩͬͨୈ൛ͷংจΛ
    ୈ൛ͷংจͱൺ΂Δͱɺ·͋ஔ͖׵͑ΒΕͯ΋࢓ํͳ͍͔ͳʜ
    ࣌୅Αʜͱ͍͏ؾ࣋ͪʹͳͬͯ͠·͕ͬͨɺͰ΋΍ΔΜͩΑR

    View Slide

  22. lʜஶऀ͸
    プ
    ϩ
    グ
    ϥϜͷ࡞ΓํΛڭ͑ͯ͘Ε·͢ɻ͔͠΋ɺզʑ
    が
    ࣮ફ
    で
    ͖Δ΍Γํ
    で
    ڭ͑ͯ͘ΕΔͷ
    で
    ͢ɻ͜ͷͭ໨ͷจষ͸
    ͋ͳͨ
    が
    ࢥ͍ͬͯΔҎ্ʹॏཁͳҙຯΛ͍࣋ͬͯ·͢ɻʜ͜ͷ
    ຊ͸5JQΛूΊͨ
    だ
    ͚ͷ΋ͷ
    で
    ͸͋Γ·ͤΜɻ͜Ε͸༽ͷໟൽ
    Λ·ͱͬͨ
    パ
    λʔϯϥϯ
    ゲ
    ʔ
    ジ
    ͳͷ
    で
    ͢ɻͭ·ΓͦΕ
    ぞ
    Εͷ
    5JQ
    が
    ܦݧʹཪଧͪ͞Ε͓ͯΓɺ۩ମతͳΞ
    ド
    バ
    Πεͱͯ͠ه
    ड़͞ΕɺղܾࡦͷγεςϜΛߏ੒͢ΔΑ͏ɺޓ͍ʹؔ࿈
    づ
    ͚Β
    Ε͍ͯΔ͔Β
    で
    ͢ɻ͜͏͍ͬͨಛ௃ʹΑΓ
    パ
    λʔϯϥϯ
    ゲ
    ʔ
    ジ
    ͷ
    ֶशͱ࣮ફ
    が
    ՄೳʹͳΔͷ
    で
    ͢ɻ൴Β͸·͞ʹ
    パ
    λʔϯϥϯ
    ゲ
    ʔ
    ジ
    Λ࢖͍ͬͯΔͷ
    で
    ͢ɻʜ
    ڧௐ౳͸Ҿ༻ऀʹΑΔ

    View Slide

  23. lͻͱ͜ͱ
    で
    ݴ͑
    ば
    ɺ
    パ
    λʔϯͱ͸ղܾࡦ
    で
    ͋
    Γɺ
    パ
    λʔϯϥϯ
    ゲ
    ʔ
    ジ
    ͱ͸͓ޓ͍Λิڧ͠߹͏
    ղܾࡦͷγεςϜ ܥ
    ͳͷ
    で
    ͢
    ͜Ε͸ୈ൛ͷηΫγϣϯͷͭͳ͕Γͷάϥϑɻ͜ͷͥΜͿ͕ʮશ
    ମʯɻݸผͷϊʔυͱΤοδʹ΋lશମz͕͋Δ

    View Slide

  24. ͪͳΈʹୈ൛ͷηΫγϣϯಉ࢜ͷͭͳ͕Γ
    ୈ൛ΑΓ΋஦ͿΒΓΜͳηΫγϣϯ͕ݮͬͯ·ͨ͠

    View Slide

  25. ͜ͷάϥϑը૾ࣗମʹ͸ಛʹҙຯ
    ͸ͳ͍͚Ͳɺݟ͑ͳ͗͢͞Δͷ
    Ͱɺதԝ͋ͨΓΛগ֦͠େʜ

    View Slide

  26. lʜ͋ͳͨ
    が
    ݸ͔Βݸͷ5JQΛಡΈऴ͑Δࠒʹ͸ɺ͋ͳͨ
    ͷ؟લʹผ࣍ݩͷੈք
    が
    ޿
    が
    Γ࢝ΊΔ͸
    ずで
    ͢ɻզʑ͸ͦΕΛ
    28"/ŠŠແ໊ͷ࣭ 2VBMJUZ8JUIPVU"/BNF
    ͱݺΜ
    で
    ͍·͢ɻ͜ͷຊʹ͸͋ͳͨͷҙࣝʹછΈೖΓɺ͋ͳͨࣗ਎ͷྐ
    ͱͳΔ఩ཧ
    が
    ؚ·Ε͍ͯΔͷ
    で
    ͢ɻ͜Ε͸फڭͷק༠
    で
    ͸͋Γ
    ·ͤΜɻ୯ʹ
    ど
    ͏ͳΔ͔ͱ͍͏͜ͱΛ఻͍͑ͯΔ
    だ
    ͚
    で
    ͢ɻ͠
    ͔͠఻͓͑ͯ͘͜ͱʹΑͬͯɺΑΓޮ཰తʹͦΕΛ࣮ײ
    で
    ͖Δ
    ͸
    ずで
    ͢ɻ఩ཧ
    が
    ͋ΓɺͦΕΛ΋͍ͬͨ
    ぶ
    Β
    ず
    ʹ͍ࣔࠦͯ͠Δ

    が
    ͜ͷຊͷྑ͍ͱ͜Ζͳͷ
    で
    ͢ɻʜ
    ڧௐ౳͸Ҿ༻ऀʹΑΔ

    View Slide

  27. ࠓ೔ͷ͓͸ͳ͠
    w ʰୡਓϓϩάϥϚʔ ୈ൛
    Šख़ୡʹ޲͚ͨ͋ͳͨͷཱྀʱ͸
    l5IF1SBHNBUJD1SPHSBNNFSZPVSKPVSOFZUPNBTUFSZ
    UI"OOJWFSTBSZ&EJUJPOzͷ຋༁Ͱ͢ प೥ه೦൛

    w શ໘తʹݟ௚͞Εɺ͸ॻ͖ԼΖ͞Εͨվగ൛Ͱ͢ɻ࠷ॳͷ
    ൛ ΍৽૷൛
    Λཤम͞Εͨํ΋ະཤमͷํ΋ੋඇͲ͏ͧ
    w प೥ه೦൛ͰมΘͬͨͱ͜Ζ΍มΘͬͯͳ͍ͱ͜Ζͷେ࿮
    Λ͓఻͍͑ͨ͠ͱࢥ͍ͬͯ·͢
    ఻ΘΓʜ·͔ͨ͠ʜ

    View Slide

  28. ࠷ޙʹ΋͏ͻͱͭɺ

    ࢲͷϝϞϥϒϧɾ
    ΫΥʔτ
    ͜Ε͸ୈ൛ʹ΋࢒͍ͬͯͨͷͰɺ঺հ͠·͢

    View Slide

  29. l
    プ
    ϩ
    グ
    ϥϛϯ
    グ
    ͱ͸ٕܳ
    で
    ͢ɻͦͷ࠷΋७ਮͳ෦෼
    で
    ͸ɺ͋ͳͨ ͋Δ͍͸͋ͳͨͷϢʔ
    ザ
    ʔ

    が
    ΍Γ͍ͨ͜ͱ
    Λίϯ
    ピ
    ϡʔλʹ఻͑ΔͨΊͷ࡞ۀͱݴ͑·͢ɻͦ͠
    ͯɺ
    プ
    ϩ
    グ
    ϥϚʔ
    で
    ͋Δ͋ͳͨ͸ɺฉ͖खɺΞ
    ド
    バ
    Π
    ザ
    ʔɺ຋༁ऀɺಠࡋऀͱࣗΒͷ໾ׂΛԋ
    じ
    ෼͚Δͷ
    で
    ͢ɻͱΒ͑
    ど
    ͜Ζͷͳ͍ཁٻΛ͔ͭΈɺͦͷදݱखஈΛ
    ໛ࡧ͢Δ͜ͱ
    で
    ɺ୯ͳΔػց
    が
    ૉ੖Β͍͠ྗΛൃش
    で
    ͖
    ΔΑ͏ʹͳΓ·͢ɻ͋ͳͨ
    が
    ࢓ࣄΛจॻԽ͢Δ͜ͱ
    で
    ɺ
    पғͷਓͨͪ͸ͦͷ࢓ࣄΛཧղ
    で
    ͖ΔΑ͏ʹͳΓ·͢ɻ
    ڧௐ౳͸Ҿ༻ऀʹΑΔ

    View Slide

  30. lʜ·ͨɺ͋ͳͨ
    が
    ࢓ࣄΛ޼Έʹ૊ΈཱͯΔ͜ͱ
    で
    ɺଞ
    ͷਓͨͪ͸͞ΒͳΔ্Λ໨ࢦͤΔΑ͏ʹͳΔͷ
    で
    ͢ɻ͞
    Βʹɺ
    プ
    ϩ
    ジ
    ΣΫτͷ༰ࣻͳ͍εέ
    ジ
    ϡʔϧͱઓ͍ͳ
    が
    Βɺ͜ΕΒ͢
    べ
    ͯΛ͋ͳͨࣗ਎
    で
    ߦ͏ͷ
    で
    ͢ɻͭ·Γɺ
    ͋ͳͨ͸ຖ೔খ͞ͳح੻Λى͜͠ͳ
    が
    Β࢓ࣄΛਐΊ͍ͯ
    ͘ͱ͍͏Θ͚
    で
    ͢ɻ
    ͜Ε͸େมͳ࢓ࣄ
    で
    ͢ɻ
    ڧௐ౳͸Ҿ༻ऀʹΑΔ

    View Slide

  31. ͜Ε͸େมͳ࢓

    で
    ͢ɻ

    View Slide

  32. ͋ͳͨ͸ຖ೔খ͞ͳ
    ح੻Λى͜͠ͳ
    が
    Β
    ࢓ࣄΛਐΊ͍ͯ͘ͱ
    ͍͏Θ͚Ͱ͢ɻ

    View Slide

  33. !LBLVUBOJ'FC EFWTVNJ

    View Slide

  34. ͥͻ࡭͓ٻΊ͍ͩ͘͞R
    w ࢴ൛೚ҙͷ ΦϯϥΠϯ
    ॻళ͔Β
    w ిࢠॻ੶൛,JOEMF ͳͲ

    w 1%'1%'ୡਓग़൛ձͰങ͑·͢R
    ຊͱΩʔϘʔυ͸࣮࣭ແྉ
    IUUQTUBUTV[JOFDPNCPPLTUIFQSBHNBUJDQSPHSBNNFSFE

    View Slide

  35. !LBLVUBOJ'FC EFWTVNJ

    View Slide