Slide 1

Slide 1 text

net/httpͰͭ͘Δ HTTPϧʔλʔࣗ࡞ೖ໳ @bmf_san
 Go Conference 2021 Autumn

Slide 2

Slide 2 text

• Kenta Takeuchi • @bmf_san • גࣜձࣾϚΫΞέ/Re-ArchitectureνʔϜ • ֤छΤϯδχΞืूதͰ͢ʂ ࣗݾ঺հ

Slide 3

Slide 3 text

ࠓ೔࿩͢͜ͱ GoͰඪ४ύοέʔδ͚ͩΛ࢖ͬͯɺ
 HTTPϧʔλʔΛࣗ࡞͢Δ࿩

Slide 4

Slide 4 text

͜Μͳํʹ • Goͷॳֶऀ • GoͰԿ͔࡞ͬͯΈ͍ͨਓ • ݴޠ໰ΘͣHTTPϧʔλʔΛ࡞ͬͯΈ͍ͨਓ

Slide 5

Slide 5 text

ࣗ࡞ͯ͠ΈΔͱɾɾ • net/httpͷཧղΛਂΊΔ͖͔͚ͬʹ • ΞϧΰϦζϜͱσʔλߏ଄ΛֶͿ͖͔͚ͬʹ • ੈͷதͷHTTPϧʔλʔͷߏ଄͕େମ෼͔ΔΑ͏ʹ • ࣗ࡞ͷϧʔλʔͰΞϓϦΛ࡞ΕΔΑ͏ʹ

Slide 6

Slide 6 text

લఏ • Goͷجຊతͳจ๏ͷཧղ • Կ͔͠ΒͷHTTPϧʔλʔΛ࢖ͬͨ͜ͱ͕͋Δ

Slide 7

Slide 7 text

Zenn Book

Slide 8

Slide 8 text

໨࣍ • HTTPϧʔλʔͱ͸Կ͔ • HTTPϧʔλʔͷσʔλߏ଄ • net/httpʹ͍ͭͯ஌͓͖͍ͬͯͨ͜ͱ • ࣮૷ͷ঺հ

Slide 9

Slide 9 text

HTTPϧʔλʔͱ͸ • ϦΫΤετ͞ΕΔURLͱϨεϙϯεͷॲཧΛ݁ͼ͚ͭΔ

Slide 10

Slide 10 text

HTTPϧʔλʔͷσʔλߏ଄ • ϦΫΤετ͞ΕΔURLͱϨεϙϯεͷॲཧ Λ݁ͼ͚ͭΔ URLͱॲཧ͕Ϛοϐϯά͞Εͨ σʔλ͕ඞཁ

Slide 11

Slide 11 text

HTTPϧʔλʔͷσʔλߏ଄ • URLͷ֊૚ → ໦ߏ଄ͱͯ͠දݱ

Slide 12

Slide 12 text

• ໦ʹϊʔυΛ௥Ճ͢Δ㲈ϧʔτͷఆٛ • ໦͔ΒϊʔυΛ୳ࡧ͢Δ㲈ϧʔςΟϯά HTTPϧʔλʔͷσʔλߏ଄

Slide 13

Slide 13 text

net/httpʹ͍ͭͯ஌͓͖͍ͬͯͨ͜ͱᶃ • ʮϚϧνϓϨΫαʯͱʮϋϯυϥʯ • ϚϧνϓϨΫα • ϦΫΤετͷURLΛొ࿥ࡁΈͷύλʔϯͱরΒ͠߹Θͤ ͯɺ࠷΋Ϛον͢ΔϋϯυϥΛݺͼग़͢ • ϋϯυϥ • ϦΫΤετʹԠͨ͡ॲཧΛฦ͢

Slide 14

Slide 14 text

net/httpʹ͍ͭͯ஌͓͖͍ͬͯͨ͜ͱᶄ • ϚϧνϓϨΫα • Ͳ͜ͰɺͲͷΑ͏ʹϋϯυϥΛొ࿥͍ͯ͠Δͷ͔ • Ͳ͜ͰɺͲͷΑ͏ʹURLͱύλʔϯͷϚονϯάΛߦ͍ͬͯ Δ͔ • ϋϯυϥ • ͲͷΑ͏ʹϋϯυϥΛ࣮૷͢Δͷ͔ • HandleɺHandlerɺHandleFuncɺHandlerFuncΛ஌Δ • ຬ͍ͨͨ͠ΠϯλʔϑΣʔε͸Կ͔

Slide 15

Slide 15 text

• ͜ͷܗͷHTTPαʔόʔͷίʔυΛಡΈղ͘ͷ͕͓͢͢Ί ίʔυϦʔσΟϯά

Slide 16

Slide 16 text

• ϝιουϕʔεͷϧʔτఆٛΛαϙʔτ͚ͨͩ͠ͷ؆қతͳϧʔλʔͷ࣮૷ • ґଘ͸ඪ४ύοέʔδͷΈ ࣮૷ https://github.com/bmf-san/introduction-to-golang-http-router-made-with-net-http/

Slide 17

Slide 17 text

Github https://github.com/bmf-san/goblin

Slide 18

Slide 18 text

ؔ࿈ϦϯΫ ݻఆπΠʔτʹͿΒԼ͛ͯ͋Γ·͢

Slide 19

Slide 19 text

͋Γ͕ͱ͏Go͍͟·ͨ͠ʂ