Slide 1

Slide 1 text

tanukistack ϥΠϒίʔσΟϯά ভ.ͳΜ͔ #2 @macopy

Slide 2

Slide 2 text

୭ʁ macopy GitHub: mackee X: mackee_w, mixi2: macopy ໘ന๏ਓΧϠοΫ άϧʔϓ৘ใ෦ όοΫΤϯυ, SRE, ΞʔΩςΫτ ୅ද࡞: sqlla(ORM), tanukirpc(WAF)

Slide 3

Slide 3 text

ࠓ೔΍Δ͜ͱ • ϥΠϒίʔσΟϯά • ओʹtanukistack(tanukirpc + sqlla)ʹ͍ͭͯ • ͦͷଞ࠷ۙ࢖͍ͬͯΔπʔϧ(aqua, go-task)ͳͲ΋ղઆ • Ͱ͖Ε͹pgvectorΛ࢖ͬͨϕΫτϧݕࡧ·Ͱ΍Γ͍ͨ • sqlla v2.99.0-rc1ͷ໨ۄػೳͳͷͰ

Slide 4

Slide 4 text

͓୊: ϝϞாΞϓϦ • MarkdownͰॻ͚Δ • ग़དྷΔ͜ͱ • ৽ن࡞੒ • Ϧετදࣔ • ߋ৽ • ݕࡧ

Slide 5

Slide 5 text

ϨΪϡϨʔγϣϯ • ϑϩϯτΤϯυ͸ϞοΫσʔλͰಈ࡞͍ͯ͠Δঢ়ଶ • ·ͬ͞Β͔Βελʔτ • ͱݴ͍ͭͭɺgonewΛ࢖ͬͯtanukistackςϯϓϨʔτΛҾͬுͬͯ ͖·͢ • DB͸PostgreSQLͰ͢ • PgରԠ͸sqlla v2.99.0-rc1ͷ໨ۄػೳͳͷͰ(2ճ໨)

Slide 6

Slide 6 text

tanukistack • https://github.com/mackee/template-tanukistack • (ݱঢ়͸)ϓϩδΣΫτςϯϓϨʔτ • gonewͰҾͬு͖ͬͯ·͢

Slide 7

Slide 7 text

aqua • https://aquaproj.github.io/ • πʔϧͷόʔδϣϯϚωʔδϟʔ • ϏϧυࡁΈόΠφϦΛམͱ͖ͯͯ͠ల։͖ͯͯ͠$PATHʹೖΕΔ͜ ͱʹಛԽ͍ͯ͠Δ • ࠷ۙ͸Goͱ͔Bun΋͜ΕͰ؅ཧ͍ͯ͠·͢ • ࠓճ͸go-task΋؅ཧԼʹೖΕΔ

Slide 8

Slide 8 text

go-task/task • https://github.com/go-task/task • YAMLͰॻ͚ΔλεΫϥϯφʔ • Make fi leΑΓ໌ྎ(ݸਓͷҙݟͰ͢) • ࠓճ͸devαʔόʔ্ཱͪ͛ͱςετ࣮ߦʹར༻

Slide 9

Slide 9 text

go tool • Go1.24(2/11ϦϦʔε!!)Ͱ࢖͑ΔΑ͏ʹͳͬͨػೳ • ϥΠϒϥϦͰ͸ͳ͘ಠཱͨ͠ίϚϯυΛόʔδϣϯ؅ཧग़དྷΔΑ͏ʹ ͳΔ

Slide 10

Slide 10 text

tanukirpc • https://github.com/mackee/tanukirpc • ϧʔλʔ/WebΞϓϦέʔγϣϯϑϨʔϜϫʔΫ • Request/ResponseΛstructͰఆٛͯ͠ϋϯυϥʔͷҾ਺ʹ͓ͯ͘͠ ͱɺϑϨʔϜϫʔΫଆͰΤϯίʔυ/σίʔυΛ΍Δ • `validate`λάΛstruct fi eldʹॻ͘ͱόϦσʔγϣϯ΋ߦ͍·͢

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

tanukirpcͷTypeScriptΫϥΠΞϯτॻ͖ग़͠ • routerʹొ࿥͞Ε͍ͯΔΤϯυϙΠϯτͷRequest/ResponseΛܕఆ ٛʹ૊ΈࠐΜͩΫϥΠΞϯτΛੜ੒͢Δ

Slide 13

Slide 13 text

tanukiup • tanukirpcઐ༻ͷϗοτϦϩʔυ͘Μ • ໨ۄػೳͱͯ͠͸αʔόʔ࣮૷͞Ε͍ͯΔAPIύεҎ֎Λผͷαʔ όʔʹϦόʔεϓϩΩγ͢Δػೳ => ϗοτϦϩʔυ͕ޮ͘ UBOVLJSQD UBOVLJVQ WJUFEFWTFSWFS FUDʜ ϒϥ΢β API ͦͷଞ

Slide 14

Slide 14 text

sqlla • Go structͰఆٛͨ͠DBεΩʔϚ͔ΒΫΤϦϏϧμʔ΍ϚούʔͳͲ Λίʔυੜ੒͢ΔλΠϓͷORM • v2.99.0-rc1ͷ໨ۄػೳ • PostgreSQLରԠ pgvector΋ѻ͑ΔΑʂ • ϓϥάΠϯ

Slide 15

Slide 15 text

sqllaͷΫΤϦͷྫ

Slide 16

Slide 16 text

sqllaͷϓϥάΠϯػೳ • `//sqlla:plugin [plugin args…]` Ͱࢦఆ • sqlla͕༻͍Δ੩తղੳ+ίʔυੜ੒ػೳΛ࢖ͬͨςϯϓϨʔτʹΑΔίʔυੜ੒͕ಈ͘ • ૊ΈࠐΈpluginͷྫ • `table`: Data Access ObjectΛੜ੒ Insert/Bulk InsertΛߦ͏CreateϝιουͳͲ͕ੜ ͑Δ • `slice`: `type Articles []*Article` ͷΑ͏ͳܕΛఆٛ͠ɺ`IDS`ͷΑ͏ͳitem͔Βಛఆͷ ϑΟʔϧυͷΈΛऔΓग़ͨ͠ϝιου΋ੜ੒Ͱ͖Δ

Slide 17

Slide 17 text

ϥΠϒίʔσΟϯάத…

Slide 18

Slide 18 text

·ͱΊ • tanukistackΛ࢖͏ͱαʔόʔଆϘΠϥʔϓϨʔτίʔυͷهड़Λ࠷খ ݶʹͯ͠ϩδοΫʹूதͯ͠ॻ͚ΔΑʂ • Έͳ͞Μ͍͔͕Ͱ͔ͨ͠ʁ • ײ૝ͳͲΛ͓଴͓ͪͯ͠Γ·͢