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
5
430
富山発の個人開発サービスで日本中の学校の業務を改善した話
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
35
Kaigi on Rails 2024 〜運営の裏側〜
krpk1900
1
900
【Kaigi on Rails 2024】YOUTRUST スポンサーLT
krpk1900
1
640
今日で分かる!カスタムコップの作り方
krpk1900
2
980
SNS特有のタイムライン機能におけるYOUTRUSTの工夫点
krpk1900
0
35
技術的負債に対してカスタムコップでできること
krpk1900
0
530
サービスを軌道に乗せるまで一人でやったすべてのこと
krpk1900
20
7.8k
RailsアプリでのCQSの運用を支える仕組みと文化
krpk1900
0
77
Kaigi on Rails 2023 〜運営の裏側〜
krpk1900
0
960
Other Decks in Programming
See All in Programming
JavaOne 2025: Advancing Java Profiling
jbachorik
1
180
Lambdaの監視、できてますか?Datadogを用いてLambdaを見守ろう
nealle
2
920
AWS Step Functions は CDK で書こう!
konokenj
5
990
Introduction to C Extensions
sylph01
3
150
10년 개발한 프로젝트. 애자일 업무 조직에서 모듈화 했던 경험을 공유합니다.
winterlovedev
PRO
0
570
Google Cloudとo11yで実現するアプリケーション開発者主体のDB改善
nnaka2992
1
200
Webフレームワークとともに利用するWeb components / JSConf.jp おかわり
spring_raining
1
170
Jasprが凄い話
hyshu
0
260
Modern Angular with Signals and Signal StoreNew Rules for Your Architecture @bastacon 2025 in Frankfurt
manfredsteyer
PRO
0
180
令和トラベルにおけるコンテンツ生成AIアプリケーション開発の実践
ippo012
1
200
Devin入門 〜月500ドルから始まるAIチームメイトとの開発生活〜 / Introduction Devin 〜Development With AI Teammates〜
rkaga
6
2.1k
Go言語での実装を通して学ぶ、高速なベクトル検索を支えるクラスタリング技術/fukuokago-kmeans
monochromegane
1
110
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Making Projects Easy
brettharned
116
6.1k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
30
4.7k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
14
1k
The World Runs on Bad Software
bkeepers
PRO
67
11k
For a Future-Friendly Web
brad_frost
176
9.6k
Docker and Python
trallard
44
3.3k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
2.9k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
8
680
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
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 ࢁࢢཱਤॻؗ ਫެԂ ࢁࢢཱਤॻؗ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠