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
490
富山発の個人開発サービスで日本中の学校の業務を改善した話
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
55
Kaigi on Rails 2024 〜運営の裏側〜
krpk1900
1
1.1k
【Kaigi on Rails 2024】YOUTRUST スポンサーLT
krpk1900
1
770
今日で分かる!カスタムコップの作り方
krpk1900
2
1.2k
SNS特有のタイムライン機能におけるYOUTRUSTの工夫点
krpk1900
0
44
技術的負債に対してカスタムコップでできること
krpk1900
0
590
サービスを軌道に乗せるまで一人でやったすべてのこと
krpk1900
20
7.9k
RailsアプリでのCQSの運用を支える仕組みと文化
krpk1900
0
100
Kaigi on Rails 2023 〜運営の裏側〜
krpk1900
0
980
Other Decks in Programming
See All in Programming
AIコーディング道場勉強会#2 君(エンジニア)たちはどう生きるか
misakiotb
1
270
GoのGenericsによるslice操作との付き合い方
syumai
3
710
Flutterで備える!Accessibility Nutrition Labels完全ガイド
yuukiw00w
0
140
Composerが「依存解決」のためにどんな工夫をしているか #phpcon
o0h
PRO
1
250
Discover Metal 4
rei315
2
110
GitHub Copilot and GitHub Codespaces Hands-on
ymd65536
1
140
C++20 射影変換
faithandbrave
0
560
Quand Symfony, ApiPlatform, OpenAI et LangChain s'allient pour exploiter vos PDF : de la théorie à la production…
ahmedbhs123
0
120
5つのアンチパターンから学ぶLT設計
narihara
1
140
dbt民主化とLLMによる開発ブースト ~ AI Readyな分析サイクルを目指して ~
yoshyum
2
240
明示と暗黙 ー PHPとGoの インターフェイスの違いを知る
shimabox
2
390
PicoRuby on Rails
makicamel
2
120
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
Side Projects
sachag
455
42k
Adopting Sorbet at Scale
ufuk
77
9.4k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
Building Applications with DynamoDB
mza
95
6.5k
A Modern Web Designer's Workflow
chriscoyier
694
190k
Agile that works and the tools we love
rasmusluckow
329
21k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.4k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
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 ࢁࢢཱਤॻؗ ਫެԂ ࢁࢢཱਤॻؗ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠