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
alpaca-tc
September 24, 2015
Technology
0
3.5k
[pixiv summer boot camp] pixivFACTORY
pixivで開催した大学生向けインターンで、学生向け講義として話しました。
自分の作ったpixivFACTORYについてと、開発を通じて大事だったことを簡単に盛り込みました。
alpaca-tc
September 24, 2015
Tweet
Share
More Decks by alpaca-tc
See All by alpaca-tc
TracePointを活用してモデル名変更の負債解消をした話
alpacatc
2
1.4k
Railsのモデル名をすべて変更した話
alpacatc
0
390
新規サービス立ち上げを経て気づいたマネーフォワードの文化
alpacatc
0
1.5k
Attributes API 実践
alpacatc
4
1.9k
Mastodonを3倍早くしたい話
alpacatc
0
2.8k
AdminScriptで管理画面をスッキリさせる
alpacatc
3
620
Railsのための負債の減らし方
alpacatc
0
400
Other Decks in Technology
See All in Technology
AWSマルチアカウント統制環境のすゝめ / 20250115 Mitsutoshi Matsuo
shift_evolve
0
120
JAWS-UG20250116_iOSアプリエンジニアがAWSreInventに行ってきた(真面目編)
totokit4
0
170
今から、 今だからこそ始める Terraform で Azure 管理 / Managing Azure with Terraform: The Perfect Time to Start
nnstt1
0
250
0→1事業こそPMは営業すべし / pmconf #落選お披露目 / PM should do sales in zero to one
roki_n_
PRO
1
2.1k
デジタルアイデンティティ技術 認可・ID連携・認証 応用 / 20250114-OIDF-J-EduWG-TechSWG
oidfj
2
720
三菱電機で社内コミュニティを立ち上げた話(MAWS-UG)
kurebayashi
1
370
ドメイン駆動設計の実践により事業の成長スピードと保守性を両立するショッピングクーポン
lycorptech_jp
PRO
15
2.7k
Git scrapingで始める継続的なデータ追跡 / Git Scraping
ohbarye
5
570
[IBM TechXchange Dojo]Watson Discoveryとwatsonx.aiでRAGを実現!座学①
siyuanzh09
0
120
ABWGのRe:Cap!
hm5ug
1
140
東京Ruby会議12 Ruby と Rust と私 / Tokyo RubyKaigi 12 Ruby, Rust and me
eagletmt
3
1.1k
【JAWS-UG大阪 reInvent reCap LT大会 サンバが始まったら強制終了】“1分”で初めてのソロ参戦reInventを数字で振り返りながら反省する
ttelltte
0
160
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
4
190
Testing 201, or: Great Expectations
jmmastey
41
7.2k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
Facilitating Awesome Meetings
lara
51
6.2k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
Writing Fast Ruby
sferik
628
61k
Music & Morning Musume
bryan
46
6.3k
What's in a price? How to price your products and services
michaelherold
244
12k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.6k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.1k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
52k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
3
250
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ɻʮඞཁͳͷ͚ͩॻ͘ʯ ϢʔβʔΛΔɻͲΜͲΜֶΜͰࣦഊ͠Α͏ ΤϯδχΞͷࣄͷΛࣗͰ͛Α͏ ։ൃͰେࣄʹ͍ͯ͠Δ͜ͱɺ·ͱΊ