Slide 1

Slide 1 text

@yoshitaro-yoyo 2022/10/03 最近の学びを簡単に @yoshitaro-yoyo 2022/12/03 最 近 の 学 び を 簡 単 に ご 紹 介 Ver2 最 近 の 学 び を 簡 単 に ご 紹 介 Ver2

Slide 2

Slide 2 text

͜͜࠷ۙͰֶΜͩ͜ͱʹ͍ͭͯ·ͱΊͯ·͢ɻ ೥໨੒ΓཱͯΤϯδχΞ͕ࢥ͏ࣄͰ͢ʂ ༏͍͠໨ͰݟͯͶʂ ͋͘·ͰɺݸਓͷҙݟͰ͢ʂ ͋͑ͯஅఆతͳ෺ݴ͍ʹͯ͠·͢ʂ ٞ࿦ͷωλʹͰ΋ͳͬͨΒخ͍͠Ͱ͢ʂ

Slide 3

Slide 3 text

͍ΖΜͳݪଇ ந৅Խ ΠϯλʔϑΣΠεʹ͍ͭͯɹ σβΠϯύλʔϯ Ϋϥεࢦ޲ͳΦϒδΣΫτࢦ޲ݴޠ ؔ਺ܕϓϩάϥϛϯά (Pݴޠ ܖ໿ɾ๷ޚతϓϩάϥϛϯά ςετൃ૝ ΢ΥʔλʔϑΥʔϧʹ͍ͭͯ Կࣄ΋τϨʔυΦϑ 最近の学び(2022/08〜2022/09)

Slide 4

Slide 4 text

40-*% ΧϓηϧԽͱએݴܕϓϩάϥϛϯά ෆมɾڞมɾ൓ม )551ͱ63* )551ϝιου 30"ͱ3&45 ҆શੑͱႈ౳ੑ εΩʔϚۦಈ։ൃͱ"1*ઃܭ ϓϩμΫτ΍૊৫ͷจ຺Λ೺Ѳ͢Δ ·͡Ξ΢τϓοτ͸େࣄ 最近の学び(2022/10〜2022/11)

Slide 5

Slide 5 text

@yoshitaro-yoyo 2022/10/03 最近の学びを簡単に 40-*% 40-*%

Slide 6

Slide 6 text

୯Ұ੹೚ݪଇʢ4JOHMF3FTQPOTJCJMJUZ1SJODJQMFʣ ։์ด࠯ݪଇʢ0QFODMPTFEQSJODJQMFʣ Ϧείϑͷஔ׵ݪଇʢ -JTLPWTVCTUJUVUJPOQSJODJQMFʣ ΠϯλʔϑΣΠε෼཭ݪଇʢ*OUFSGBDFTFHSFHBUJPOQSJODJQMFʣ ґଘੑٯసݪଇʢ%FQFOEFODZJOWFSTJPOQSJODJQMFʣ 1. SOLID(以下の原則の頭⽂字)

Slide 7

Slide 7 text

୯Ұ੹೚ݪଇɿ୯Ґ͋ͨΓʹ΋ͨ͢໨త͸ʮҰݸͷΈʯ ։์ด࠯ݪଇɿ࢓༷มߋ࣌ʹطଘͷίʔυΛม͑Δͳ Ϧείϑͷஔ׵ݪଇɿ਌Ͱग़དྷΔ͜ͱ͸ࢠͰ΋ग़དྷͳ͔Μ ΠϯλʔϑΣΠε෼཭ݪଇɿΫϥΠΞϯτʹ͸ඞཁͳܖ໿ͷΈ ґଘੑٯసݪଇɿํ਑ΛܾΊΔ্ҐϞδϡʔϧʹґଘ͢Δ 1. SOLID(以下の原則の頭⽂字)

Slide 8

Slide 8 text

@yoshitaro-yoyo 2022/10/03 最近の学びを簡単に ΧϓηϧԽ ͱએݴܕ ϓϩάϥϛϯά ΧϓηϧԽ ͱએݴܕ ϓϩάϥϛϯά

Slide 9

Slide 9 text

ΧϓηϧԽ͸ผʹΦϒδΣΫτࢦ޲ʢ001ʣಛ༗Ͱ͸ͳ͍ HFUUFSɾTFUUFS͸ΧϓηϧԽΛഁյ͢Δ HFUUFS͸ແ͖͘͠Εͳ͍͔ʁTFUUFS͸׬શʹμϝͩ HFUUFSͷঢ়ଶͷແҋͳࢀর΍ϩδοΫ෼ࢄ͸Ξϯνύλʔϯ ϑΟʔϧυͷ஋Λม͚͑ͨΕ͹ผͷΠϯελϯεΛ࡞੒͠Α͏ ͜Ε͚ͩͰ͸ෆे෼ɻʮཔΊɺਘͶΔͳʯ એݴܕͱ͸ظ଴͢Δ݁Ռ΍۩ମతͳঢ়ଶΛએݴʢ఻͑Δʣ͜ͱ HFUUFSͰࢀরͨ͠஋ΛݩʹॲཧΛߦ͏ͱ໋ྩܕʹͳΔ 42-͸͝Γ͝Γͷએݴܕ 2. カプセル化と宣⾔型プログラミング

Slide 10

Slide 10 text

2. カプセル化と宣⾔型プログラミング

Slide 11

Slide 11 text

@yoshitaro-yoyo 2022/10/03 最近の学びを簡単に ෆมɾ ڞมɾ൓ม ෆมɾ ڞมɾ൓ม

Slide 12

Slide 12 text

ܧঝʹ͓͚ΔεʔύʔɾαϒؒͰͷܕͷޓ׵ੑύλʔϯ 3. 不変・共変・反変 B extends Aͷ࣌ B と A ͷαϒλΠϓؔ܎͸ɺҎԼͷΑ͏ʹͳΔ 
 ෆมɿ਌ࢠؔ܎͕ͳ͘ͳΔ A a = B b;͕ෆڐՄ ڞมɿA a = B b;͕ڐՄ͞ΕΔɻී௨ ൓มɿB b = A a;͕ڐՄ͞ΕΔɻ൓ରɻ͍ͭ࢖͏Μͩʁ

Slide 13

Slide 13 text

3. 不変・共変・反変 不変の使い所 「複数の型を持つオブジェクトが ⼊り混じることを制限したい時」 共変の使い所 「サブタイピングしたい時」 反変の使い所 「わからん!誰か教えてくれ!」 B extends Aͷ࣌ ෆมɿ ਌ࢠؔ܎͕ͳ͘ͳΔ A a = B b;͕ෆڐՄ ڞมɿ A a = B b;͕ڐՄ͞ΕΔ ൓มɿ B b = A a;͕ڐՄ͞ΕΔ

Slide 14

Slide 14 text

3. 不変・共変・反変 public class Main { public static void main(String[] args) { List list = new ArrayList(); . list.add(“A”); list.add(“B”); list.add(123); list.add(“C”); . System.out.println(list); } } 4USJOHͱJOU͕ೖΓࠞ͡Δͱ$MBTT$BTU&YDFQUJPO

Slide 15

Slide 15 text

3. 不変・共変・反変 public class Main { public static void main(String[] args) { List list = new ArrayList<>(); . list.add(“A”); list.add(“B”); list.add(123); // ͜ͷ࣌఺ͰΤϥʔग़Δɹ ɹ list.add(“C”); . System.out.println(list); } } -JTUܕม਺ͷMJTUʹ4USJOH͔͠ೖΕΕͳ͘ͳΔ +BWBͷҾ਺͸ෆมੑͷͨΊ0CKFDUܕ΋ೖΕΕͳ͍

Slide 16

Slide 16 text

@yoshitaro-yoyo 2022/10/03 最近の学びを簡単に 30"ͱ3&45 30"ͱ3&45

Slide 17

Slide 17 text

3&45͸ ΞʔΩςΫνϟͰͳ͘Ұ࿈ͷઃܭ৚݅Ͱ͔͠ͳ͍ 3&45GVM "1*͸ 30" ͷ࣮૷ɺ30" ʹଇΓ3&45GVM "1* ͸࣮૷͞ΕΔ Ϧιʔεࢦ޲ΞʔΩςΫνϟ 30"ɿ3FTPVSDF0SJFOUFE"SDIJUFDUVSF 30"͸ϦιʔεΛத৺ʹߟ͑ΔΞʔΩςΫνϟ Ϧιʔεͱ͸8FC্ʹଘࡏ͢Δ͋ΒΏΔ৘ใͷ͜ͱ Ϧιʔε͸গͳ͘ͱ΋63* Λඞͣͭ࣋ͭ 30" ʹ͓͚Δͭͷಛੑ ΞυϨεՄೳੑɾ઀ଓੑɾ౷ҰΠϯλʔϑΣʔεɾεςʔτϨεੑ 4. ROAとREST

Slide 18

Slide 18 text

@yoshitaro-yoyo 2022/10/03 最近の学びを簡単に 3&45ͱ63* 3&45ͱ63*

Slide 19

Slide 19 text

શͯ͸ʓʓͰ͋Δɺͱ͍͏ந৅ԽΛ3&45͸࣮ݱ 3&45͸ʮશͯ͸63*Ͱ͋Δʯͱఆٛ͢Δ ౷Ұ͞ΕͨΠϯλʔϑΣΠε (&5ˠऔಘɾ1045ˠ࡞੒ɾ165ˠߋ৽ɾ%&-&5&ˠ࡟আ ଟछଟ༷ͳϦιʔε΁ͷૢ࡞ɾॲཧΛͭͷಈࢺͰදݱɾ੍໿ ଟ༷ͳ΋ͷΛಉ͡࢓૊ΈͰදͨ͢Ίʹڧ੍͍໿ɾந৅ԽΛߦ͍࣮ߦͰ͖ Δ͜ͱΛগͳ͘͠ɺ౷Ұతʹఏڙ͢ΔࣄͰ࠶ར༻ੑɾ࠶઀ଓੑΛߴΊΔ 5. RESTとURI

Slide 20

Slide 20 text

@yoshitaro-yoyo 2022/10/03 最近の学びを簡単に )551 ϝιου )551 ϝιου

Slide 21

Slide 21 text

6. HTTPメソッド

Slide 22

Slide 22 text

6. HTTPメソッド 1045ϝιουͱ165ϝιουͷҧ͍

Slide 23

Slide 23 text

ϦΫΤετ͕Ϧιʔεʹରͯ͠ͲΜͳૢ࡞Λ͢Δ͔αʔόʹ఻͑Δ৘ใ )551ϝιου͸ඪ४Խ͞Ε͍ͯΔͨΊੈքதͰ࢖༻Ͱ͖Δ ҆શੑͱႈ౳ੑ͕ߟྀ͞ΕΔඞཁ͕͋Δ 6. HTTPメソッド

Slide 24

Slide 24 text

@yoshitaro-yoyo 2022/10/03 最近の学びを簡単に ҆શੑ ͱႈ౳ੑ ҆શੑ ͱႈ౳ੑ

Slide 25

Slide 25 text

7. 安全性と冪等性

Slide 26

Slide 26 text

7. 安全性と冪等性 ֤)551ϝιουͷ҆શੑͱႈ౳ੑͷରԠ

Slide 27

Slide 27 text

҆શੑΛຬͨ͞ͳ͍(&5 
 [GET] /notifications/1/open
 ௨஌Λطಡʹߋ৽͢Δ"1*ɿϦιʔεͷঢ়ଶΛมߋ͢ΔͨΊ҆શੑҧ൓ɻ 
 ҆શͱ͸Ϧιʔεͷঢ়ଶΛมߋ͠ͳ͍ͱ͍͏ࣄɻ 
 ႈ౳ੑΛຬͨ͞ͳ͍%&-&5& 
 [DELETE] /notifications/latest
 ࠷৽ͷ௨஌Λ࡟আɿ࠷৽ͱ͍͏ఆ͔ٛΒ͢Δͱɺ࠷৽Λ࡟আͨ͠৔߹ɺ࡟আ͢Δલͷ Ұͭલ͕࣍ͷ࠷৽ʹͳΓɺಉ͡ϦΫΤετΛߦͳͬͨ৔߹ɺ࣍ʑͱʮ࠷৽ʯͷϦιʔ ε͕࡟আɻႈ౳ͱ͸ಉ͡ϦΫΤετΛߦͬͯ΋݁Ռ͕มΘΒͳ͍ࣄɻႈ౳ੑҧ൓ɻ 7. 安全性と冪等性

Slide 28

Slide 28 text

@yoshitaro-yoyo 2022/10/03 最近の学びを簡単に εΩʔϚ ۦಈ։ൃ ͱ"1*ઃܭ εΩʔϚ ۦಈ։ൃ ͱ"1*ઃܭ

Slide 29

Slide 29 text

εΩʔϚͱ͸8FC"1*ͷߏ଄ఆٛ͠ɺఆΊΒΕͨܗࣜͰهड़ͨ͠΋ ͲͷΤϯυϙΠϯτ͕ɾͲΜͳϦΫΤετΛड෇͚Δͷ͔ɾͲΜͳϨεϙϯεΛฦ͢ͷ͔ εΩʔϚۦಈ։ൃͱ͸ʰ"1*εΩʔϚΛ·ͣॳΊʹఆٛɺͦΕΛجʹ 
 ɹαʔόʔଆ "1* ͱΫϥΠΞϯτଆ ը໘ ͷ։ൃΛฒߦͯ͠ਐΊΔ͜ͱʱ "1*ͷεΩʔϚΛ࠷ॳʹఆٛ͠ɺ྆ऀؒͰ"1*ͷ࢓༷ͷζϨΛ๷͙ εΩʔϚ͔Βɺ*'ͱ"1*υΩϡϝϯτࣗಈੜ੒ɾελϒαʔό࡞੒ 8. スキーマ駆動開発

Slide 30

Slide 30 text

αʔόଆΛ࣮૷͔ͯ͠ΒΫϥΠΞϯτଆΛ࣮૷ɻ݁߹͢Δͱෆ۩߹͕͋ ΔͷͰͦΕͧΕ௚ͯ͠ɺςετͯ͠ϦϦʔεɻ 8. スキーマ駆動開発とAPI設計 IUUQTCMPHPOLOJOKBTDIFNB@ fi STU@EFWFMPQNFOU

Slide 31

Slide 31 text

·ͣҰॹʹ૬ஊ͠ͳ͕ΒεΩʔϚΛఆٛͯ͠ɺεΩʔϚΛ΋ͱʹύϥϨϧ ʹ࣮૷ɻ݁߹ͯ͠΋΄ͱΜͲෆ۩߹͸ݟ౰ͨΒͳ͍ͷͰͦͷ··ϦϦʔεͱ ͳΓɺೝࣝҧ͍΍݁߹࣌ͷτϥϒϧ͕গͳ͘ͳΔͷͰՃ଎͕ظ଴Ͱ͖·͢ɻ 8. スキーマ駆動開発とAPI設計 IUUQTCMPHPOLOJOKBTDIFNB@ fi STU@EFWFMPQNFOU

Slide 32

Slide 32 text

@yoshitaro-yoyo 2022/10/03 最近の学びを簡単に ϓϩμΫτ ΍૊৫ͷจ຺ Λ೺Ѳ͢Δ ϓϩμΫτ ΍૊৫ͷจ຺ Λ೺Ѳ͢Δ

Slide 33

Slide 33 text

ΤϯδχΞʹͳͬͯࢀՃͨ͠ϓϩδΣΫτ͸̑ݸ ίʔσΟϯά΋໪࿦େࣄ͚ͩͲɺͦ͜ʹࢸΔաఔͷํ͕େࣄ͔΋ ͜ͷ࣌఺Ͱద੾ͳઃܭ͕Կॲ·ͰͰ͖ͯΔ͔ʹ΋ΑΔ͚Ͳ ʮͲͷ༷ʹʯʮ͍ͭ࡞Δ͔ʁʯΑΓ΋ʮԿΛʯʮԿނʯʮ୭ͷͨΊʹʯ ͜͜ͷೝ͕ࣝͣΕͨ··ίʔσΟϯάͯ͠΋େମख໭Δ େࣄͳͷ͸ಉ͡໨ඪΛݟ͍ͯΔͷ͔ʁ 9. プロダクトや組織の⽂脈を把握する

Slide 34

Slide 34 text

@yoshitaro-yoyo 2022/10/03 最近の学びを簡単に ·͡ Ξ΢τϓοτ ͸େࣄ

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

ΞϐʔϧͰ͖Δ υΩϡϝϯτ࡞੒ೳྗ ݴޠԽೳྗɺ෼ੳྗɺຊ࣭ΛݟۃΊΔೳྗ ΩϟονΞοϓྗͱϙςϯγϟϧྗ ਓͱͳΓɺϓϩάϥϛϯά͕޷͖ͳΜͩͳʔͬͯࢥͬͯ΋Β͑Δ ϚδͰษڧʹͳΔ స৬࣌΋ੌ͘ධՁ͞ΕΔ աେධՁ΋͞ΕΔʢා͍ʣ 10. まじアウトプットは⼤事!

Slide 37

Slide 37 text

@yoshitaro-yoyo 2022/10/03 最近の学びを簡単に ͝੩ௌ ͋Γ͕ͱ͏ ͍͟͝·ͨ͠