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
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
[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
52
Refinementsのメソッド定義を4000倍速くした話
alpacatc
5
1.8k
~Rubyと暮らし、OSSに貢献し、登壇する~ 半年間続けた「OSSやっていきの集い」の成果と学び
alpacatc
0
150
TracePointを活用してモデル名変更の負債解消をした話
alpacatc
2
1.8k
Railsのモデル名をすべて変更した話
alpacatc
0
480
新規サービス立ち上げを経て気づいたマネーフォワードの文化
alpacatc
0
1.7k
Attributes API 実践
alpacatc
4
2k
Mastodonを3倍早くしたい話
alpacatc
0
3k
AdminScriptで管理画面をスッキリさせる
alpacatc
3
720
Other Decks in Technology
See All in Technology
ABEMA の Datadog × OTel 基盤、 中から見るか? 外から見るか?
tetsuya28
0
110
個人の発見を、組織の知恵に 〜生成AI活用を"探索"から"組織の仕組み"へ〜
kintotechdev
3
1.1k
Agentic Web
dynamis
1
180
AI フレンドリーなエラー監視を TypeScript で実現する
shinyaigeek
2
270
Databricks における 生成AIガバナンスの実践
taka_aki
1
350
Oracle Cloud Infrastructure IaaS 新機能アップデート 2026/3 - 2026/5
oracle4engineer
PRO
1
220
もりもり新機能を一挙紹介! AgentCoreに入門して、AWS上にAIエージェントを構築しよう
minorun365
PRO
6
850
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
6
1.5k
社内 AI エージェント Synapse と セマンティックレイヤーの育て方
hiroakis
0
340
作って終わりにしない タイミーのセマンティックレイヤー育成の現在地
chanyou0311
0
350
React、まだ楽しくて草
uhyo
7
4.2k
ITエンジニアを取り巻く環境とキャリアパス / A career path for Japanese IT engineers
takatama
4
1.8k
Featured
See All Featured
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
Color Theory Basics | Prateek | Gurzu
gurzu
0
360
Google's AI Overviews - The New Search
badams
0
1k
Are puppies a ranking factor?
jonoalderson
1
3.5k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
How to train your dragon (web standard)
notwaldorf
97
6.7k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
200
Producing Creativity
orderedlist
PRO
348
40k
The Invisible Side of Design
smashingmag
302
52k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.9k
Ruling the World: When Life Gets Gamed
codingconduct
0
250
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
840
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ɻʮඞཁͳͷ͚ͩॻ͘ʯ ϢʔβʔΛΔɻͲΜͲΜֶΜͰࣦഊ͠Α͏ ΤϯδχΞͷࣄͷΛࣗͰ͛Α͏ ։ൃͰେࣄʹ͍ͯ͠Δ͜ͱɺ·ͱΊ