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
[pixiv summer boot camp] pixivFACTORY
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
alpaca-tc
September 24, 2015
Technology
3.7k
0
Share
[pixiv summer boot camp] pixivFACTORY
pixivで開催した大学生向けインターンで、学生向け講義として話しました。
自分の作ったpixivFACTORYについてと、開発を通じて大事だったことを簡単に盛り込みました。
alpaca-tc
September 24, 2015
More Decks by alpaca-tc
See All by alpaca-tc
新米DPEが取り組む 開発者体験の向上
alpacatc
0
39
Refinementsのメソッド定義を4000倍速くした話
alpacatc
5
1.7k
~Rubyと暮らし、OSSに貢献し、登壇する~ 半年間続けた「OSSやっていきの集い」の成果と学び
alpacatc
0
130
TracePointを活用してモデル名変更の負債解消をした話
alpacatc
2
1.8k
Railsのモデル名をすべて変更した話
alpacatc
0
470
新規サービス立ち上げを経て気づいたマネーフォワードの文化
alpacatc
0
1.7k
Attributes API 実践
alpacatc
4
2k
Mastodonを3倍早くしたい話
alpacatc
0
3k
AdminScriptで管理画面をスッキリさせる
alpacatc
3
710
Other Decks in Technology
See All in Technology
AI前提とはどういうことか
daisuketakeda
0
180
2026年度新卒技術研修 サイバーエージェントのデータベース 活用事例とパフォーマンス調査入門
cyberagentdevelopers
PRO
6
7.4k
"まず試す"ためのDatabricks Apps活用法 / Databricks Apps for Early Experiments and Validation
nttcom
1
230
新規サービス開発におけるReact Nativeのリアル〜技術選定の裏側と実践的OSS活用〜
grandbig
2
180
【Findy FDE登壇_2026_04_14】— 現場課題を本気で解いてたら、FDEになってた話
miyatakoji
0
880
Cortex Codeでデータの仕事を全部Agenticにやりきろう!
gappy50
0
350
LLM とプロンプトエンジニアリング/チューターを定義する / LLMs and Prompt Engineering, and Defining Tutors
ks91
PRO
0
330
NgRx SignalStore: The Power of Extensibility
rainerhahnekamp
0
190
システムは「動く」だけでは 足りない - 非機能要件・分散システム・トレードオフの基礎
nwiizo
25
8k
DIPS2.0データに基づく森林管理における無人航空機の利用状況
naokimuroki
0
190
レガシーシステムをどう次世代に受け継ぐか
tachiiri
0
330
Data Enabling Team立ち上げました
sansantech
PRO
0
300
Featured
See All Featured
Practical Orchestrator
shlominoach
191
11k
Mobile First: as difficult as doing things right
swwweet
225
10k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.1k
Done Done
chrislema
186
16k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
199
73k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.1k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
100
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
880
Transcript
None
ɾTwitter @alpaca_taichou, Github: @alpaca-tc ɾझຯɿؙཱྀɾࢄาɾ͓ञɾvim ɾݴޠ VimScript / Ruby /
PHP / JavaScript ɾϒϥοΫاۀେ͖ ࣗݾհ ͍ͬ͘Μ ʢੴҪ ߒ೭ʣ
ࣗݾհ ͍ͬ͘Μ ʢੴҪ ߒ೭ʣ ৽نࣄۀ։ൃνʔϜΤϯδχΞɹBOOTH / pixivFACTORY ɾTwitter @alpaca_taichou, Github:
@alpaca-tc ɾझຯɿؙཱྀɾࢄาɾ͓ञɾvim ɾݴޠ VimScript / Ruby / PHP / JavaScript ɾϒϥοΫاۀେ͖
ɾpixivFACTORYͱʁ ɾ։ൃͰେࣄͩͬͨ͜ͱ ίʔυΛॻ͔ͳ͍ ϢʔβʔΛΔ ʮΤϯδχΞʯͷࣄΛ͢Δ ͢͜ͱ ɾٕज़తͳpixivFACTORYͷ ͞ͳ͍͜ͱ
pixivFACTORYͱʁ
ɾࠓ2݄ʹϦϦʔεͨ͠αʔϏε ɾ ΠϥετҰຕͰάοζ͕࡞ΕΔʂ ɾ ॳظඅ༻ɾࡏݿϦεΫͳ͠ pixivFACTORYͱʁ
pixivFACTORYͱʁ ղܾ͔ͨͬͨ͠ͳʹ͔ʁ ͱ͋Δࣄ࣮… άοζΛͭ͘Δͷ͍͠
ɾෳࡶͳϑΝΠϧܗࣜ ɾ໎࿏ͷΑ͏ͳUI ɾిɾFAXɾϝʔϧͳͲɺ ɹ࣌Εͳ࿈བྷखஈ pixivFACTORYͱʁ ղܾ͔ͨͬͨ͠ͳʹ͔ʁ ɾϩοτͷน ɾͱʹ͔͓͕͔͔ۚ͘Δ http:// www.wave-
inc.co.jp/data/
pixivFACTORYͱʁ ղܾ͔ͨͬͨ͠ͳʹ͔ʁ →ը૾ҰຕͰOK →ॳظඅ༻ແྉɾΦϯσϚϯυ →ແྉͰൢചՄೳ http:// www.wave- inc.co.jp/data/
pixivFACTORYͱʁ ղܾ͔ͨͬͨ͠ͳʹ͔ʁ DEMO ͜Ε͔ΒΞΠςϜΛ࡞ͬͯΈ·͢
pixivFACTORYͱʁ ϦϦʔε࣌ͷϢʔβʔ͞ΜͷԠ
pixivFACTORYͱʁ ϦϦʔε࣌ͷϢʔβʔ͞ΜͷԠ ͔ͳΓධʂʂʂ
։ൃͰେࣄʹ͍ͯ͠Δ͜ͱ ʮίʔυΛॻ͔ͳ͍ʯ ϢʔβʔΛΔ ʮΤϯδχΞʯͷࣄΛ͠Α͏
ʮίʔυΛॻ͔ͳ͍ʯ ϢʔβʔΛΔ ʮΤϯδχΞʯͷࣄΛ͠Α͏ ։ൃͰେࣄʹ͍ͯ͠Δ͜ͱ
“You ain’t gonna need it” YAGNI ίʔυΛ࣮͘͢͢ΔͨΊʹ࠷ྑ͍ํ๏ɺ ͋·ΓίʔυΛॻ͔ͳ͍͜ͱͰ͋Δɻ ։ൃͰେࣄʹ͍ͯ͠Δ͜ͱ ʮίʔυΛॻ͔ͳ͍ʯ
ɾͦͷ͏ͪඞཁʹͳΔ͔͠Εͳ͍ػೳ͍Βͳ͍ ɾίʔυΛݮΒ͢͜ͱʹ࣌ؒΛ͔͚Δ ɾແବͳ࣌ؒΛΘͳ͍ɻ͍ͭͰյ͍͢͠ɻ ɾকདྷඞཁͳ͜ͱɺඞཁʹͳͬͨ࣌ʹΔ
ʮίʔυΛॻ͔ͳ͍ʯ ਓੜੵΈॏͶͩͱ୭Ͱࢥ͍ͬͯΔΑ͏ͩɻ΅͘ٯʹɺੵΈΒ͖͢ ͩͱࢥ͏ɻࡒ࢈ࣝɺ͑Ε͑Δ΄Ͳɺ͔͑ͬͯਓؒࣗ༝͞Λ ࣦͬͯ͠·͏ɻ ूத͢ΔͨΊͷݪଇɺੜ࢈తͰͳ͘ͳͬͨաڈΛࣺͯΔ͜ͱͰ͋Δ ͋ͳͨͷਓੜͷ࣌ؒوॏͰ͋Δɻ͋ͳͨͷೳྗ୯ʹίʔυΛॻͨ͘ΊͰ ͳ͘ɺݱ࣮ͷʹूத͢ΔͨΊʹ͏͖Ͱ͋Δ YAGNI υϥοΨʔ Ԭຊଠ
։ൃͰେࣄʹ͍ͯ͠Δ͜ͱ
ʮίʔυΛॻ͔ͳ͍ʯ ͋ͬͯΑ͍ػೳ ࠓͳͯ͘ͳΒͳ͍ػೳ Έͳ͞Μͷوॏͳ10ؒ ❌ ⭕ YAGNIΛҙࣝͯ͠ίʔυΛॻ͜͏ ։ൃͰେࣄʹ͍ͯ͠Δ͜ͱ
ʮίʔυΛॻ͔͘ͳ͍ʯ ϢʔβʔΛΔ ʮΤϯδχΞʯͷࣄΛ͠Α͏ ։ൃͰେࣄʹ͍ͯ͠Δ͜ͱ
ϢʔβʔΛΔ ɾʢଟ͘ͷ߹ʣސ٬ۙʹ͍Δ ɾఏڙ͍ͯ͠ΔՁ͕ਖ਼͍͔͠ɾސ٬ΛΔ ɾΠϯλϏϡʔͳΓɺࡶஊͳΓɺ༡ͤͯΈΔͳΓ ɹɹɾ͍ͭ͏ʁࣅͨΑ͏ͳαʔϏεʁͳΜͰΞϨΘͳ͍ͷʁ ɾؒҧ͍ʹ͍ͪૣ͘ؾͮͨ͘ΊʹΔ ɾۙͳϢʔβʔΛͭ͘Ζ͏ ɹɹɾ͍ͭͰײ৮Λ͔֬ΊΒΕΔɻ ɹɹɾѱޱΛݴͬͯΒ͑ΔϢʔβʔوॏɻ ɹɹɾࣗͷΒͳ͍ࣝ(ΫϦΤΠλʔํ໘)ʹ͍ͭͯฉ͚Δ
ɾੵۃతʹώτͱҿΈʹߦͬͯαʔϏεΛΘͤͯΈΔ ֎ʹग़Α͏ ։ൃͰେࣄʹ͍ͯ͠Δ͜ͱ
ެԂʹࢠ࿈Εɺ ҿΈʹαϥϦʔϚϯɺ ΪϟϥϦʔʹΫϦΤΠλʔɺ ձࣾͷதɺ֗ʹग़Εɺ͍ΖΜͳਓ͕͍Δɻ Έͳ͞Μͷوॏͳ10ؒ ҰϢʔβʔʹฉ͍ͯ ࣦഊ͠Α͏ ։ൃͰେࣄʹ͍ͯ͠Δ͜ͱ ϢʔβʔΛΔ
ʮίʔυΛॻ͔ͳ͍ʯ ϢʔβʔΛΔ ʮΤϯδχΞʯͷࣄΛ͢Δ ։ൃͰେࣄʹ͍ͯ͠Δ͜ͱ
ʮΤϯδχΞʯͷࣄΛ͢Δ ίʔυΛॻ͘͜ͱ ΤϯδχΞͷࣄͬͯͳʹʁ ։ൃͰେࣄʹ͍ͯ͠Δ͜ͱ
ʮΤϯδχΞʯͷࣄΛ͢Δ ίʔυΛॻ͘͜ͱ ΤϯδχΞͷࣄͬͯͳʹʁ ❌ ϢʔβʔͷΛղܾ͢ΔͨΊʹ WebαʔϏεΛͭ͘Δ͜ͱ ։ൃͰେࣄʹ͍ͯ͠Δ͜ͱ
ʮΤϯδχΞʯͷࣄΛ͢Δ Βͷࣄडୗ։ൃͰͳ͍ɻ ɾϢʔβʔαϙʔτۀ ɾΫϦΤΠλʔͱͷΓͱΓ ɾҹۀऀͱͷΓͱΓ ɾిରԠ ɾWebαΠτΛͭ͘ΔͷҰ෦ɻ ձࣾͷՌιʔείʔυαʔόʔͰͳ͘ Ϣʔβʔͷͱ͜Ζʹ͔͠ͳ͍ɻ ։ൃͰେࣄʹ͍ͯ͠Δ͜ͱ
ʮΤϯδχΞʯͷࣄΛ͢Δ ɾαʔϏεʹؔ͋Δ͜ͱͯ͢ΤϯδχΞ͕ؔΘͬͯྑ͍ ɾώτγεςϜΑΓॊೈɻࣗಈԽ͠ͳͯ͘Ͱ͖Δ͜ͱ͍ͬͺ͍ɻ ɾֶͼ͕ૣ͍ ɾϢʔβʔମݧγεςϜ͚ͩ͡Όͳ͍ ɹɾྫ͑ҹσʔλ͕ζϨ͍ͯͨΒ࠷ѱ ɾͳʹΑΓɺϢʔβʔͱ͢Δ͜ͱࣗͷϞνϕʔγϣϯʹͳΔ ίʔυॻ͚ͯ ͨΓલ ։ൃͰେࣄʹ͍ͯ͠Δ͜ͱ
ʮࢲίʔυॻ͘ͷ͕ࣄ͔ͩΒɺผʹ͍͍Ͱ͠ΐʯ Έͳ͞Μͷوॏͳ10ؒ ࣗͰࣗͷΤϯδχΞͷΛ ͙͙ͬͱ͛ͯཉ͍͠ ❌ ʮΤϯδχΞʯͷࣄΛ͢Δ ։ൃͰେࣄʹ͍ͯ͠Δ͜ͱ
YAGNIɻʮඞཁͳͷ͚ͩॻ͘ʯ ϢʔβʔΛΔɻͲΜͲΜֶΜͰࣦഊ͠Α͏ ΤϯδχΞͷࣄͷΛࣗͰ͛Α͏ ։ൃͰେࣄʹ͍ͯ͠Δ͜ͱɺ·ͱΊ