Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
富山発の個人開発サービスで日本中の学校の業務を改善した話
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Terai Shogo
February 01, 2025
Programming
610
7
Share
富山発の個人開発サービスで日本中の学校の業務を改善した話
BuriKaigi 2025 (
https://burikaigi.dev/
)で発表した内容です。
Terai Shogo
February 01, 2025
More Decks by Terai Shogo
See All by Terai Shogo
PRODUCT HISTORY CONFERENCE 2024の裏側
krpk1900
0
120
Kaigi on Rails 2024 〜運営の裏側〜
krpk1900
1
1.6k
【Kaigi on Rails 2024】YOUTRUST スポンサーLT
krpk1900
1
1k
今日で分かる!カスタムコップの作り方
krpk1900
2
1.5k
SNS特有のタイムライン機能におけるYOUTRUSTの工夫点
krpk1900
0
75
技術的負債に対してカスタムコップでできること
krpk1900
0
750
サービスを軌道に乗せるまで一人でやったすべてのこと
krpk1900
21
8k
RailsアプリでのCQSの運用を支える仕組みと文化
krpk1900
0
160
Kaigi on Rails 2023 〜運営の裏側〜
krpk1900
0
1k
Other Decks in Programming
See All in Programming
2026年のソフトウェア開発を考える(2026/05版) / Software Engineering Scrum Fest Niigata 2026 Edition
twada
PRO
18
6.4k
〜バイブコーディングを超えて〜 チームで実験し続けたAI駆動開発
tigertora7571
0
180
GoogleCloudとterraform完全に理解した
terisuke
1
170
Structured Concurrency, Scoped Values and Joiners in the JDK 25 26 27
josepaumard
0
110
Running Swift without an OS
kishikawakatsumi
0
870
From Formal Specification to Property Based Test
ohbarye
0
520
Cache-moi si tu peux : patterns et pièges du cache en production - Devoxx France 2026 - Conférence
slecache
0
320
Making the RBS Parser Faster
soutaro
0
620
JAWS-UG横浜 #100 祝・第100回スペシャルAWS は VPC レスの時代へ
maroon1st
0
200
Spec Driven Development | AI Summit Vilnius
danielsogl
PRO
1
120
🦞OpenClaw works with AWS
licux
1
310
PicoRuby for IoT: Connecting to the Cloud with MQTT
yuuu
2
710
Featured
See All Featured
Design in an AI World
tapps
1
200
The World Runs on Bad Software
bkeepers
PRO
72
12k
Documentation Writing (for coders)
carmenintech
77
5.3k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Building Applications with DynamoDB
mza
96
7k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
330
Building Adaptive Systems
keathley
44
3k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.9k
Google's AI Overviews - The New Search
badams
0
990
The Cult of Friendly URLs
andyhume
79
6.9k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.3k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Transcript
ࣉҪলޗ !LSQL@EFW ࢁൃͷݸਓ։ൃαʔϏεͰ ຊதͷֶߍͷۀΛվળͨ͠ ੮ସ͑ϝʔΧʔ #VSJ,BJHJ
ࠓ͓͢Δ͜ͱ w ݸਓ։ൃͨ͠ʮ੮ସ͑ϝʔΧʔʯͱ͍͏αʔϏεͷ w اըͷ w ։ൃͷ w ϚʔέςΟϯάͷ
Έͳ͞Μʹ࣋ͪؼͬͯΒ͍͍ͨ͜ͱ w ࡞ͬͨαʔϏεΛͬͯΒ͑ΔΑ͏ʹ͢ΔͨΊʹͰ͖Δ͜ͱ
࣍ w ੮ସ͑ϝʔΧʔʹ͍ͭͯ w ։ൃ͠Α͏ͱࢥ͖͔͚ͬͨͬ w اըฤ w ։ൃฤ w
ϚʔέςΟϯάฤ w ·ͱΊ
੮ସ͑ϝʔΧʔʹ͍ͭͯ
੮ସ͑ϝʔΧʔʹ͍ͭͯ w ΤϨϕʔλʔϐον w ʮ੮ସ͑ϝʔΧʔʯ ʮۀͷޮԽʯΛΜͰ͍Δ ʮখதߴͷڭࢣʯʹͱͬͯ ʮۀΛޮԽ͢Δπʔϧʯʹଐ͓ͯ͠Γ ʮ੮ସ͑ʹ͔͔Δ࣌ؒͷॖʯ͕Ͱ͖Δɻ ʮΑ͋͘ΔϥϯμϜͳγϟοϑϧػೳͷΈͷ੮ସ͑ΞϓϦʯͱҧͬͯ
͜ͷαʔϏεʮڭࢣ͕੮ସ͑ͷͱ͖ʹ͍͍ͨػೳʯ͕͋Δɻ
࣮ࡍʹσϞͰ֬ೝ IUUQTTFLJHBFKQ
੮ସ͑ϝʔΧʔʹ͍ͭͯ w ϦϦʔεɿ݄ w Ϣʔβʔɿສਓ w ྦྷܭ ࣌ؒɺڭࢣ͕ࢠͲͨͪͱ͖߹͏࣌ؒΛ࡞Δ͜ͱ͕Ͱ͖ͨ
։ൃ͠Α͏ͱࢥ͖͔͚ͬͨͬ
ࣗݾհ w ࣉҪলޗ !LSQL@EFW w ࢁੜ·Ε ্ࢢொग़ w
ߴߍ·Ͱࢁͷֶߍ ˠใܥͷେֶ ˠ৽ଔͰࢁͷதֶߍڭһ ˠ౦ژͰ8FCΤϯδχΞ ɹ ݱࡏגࣜձࣾ:0653645Ͱ43&8FCΤϯδχΞ !LSQL@EFW
தֶߍͷڭһ࣌ w Ұॹʹಇ͍͍ͯͨڭһͷํΈΜͳଚܟͰ͖Δਓ͔ͨͪΓͩͬͨ w ͦΜͳਓ͕ͨͪࣗͷՈఉͷ࣌ؒΛͬͯΪϦΪϦΓཱ͍ͬͯΔڭҭͷ ݱΛͬͨ w ࣗͦΕ͕ڐͤͳͯ͘ͳΜͱ͔ղܾ͍ͨ͠ͱࢥͬͨ
தֶߍͷڭһ࣌ w େֶͰϓϩάϥϛϯάΛֶΜͰ͍ͨͷͰɺ ʮ͜Είϯϐϡʔλͷํ͕ಘҙͳ࡞ۀʯ ʮ͜Εਓ͕࣌ؒΛͬͯͬͨํ͕ྑ͍࡞ۀʯ ͱ͍͏͜ͱ͕͔Δঢ়ଶͰಇ͘͜ͱ͕Ͱ͖͍ͯͨ w ۀվળͷͨΊʹͰ͖Δ͜ͱ͔ΒͱࢥͬͯҰ൪࠷ॳʹઓͨ͠ͷ͕ ੮ସ͑ΞϓϦ w
ຊதͷڭһ͕ಉ͡՝Λ๊͍͑ͯΔ֬৴͕͋ͬͨͷͰɺ &YDFMͷϚΫϩͰͳ͘8FCαʔϏεͱͯ͠࡞Γ͍ͨͱࢥͬͨ
اըฤ
ߏͷഎܠ w ͦͦΈͳ͞Μɺֶੜ࣌ʹ੮ସ͑ͬͯڭࢣ͕ܾΊ͍ͯ·͔ͨ͠ʁ w ͘͡Ҿ͖ͰͰ͖ͨΒҰ൪ྑ͍ w ͔͠͠ɺྀ͕ඞཁͰڭࢣ͕ܾΊͨํ͕ྑ͍γνϡΤʔγϣϯ͋Δ w ߟྀ͠ͳ͍ͱ͍͚ͳ͍݅ͨ͘͞Μ w
ͦΕΛຬ্ͨͨ͠ͰҰఆͷϥϯμϜੑ͕ඞཁ w ৽͍͠ਓͱྡʹͳΓ͍ͨ w ৽͍͠ॴʹҠಈ͍ͨ͠
ػೳͱ࣮͍ͯͨ݅͠͠ w ੮ସ͑ͷͱ͖ʹڭࢣ͕ߟྀ͍ͯ͠Δ݅Λͯ͢ػೳͱ࣮͍ͯͨ͠͠ w "͞Μͱ#͞ΜΛ͚ۙͮΔ w "͞Μͱ#͞ΜΛ͢ w ࠷લྻʹݻఆ w
લ͔ΒྻҎʹݻఆ w உঁͷҐஔΛݻఆ w ࠷ޙྻʹݻఆ w ಛఆͷ࠲੮ʹݻఆ w ൝Ͱ͚Δ w ೖΕସ͑ͯௐͰ͖Δ
αʔϏε໊ΛܾΊͨ w ͔ͬ͜Α͞ΑΓ͔Γ͢͞Λॏࢹ w 4&0ʹڹ͘Α͏ʹʮ੮ସ͑ʯؚΊ͍ͨ w ʮ੮ସ͑ϝʔΧʔʯʹܾఆ
ྑ͔ͬͨ͜ͱᶃ w ؾ͔ͮͳ͍͏ͪʹࣗͰউखʹ࡞Γ্͛ͯ͠·ͬͨ՝Ͱͳ͘ɺ ؒҧ͍ͳ࣮͘ࡏ͢Δ ݪମݧ ʹରͯ͠Ξϓϩʔνͨ͜͠ͱ
ྑ͔ͬͨ͜ͱᶄ w ଞͷαʔϏεʹͳ͍͜ͷαʔϏεͰ͔͠Ͱ͖ͳ͍͜ͱΛ࡞ͬͨ͜ͱ
։ൃฤ
ٕज़બఆ w ϑϩϯτΤϯυ͚ͩͰ݁ͤ͞Δํ w ໊ࣈ͚ͩͱ͍͑ɺੜెͷݸਓใΛΒͳ͍αʔϏεʹ༬͚Δ͜ͱ ෆ҆ w ࣏ࣗମʹΑͬͯɺσʔλΛอଘ͢ΔࡍࠃͷαʔόʔʹݶΔͱ͍͏ نଇΛઃ͚͍ͯΔͱ͜Ζ͋ͬͨ w
ίϯϙʔωϯτϑϨʔϜϫʔΫυϥοάυϩοϓͷϥΠϒϥϦ͕͋Δ ͜ͱΛ֬ೝͯ͠7VFKTʹܾఆ
࣮ͨͩͷ)5.-ϑΝΠϧ
શͳݟΓൃं w l)FMMP XPSMEz͔Β͚͍ͯͬͨ͠͠
։ൃ w ࠲੮ΛΫϦοΫ͢Δͱ৭͕ มΘΔΑ͏ʹͨ͠
։ൃ w ࠲੮શମͷେ͖͞Λ ม͑ΒΕΔΑ͏ʹͨ͠
։ൃ w ͚ۙͮΔੜెͱ͢ੜెΛೖྗͰ͖ΔΑ͏ʹͨ͠ w ೖྗ͢Δͱ࣍ͷϑΥʔϜΛࣗಈͰදࣔ͢ΔΑ͏ʹͨ͠
։ൃ w ࠷લྻʹݻఆ͢Δ੮ସ͑Λ࣮ͨ͠
։ൃ w ͕݅ͳ͍ੜెͷ੮ସ͑Λ࣮ͨ͠
։ൃ w ࠷લྻʹݻఆ͢Δ੮ସ͑ػೳͱɺ͕݅ͳ͍ੜెͷ੮ସ͑ػೳΛ݁߹ͨ͠
։ൃ w ࠷લྻʹݻఆ͢Δ݅ͱɺੜెಉ࢜Λ͚ۙͮΔ݅Λಉ࣌ʹຬͨͤΔΑ͏ ʹͨ͠
։ൃ w உঁΛࢦఆͰ͖ΔΑ͏ʹͨ͠ w ੜెಉ࢜Λ͢ػೳΛ࣮ͨ͠ w ࠷લྻʹݻఆ͢Δ݅ͱɺੜెಉ࢜Λ͚ۙͮΔ݅ͱɺੜెಉ࢜Λ͢ ݅Λಉ࣌ʹຬͨͤΔΑ͏ʹͨ͠
։ൃ w ੑผΛݻఆͰ͖ΔΑ͏ʹͨ͠ w લ͔ΒྻɺޙΖ͔Βྻɺ࠷ޙྻʹݻఆͰ͖ΔΑ͏ʹͨ͠
։ൃ w ੜెΛಛఆͷ࠲੮ʹݻఆͰ͖ΔΑ͏ʹͨ͠
։ൃ w ࠲੮Λυϥοάͯ͠ೖΕସ͑ΒΕΔΑ͏ʹͨ͠ w ΧʔιϧͷมߋΞχϝʔγϣϯͷ࣮ͳͲʹΑͬͯ6*Λվળͨ͠
։ൃ w ੮ସ͑ͷΞχϝʔγϣϯΛ࣮ͨ͠
։ൃ w Πϝʔδ͍ͯͨ͠৭ʹมߋͨ͠ w ݅ೖྗϑΥʔϜΛαΠυϝχϡʔʹදࣔ͢ΔΑ͏ʹͨ͠
։ൃ w ৭Λมߋͨ͠ w αΠυόʔΛดͯ͡શʹӅͣ͞ʹখ͘͞දࣔ͢ΔΑ͏ʹमਖ਼ͨ͠
։ൃ ϦϦʔε w ϦϦʔεͨ͠
։ൃ ϦϦʔεޙ w งғؾ͕҉͍ͱ͍͏ҙݟΛΒͬͯ৭Λมߋͨ͠
࣮ࡍʹڭࢣʹͬͯΒͬͯݕূ w ࣮ࡍʹ੮ସ͑ϝʔΧʔΛͬͯΒ͍ɺޙΖ͔Βݟͤͯ͞Βͬͨ w ԿΛҰ൪࠷ॳʹ͢Εྑ͍͔໎͍ͬͯͨΓ w ໊લΛೖྗ͢Δલʹʮ੮ସ͑ʯϘλϯΛԡͨ͠Γ͍ͯͨ͠ w ։ൃऀ͕ఆ͍ͯͨͨ͠Γલ͕ϢʔβʔʹͱͬͯͨΓલͰͳ͍ ͜ͱ͕͔ͬͨ
։ൃ ϦϦʔεޙ w νϡʔτϦΞϧΛ࣮ͨ͠
։ൃ ϦϦʔεޙ w λϒϨοτͰ͑ΔΑ͏ʹͯ͠΄͍͠ͱ͍͏ҙݟΛΒͬͯରԠͨ͠
ྑ͔ͬͨ͜ͱᶅ w ຊԻΛ͑ͯ͘ΕΔΑ͏ͳਓʹͬͯΒ࣮ͬͯࡍʹݕূͨ͜͠ͱ
ϚʔέςΟϯάฤ
੮ସ͑ϝʔΧʔͷత w ҰਓͰଟ͘ͷڭһͷํʹೝͯͬͯ͠Β͏͜ͱ w 4&0 w ޱίϛ
2JJUBͷهࣄΛߘ w ͍͖ͳΓڭһʹΞϓϩʔν͍͠ w ·ͣผνϟωϧ͔Β։࢝ w ະܦݧΤϯδχΞͷϙʔτϑΥϦΦͱͯ͠ΛूΊͨ
ϝσΟΞͷهࣄʹͳͬͨ w 2JJUBͷهࣄ͕͖͔͚ͬͰϝσΟΞͷهࣄʹͳͬͨ w ͜ΕͰҰؾʹϢʔβʔͱೝ͕ߴ·ͬͨ w શʹӡ͕ྑ͔ͬͨ݁Ռ͕ͩɺ͜ͷνϟϯεΛ׆͔͞ͳ͍खͳ͍
͜ͷ࣌Ͱͷ՝ w ಧ͚͍ͨରϢʔβʔڭࢣ͕ͩɺಧ͍͍ͯΔ૬ख΄ͱΜͲ͕ ΤϯδχΞͱ͍͏ w ϝσΟΞهࣄΛछʹͯ͠ɺڭҭؔऀͷతͳΞϓϩʔνΛܭը w ࠔͬͯௐͨͱ͖ʹͬͯΒ͑ΔΑ͏ʹɺ4&0Λ৳͢͜ͱΛඪʹ
OPUFͷهࣄΛߘ w ͜ͷޙͷ׆ಈͷछͱͯ͠OPUFͷهࣄΛߘ w ڭҭؔऀʹΞϓϩʔν͢Δͱ͖ɺٕज़తͳͰͳ͘ ͍͕͞Δͱߟ͑ͨͨΊ
%.Λૹͬͯతͳએ׆ಈ w ਓҎ্ͷڭҭܥΠϯϑϧΤϯαʔʹ9ͷ%.Ͱએ w Θ͍͔͠ͳͱͨΊΒ͏ؾ͕࣋ͪ͋ͬͨɺࠔ͍ͬͯΔਓʹͬͯ Β͑Εઈରʹॿ͚ʹͳΔͱ֬৴͕͋ͬͨͷͰ࣮ߦͨ͠ w ࣮ࡍʹڞײ֦ͯ͠ࢄͯ͘͠ΕͨΓɺݱઢͷΞυόΠεΛ͘ΕΔਓ͕ ଟ͔ͬͨ
ϒϩΨʔͷํʹએ w ϒϩάͰൃ৴͍ͯ͠Δڭҭؔऀʹએ w Կਓ͔ͷਓ͕هࣄΛॻ͍ͯ͘Εͨ
ϓϨεϦϦʔεͷґཔ w μϝݩͰͭͷϝσΟΞʹରͯ͠ݸਓͰϓϨεϦϦʔεͷґཔ w ͪ͜Βฦ৴͢Βདྷͣ
গͣͭ͠4&0্͕͕͖ͬͯͨ w ࠷ॳ3FGFSSBM͕ϝΠϯ͕ͩͬͨɺ0SHBOJD4FBSDIͷׂ߹͕૿Ճ
ͱ͏ͱ͏4&0ͰҐΛ֫ಘ w ʮ੮ସ͑ʯͷݕࡧ݁ՌͰҐΛ֫ಘ w ͔Βݱࡏ·ͰͣͬͱҐΛҡ࣋ w ࣌੮ସ͑ϝʔΧʔؔ࿈ͷϖʔδͰ্ҐΛಠ
͜ͷ࣌Ͱͷਐḿঢ়گ w ੮ସ͑ʹࠔͬͨਓ͕ࣗવͱ੮ସ͑ϝʔΧʔʹͨͲΓண͘Έ͕ Ͱ͖͖ͯͨ
ϓϨεϦϦʔεͷґཔઌ͔Βฦ৴ w ϓϨεϦϦʔεΛ͓ئ͍ͨ͠ϝσΟΞ͔Βϲ݄ӽ͠ʹฦ৴͕དྷͨ w খֶؗͷͭͷهࣄͰܝࡌ
ߨԋձͷొஃґཔ w ຊ࠷େͷڭҭ/10๏ਓͰɺڭࢣڭҭҕһձͷํΛରʹߨԋ
ॻ੶ʹܝࡌ w ڭࢣͷཱ͓ͪωλͱͯ͠ॻ੶ʹܝࡌ
ࣗવͱͨ͘͞ΜͷϒϩάͰհ͞Ε࢝Ίͨ w ґཔͳ͠Ͱଟ͘ͷϒϩάͰհ͞ΕΔΑ͏ʹͳͬͨ
ࢠͲͨͪʹೝ͞ΕΔΑ͏ʹ w ڭһͷํ͔Βಧ͍࣮ͨࡍͷֶڃࢽ
ଟ͘ͷֶߍͰΘΕΔΑ͏ʹͳͬͨ w ࣌Ұॹʹಇ͍͍ͯͨڭࢣͷํ͔Βϝοηʔδ͕ಧ͍ͨ
ྑ͔ͬͨ͜ͱᶆᶇ w ։ൃ͢Δ͜ͱͱಉ͔ͦ͡ΕҎ্ʹɺೝΛ֦େ͢ΔͨΊʹྗΛ ೖΕͨ͜ͱ w ϚʔέςΟϯάࢪࡦԿ͕ͨΔ͔͔Βͳ͍ͷͰɺͱʹ͔͘ߦಈྔΛ ૿͍͔ͯͭ͠ժ͕ग़Δ͔͠Εͳ͍छΛࢃ͖ଓ͚ͨ͜ͱ
·ͱΊ
·ͱΊ w ڭࢣઢͰ੮ସ͑ʹඞཁͳػೳΛ࣮ͨ͠੮ସ͑ΞϓϦΛ։ൃͯ͠ ڭࢣͷۀΛޮԽͨ͠ w ࡞Δͱ͜ΖͰऴΘΒͣʹϚʔέςΟϯάʹྗΛೖΕͨ͜ͱͰ ଟ͘ͷڭࢣʹೝͯ͠Β͍ಧ͚Δ͜ͱ͕Ͱ͖ͨ
ͬͯΒ͏ͨΊʹͬͯྑ͔ͬͨ͜ͱ ᶃ ؒҧ͍ͳ࣮͘ࡏ͢Δ ݪମݧ ʹରͯ͠Ξϓϩʔνͨ͜͠ͱ ᶄ ଞͷαʔϏεʹͳ͍͜ͷαʔϏεͰ͔͠Ͱ͖ͳ͍͜ͱΛ࡞ͬͨ͜ͱ ᶅ ຊԻΛ͑ͯ͘ΕΔΑ͏ͳਓʹͬͯΒ࣮ͬͯࡍʹݕূͨ͜͠ͱ ᶆ
։ൃ͢Δ͜ͱͱಉ͔ͦ͡ΕҎ্ʹೝΛ֦େ͢ΔͨΊʹྗΛೖΕͨ͜ͱ ᶇ ϚʔέςΟϯάࢪࡦԿ͕ͨΔ͔͔Βͳ͍ͷͰɺͱʹ͔͘ߦಈྔΛ ૿ͯ͠ɺ͍͔ͭժ͕ग़Δ͔͠Εͳ͍छΛࢃ͖ଓ͚ͨ͜ͱ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠
൪֎ฤ
ࢁͰ͓͢͢Ίͷ͓࢈ w ·͢ͷ͢͠ w ϗλϧΠΧͷԭ௮͚
ࢁͰ͓͢͢Ίͷ͓࢈ w ·͢ͷ͢͠ w ϗλϧΠΧͷԭ௮͚
ࢁӺͰങ͑Δ
·͢ͷ͢͠ͷൺֱ w Ϩʔμʔνϟʔτʹͳ͍ͬͯΔ
͓͢͢Ίͷ·͢ͷ͢͠ w ݬ ˡ͜Ε͕͓͢͢Ίʂ w ·͕͢δϡʔγʔͰߴڃײ w ݯ w
͓ͦΒ͘࠷༗໊ͳϒϥϯυ w ·͢ͷ͢͠ҙ֎ͱফඅظݶ͕͍ w ৗԹͰ͘Β͍อͭ ݬ ݯ
ࢁӺۙ͘ͷ͓͢͢Ίͷεϙοτ w ਫެԂ w ࢁࢢཱਤॻؗ ਫެԂ ࢁࢢཱਤॻؗ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠