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
Terai Shogo
February 01, 2025
Programming
6
500
富山発の個人開発サービスで日本中の学校の業務を改善した話
BuriKaigi 2025 (
https://burikaigi.dev/
)で発表した内容です。
Terai Shogo
February 01, 2025
Tweet
Share
More Decks by Terai Shogo
See All by Terai Shogo
PRODUCT HISTORY CONFERENCE 2024の裏側
krpk1900
0
58
Kaigi on Rails 2024 〜運営の裏側〜
krpk1900
1
1.1k
【Kaigi on Rails 2024】YOUTRUST スポンサーLT
krpk1900
1
780
今日で分かる!カスタムコップの作り方
krpk1900
2
1.2k
SNS特有のタイムライン機能におけるYOUTRUSTの工夫点
krpk1900
0
45
技術的負債に対してカスタムコップでできること
krpk1900
0
590
サービスを軌道に乗せるまで一人でやったすべてのこと
krpk1900
20
7.9k
RailsアプリでのCQSの運用を支える仕組みと文化
krpk1900
0
110
Kaigi on Rails 2023 〜運営の裏側〜
krpk1900
0
980
Other Decks in Programming
See All in Programming
今ならAmazon ECSのサービス間通信をどう選ぶか / Selection of ECS Interservice Communication 2025
tkikuc
21
4k
Quand Symfony, ApiPlatform, OpenAI et LangChain s'allient pour exploiter vos PDF : de la théorie à la production…
ahmedbhs123
0
200
技術同人誌をMCP Serverにしてみた
74th
1
660
The Modern View Layer Rails Deserves: A Vision For 2025 And Beyond @ RailsConf 2025, Philadelphia, PA
marcoroth
2
480
Goで作る、開発・CI環境
sin392
0
240
AI時代のソフトウェア開発を考える(2025/07版) / Agentic Software Engineering Findy 2025-07 Edition
twada
PRO
92
31k
Result型で“失敗”を型にするPHPコードの書き方
kajitack
5
930
Rails Frontend Evolution: It Was a Setup All Along
skryukov
0
160
Agentic Coding: The Future of Software Development with Agents
mitsuhiko
0
110
ふつうの技術スタックでアート作品を作ってみる
akira888
1
890
AI駆動のマルチエージェントによる業務フロー自動化の設計と実践
h_okkah
0
170
Composerが「依存解決」のためにどんな工夫をしているか #phpcon
o0h
PRO
1
270
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
4 Signs Your Business is Dying
shpigford
184
22k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
Fireside Chat
paigeccino
37
3.5k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.1k
Automating Front-end Workflow
addyosmani
1370
200k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
830
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Building Adaptive Systems
keathley
43
2.7k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
6
310
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 ࢁࢢཱਤॻؗ ਫެԂ ࢁࢢཱਤॻؗ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠