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
Hatena::Letの式年遷宮
Search
Takafumi ONAKA
PRO
November 25, 2021
Technology
0
320
Hatena::Letの式年遷宮
Hatena Engineer Seminar #17 はてラボの裏側編
https://hatena.connpass.com/event/230919/
Takafumi ONAKA
PRO
November 25, 2021
Tweet
Share
More Decks by Takafumi ONAKA
See All by Takafumi ONAKA
強いチームと開発生産性
onk
PRO
40
16k
ADRを運用して3年経った僕らの現在地
onk
PRO
21
21k
1文字エイリアスのすゝめ
onk
PRO
0
41
すこやかなサービス運営のための PWG (Performance Working Group)
onk
PRO
0
700
オブザーバビリティの Primary Signals
onk
PRO
2
5.2k
Cache Stampede
onk
PRO
1
2.1k
ORM - Object-relational mapping
onk
PRO
2
3.6k
デュアルトラックアジャイルとの向き合い方
onk
PRO
5
12k
技術記事を書く&楽しむチームの作り方
onk
PRO
0
1.7k
Other Decks in Technology
See All in Technology
Amazon S3 Tables + Amazon Athena / Apache Iceberg
okaru
0
270
より良い開発者体験を実現するために~開発初心者が感じた生成AIの可能性~
masakiokuda
0
160
3月のAWSアップデートを5分間でざっくりと!
kubomasataka
0
120
4/17/25 - CIJUG - Java Meets AI: Build LLM-Powered Apps with LangChain4j (part 2)
edeandrea
PRO
0
100
Webアプリを Lambdaで動かすまでに考えること / How to implement monolithic Lambda Web Application
_kensh
7
1.3k
フロントエンドも盛り上げたい!フロントエンドCBとAmplifyの軌跡
mkdev10
2
270
AWS全冠芸人が見た世界 ~資格取得より大切なこと~
masakiokuda
5
5.9k
AIコーディングの最前線 〜活用のコツと課題〜
pharma_x_tech
3
1.1k
[2025年4月版] Databricks Academy ラボ環境 利用開始手順 / Databricks Academy Labs Onboarding
databricksjapan
0
130
20250411_HCCJP_AdaptiveCloudUpdates.pdf
sdosamut
1
110
大AI時代で輝くために今こそドメインにディープダイブしよう / Deep Dive into Domain in AI-Agent-Era
yuitosato
1
360
OSSコントリビュートをphp-srcメンテナの立場から語る / OSS Contribute
sakitakamachi
0
1.4k
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
9
750
How to Think Like a Performance Engineer
csswizardry
23
1.5k
Rebuilding a faster, lazier Slack
samanthasiow
80
8.9k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Automating Front-end Workflow
addyosmani
1369
200k
Bash Introduction
62gerente
611
210k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.3k
GraphQLとの向き合い方2022年版
quramy
46
14k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
GraphQLの誤解/rethinking-graphql
sonatard
71
10k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.1k
Transcript
)BUFOB-FUͷࣜભٶ )BUFOB&OHJOFFS4FNJOBS େೳ࢙BLBJEPOL
ࣗݾհ w େೳ࢙BLBJEPOL w גࣜձࣾͯͳνʔϑΤϯδχΞ w ϊϕϧνʔϜॴଐ w νʔϜͰ8FCΞϓϦέʔγϣϯΤϯδχΞɺ ٕज़άϧʔϓશମͰϚωʔδϟۀΛ͍ͬͯ·͢
ࠓͷ
ࣜભٶ
ࣜભٶͱ w ҏਆٶͰɺʹҰɺ఼ࣾͱਆๅΛ৽ௐͯ͠େޚਆʹ͓ભΓ ئ͏ w ͕ഒ༻ҙ͞Ε͍ͯͯɺ͓͖ʹྡʹݐͯͯҠ͢ w ఼ࣾޚਆๅΛɺมΘΔ͜ͱͳ͘ܧঝ͠ଓ͚Δࡇ w ݐͦͷͷ͕ϨΨγʔ
ΦϦϯϐοΫͰฉ͍ͨํ ͳͷͰͳ͘ɺ ҡ࣋͢Δମ੍Λҡ࣋͢Δ
ιϑτΣΞʹ͓͚Δ ࣜભٶ
ιϑτΣΞࣜભٶͱ w ʹJELFOKJTLZXBMLFSʹΑͬͯఏএ͞Εͨ֓೦ w w ҏਆٶˍग़Ӣେࣾͷࣜભٶͷ w Πϯϑϥͷ#(σϓϩΠϝϯτΛ ࣜભٶʹݟཱͯͨ
IUUQTCMPHLFOKJTLZXBMLFSPSHTIJLJOFOTFOHPPJOGSBTUSBDUVSF
ιϑτΣΞࣜભٶͱ w ʹҰൠʹ·Δ w JEBOUJQPQ w +"84%":4*NNVUBCMF*OGSBTUSVDUVSFτϥοΫͷύωϧσΟεΧογϣϯ w JESZPUBSBJ w
ΫοΫύουͷαʔόϓϩϏδϣχϯάࣄΫοΫύου։ൃऀϒϩά w JENJSBLVJ w ΫοΫύουͷܧଓతͳͷͨΊʹ։ൃͱӡ༻͕ԿΛ͖ͯͨ͠ͷ͔ɺͦͷࣦഊͱ ޭʹ͍ͭͯ4QFBLFS%FDL
ιϑτΣΞࣜભٶͱ w JEFEWBLGʹΑΔ֦େղऍ w ์ஔ͕ͪ͠ͳࣾγεςϜͦࣜ͜ભٶ͍ͯ͜͠͏QJYJWJOTJEF w Πϯϑϥ͚ͩ͡Όͳ͘ιϑτΣΞࣜભٶ͢Δ w ఆظతʹ࡞Γ͢͜ͱͰɺϝϯςφϏϦςΟ্͕͠ɺ৽ن։ൃ ͔ΒͷֶͼಘΒΕΔ
ιϑτΣΞࣜભٶͱ w JEEBJLTZʹΑΓߋʹҙຯ͕Ճ͑ΒΕΔ w ϓϩμΫτΛӡ༻͢ΔνʔϜΛͭ͘Δ%FW4VNJ 4QFBLFS%FDL w શͯΛϑϧεΫϥονͰ࡞Γ͢લʹɺपظతʹखΛೖΕଓ͚Δ w ϓϩμΫτΛߏ͢Δཁૉ୯ҐͰ࡞Γ͢͜ͱͰϒϥοΫϘοΫε
ෛ࠴ʹͳΓ͔͚ͨཁૉΛϞμϯʹ͠ɺΤϯδχΞͷٕज़ܧঝΛߦ͏ w ࡞Γͨ͠ޙɺભٶࢀՃऀͦͷཁૉʹҰ൪ৄ͍͠ঢ়ଶʹͳΔ
ࠓͷ w ιϑτΣΞࣜભٶͱ w )BUFOB-FUͷྺ࢙ w ભٶͷϦΞϧ w ·ͱΊ
)BUFOB-FUͱ w ϒοΫϚʔΫϨοτΛ͔ΜͨΜʹ࡞ɾެ։Ͱ͖ΔϥϘαʔϏε
)BUFOB-FUͷྺ࢙ w w αʔϏε։ൃ߹॓ͰJETFDPOEMJGFͱJEDIP͕։ൃ w ༨ஊɿಉ͡։ൃ߹॓Ͱ࡞ΒΕͨͷ͕)BUFOB)BJLV w w
ϥϘαʔϏεͱͯ͠ެ։
)BUFOB-FUͷྺ࢙ w w JETFDPOEMJGFୀ৬ w w JEDIPୀ৬ w
JETBNQMF͕Ҿ͖ܧ͙ w w JETBNQMFୀ৬ w ༗ࢤͷΦʔφʔෆࡏʹ w 41'νʔϜ͕Φʔφʔͱͯ͠ϝ ϯςφϯε ˞ެ։ใ͕ݟ͔ͭΒͳ͍ͷͰԾ໊ɻ
)BUFOB-FUͷྺ࢙ w w JEPOLೖࣾ w w ΦʔφʔҾ͖ܧ͗ w
Ҿ͖ଓ͖ϝϯςφϯεϞʔυ w w ͞Α͏ͳΒ1FSMɺ͜Μʹͪ3VCZ
ભٶͨ͠
ભٶͱ͍͏બʹࢸΔ·Ͱ w ϦϦʔε࣌ ͷٕज़ w ͯϥϘαʔό w ͯͳ͕"84Λ͍ग़ͨ͠ͷ w
ͯϥϘ%# w ڞ௨%#Ϟσϧ w )BUFOBϑϨʔϜϫʔΫ 1FSM w 3JEHF .P$P w ͬ͘͟Γݴ͏ͱ3BJMT͙Β͍ʹ૬
ભٶͱ͍͏બʹࢸΔ·Ͱ w ʹ࡞ΒΕͨ··ɺࡉʑͱϝϯςφϯε͞Ε͍ͯΔ w &$Ҡసڞ௨%#ग़ߦΘΕͨ w %#ͷεΩʔϚϕετͰͳ͍ w 3JEHF .P$Pͷ··ϝϯςφϯε͢Δͷίετ͕ߴ͍
w 3JEHFMBTUDPNNJU w .P$PMBTUDPNNJU w ࣦΘΕٕͨज़ελοΫ
αʔϏεΛ࡞Δͱ͖ͷ࣠ w αʔϏεΛ࡞Δͱ͖ҎԼͷ࣠Ͱߟ͑Δ͜ͱ͕ଟ͍ɻ ಧ͚ΔͱɺϢʔβʹՁ͕͋Δ͔Ͳ͏͔ IUUQTXXXTMJEFTIBSFOFUUBLBGVNJPOBLB
αʔϏεΛ࡞Δͱ͖ͷ࣠ w ୈݶʮΔʯ w ୈݶʮΒͳ͍ʯ w ୈݶʮ༠ʯ w ͙͢Ͱ͖Δ͚ͲɺͦΜͳʹՁͳ͍ w
ଞͷ༏ઌ՝͕͋Δ͔͠Εͳ͍ w ᆵʹੴˠ࠭ˠਫΛ٧ΊΔͬͯίϐϖ͕͋ΔΑͶʁ IUUQTXXXTMJEFTIBSFOFUUBLBGVNJPOBLB
αʔϏεΛ࡞Δͱ͖ͷ࣠ w ୈݶΛҰ൪ߟ͑ͳ͖Ό͍͚ͳͯ͘ɺ Ձ͕͋Δ͔Βͥͻ࡞Γ͍ͨɻ͚Ͳ࡞Δͷ ͕͍͠ػೳ w ͜ΕΛ࣮ݱ͢Δͷ͕ϓϩάϥϚͱͯ͠ͷͷ ݟͤॴʹͳΔ IUUQTXXXTMJEFTIBSFOFUUBLBGVNJPOBLB
αʔϏεΛ࡞Δͱ͖ͷ࣠ w ϑϨʔϜϫʔΫʮՁ͕͋Δ͜ͱΛ͙͢࡞ ΕΔΑ͏ʹ͢Δʯͷ͕ w ୈݶΛୈݶʹม͑Δ w ͘͠ୈݶΛັྗత࣭·ͰߴΊΔ ͜ͱͰୈݶʹม͑Δ w
ͦ͜ʹد༩͠ͳ͍ͳΒෆཁ IUUQTXXXTMJEFTIBSFOFUUBLBGVNJPOBLB
ભٶͱ͍͏બʹࢸΔ·Ͱ w શͯΛঠѲͯ͠ɺϝϯς͍͖͍ͯͨ͠ w ಛʹ%#ϦϑΝΫλϦϯάΛ͍ͨ͠ w ࠓͷϑϨʔϜϫʔΫՁʹد༩͍ͯ͠ͳ͍ w ؆୯ʹ%#ΛมߋͰ͖Δ͔ʁݱࡏʹ͓͍ͯ/P w
ັྗత࣭ΛੜΜͰ͍Δ͔ʁݱࡏʹ͓͍ͯ/P
ભٶ༻ͷٕज़બఆ w Πϯϑϥϊʔλον w 4JOBUSB "DUJWF3FDPSE w &3# w TUBUJD
fi MFTϊʔλον
ͬͨ͜ͱ w .P$P"DUJWF3FDPSEʹม w ςʔϒϧఔͩͬͨͷͰɺؾ߹͍ w ͦͦ͜͜"3ͷதΛͬͯͳ͍ͱ͔ͬͨ͠ͱࢥ͏ w 1,͕ແ͍ςʔϒϧΛɺ1,ඞਢͳ03.Ͱѻ͏ w
φνϡϥϧΩʔ1,ͳؔ࿈ςʔϒϧΛɺαϩήʔτΩʔΛظ͢ Δ03.Ͱѻ͏
ͬͨ͜ͱ w "DUJWF3FDPSEೖͷৗखஈ w ଞͷϦϙδτϦͰ͍ͬͯΔ w ϝϯς༻ͷ3&1-03.͕ཉ͍͠ w σʔλΛཧղ͢ΔͨΊͷ࠷खஈ ۭͰ&3ਤ͕ॻ͚ΔΑ͏ʹͳΔ·Ͱࣸܦ͢Δ
w ֶʹԦಓͳ͠ IUUQTEFWFMPQFSIBUFOBTUB ff DPNFOUSZ
ͬͨ͜ͱ w 3JEHF4JOBUSBʹม w 3&45GVMͰͳ͍63-͕ΘΕ͍ͯΔ͕શͯҡ࣋ͨ͠ w ঠѲ͕ઌɺมߋޙ w ٱʑʹTJOBUSBBQQΛ࡞ͬͨJEPOLͷͯͳϒϩά
ͬͨ͜ͱ w 9TMBUF&3#ʹม w ϑΝΠϧఔͩͬͨͷͰɺͦ͜·Ͱखؒ͡Όͳ͍ w 9TMBUF͔Β&3#ͳΒͦͷ··༁Ͱ͖Δ w ͕͜͜؆୯Ͱ͋ͬͯཉ͍͠ͷͰαʔόଆͰ)5.-ΛϨϯμϦϯά ͢ΔखஈΛબΜͩ
͡Ί͔ΒΓ͍ͨ͠ީ܈ IUUQTXXXIZVLJDPNLPLPSPIBKJNF
શ෦ಡΉͱ͔ͬͨ໘നϙΠϯτ w ʮʯ۠ΓͷΫΤϦύϥϝʔλ͕ଘࡏ͍ͯ͠Δ w IUUQTPOLIBUFOBCMPHKQFOUSZ w 7BMJEͰ͋Δ͕ɺ࣮ࡍ63-&TDBQFͯ͠͠·͏Ϋϩʔϥ͕ଘࡏ͠ ͍ͯͨ w *OରԠ͍ͯͨ͠
w ϝχϡʔϘλϯͷจݴ͕ӳޠʹ
શ෦ಡΉͱ͔ͬͨ໘നϙΠϯτ w *&41ରԠ w 63-ͷ੍ݶ͕Ωπ͍ จࣈ ͨΊɺNJOJGZͯ͠ AKBWBTDSJQU GVODUJPO \^
AܗࣜͩͱɺΑ͋͘;ΕΔ w ҰఆҎ্ͩͱTDSJQUλάΛૠೖ͢ΔϒοΫϚʔΫϨοτʹͳΔ Έʹͳ͍ͬͯΔ w .JYFEDPOUFOUT$POUFOU4FDVSJUZ1PMJDZͷӨڹΛड͚Δ
ͰݟΔભٶ w HJUTIPXYYYTUBUT w )FMMP 3VCZ w fi MFTDIBOHFE
JOTFSUJPOT EFMFUJPOT w #ZF1FSM w fi MFTDIBOHFE EFMFUJPOT w ͍͍͙ͩͨΒ͍ͷίʔυྔʹ
ભٶޙʹͬͨ͜ͱ w "DUJWF3FDPSEͰྑ͔ͬͨʂ w JHOPSF@DPMVNOTDBMMCBDLΛۦͯ͠ɺຊ൪%#ϦϑΝΫλϦϯάΛ ࣮ݱՄೳͩͬͨ w Ϩʔϧ͔Β֎ΕͨσʔλϕʔεΛѻ͏POLOJOKB w ओΩʔ͕ແ͍ςʔϒϧෳ߹ओΩʔαϩήʔτΩʔΛՃ͢Δ
w UJNFTUBNQTΛݟ׳ΕͨYYY@BUʹϦωʔϜ w φνϡϥϧΩʔΛͨ͠Γɺςʔϒϧ͝ͱ࡞Γͨ͠Γ
ભٶޙʹͬͨ͜ͱ w 63-ΛϦιʔεࢤʹγϑτ w 1045࣌ʹΫΤϦύϥϝʔλͱ#PEZ͕྆ํ͋ͬͨΒͲ͏ѻΘΕΔ ͷ͔ɺΈ͍ͨͳΈͲ͜Ζ͕͋ͬͨɻͷͰݮΒͨ͠ w 'PSL(&5Ͱͳ͘1045Λ͏ w Ϋϩʔϥ͕(&5ϦϯΫΛݟ͚ͭͯɺΫϦοΫ͍ͯͨ͠
w ຖճ͙Β͍ɺΫϩʔϥ͕ ϦμΠϨΫτ͞Εͯ ϩάΠϯ ը໘Λදࣔͯ͠ɺఘΊ͍ͯͨ
ભٶޙʹͬͨ͜ͱ w ΠϯϑϥΛϚωʔδυԽ w 1FSM࣌&$ &$ .Z42- w ࠓ"-#
&$4 "VSPSB &MBTUJ$BDIF 3FEJT
ભٶޙʹͬͨ͜ͱ w +4ͷNJOJGZʹUFSTFSΛ͏Α͏ʹҠߦ w ͱͱͷΈ +BWB4DSJQU4RVJTI ͩͱɺ&4Ҏ߱ͷॻ ͖ํΛͨ͠ͱ͖ʹɺྫ͑ςϯϓϨʔτϦςϥϧ్͕தͰফ͑Δ ͷ͕͋ͬͨ
ίϛϡχέʔγϣϯͷتͼ w Ϣʔβ͞Μ͍߹ΘͤͤͣʹɺαʔϏε্Ͱෆ۩߹ͷಈ࡞֬ೝΛ ͯ͘͠ΕΔ w ࠶ݱ͢Δ࠷খίʔυΛߘͯ͘͠ΕΔͷੌ͗͢Δ w 501ϖʔδΛோΊ͍ͯͨΒݟ͚ͭͨ
ίϛϡχέʔγϣϯͷتͼ w ରԠ͓ͯ͘͠ͱԠ͕͋Δ
ίϛϡχέʔγϣϯͷتͼ w ߋʹରԠ͓ͯ͘͠ͱԠ͕͋Δ w จ௨ͷΑ͏ͳָ͠Έ
ࠓޙͷల։ w (SFBTFNPOLFZʹͲ͜·Ͱ͔ۙͮ͘ w ྫ͑(SFBTZ'PSLͱ͍͏ڝ߹αʔϏε͕͋Δ w Πϯετʔϧͱ͔ΛऔಘͰ͖ΔΑ͏ʹͳΔͱެ։͢Δָ͕͠͞ ૿͑Δ w ݕࡧ͍ͨͬͯ͠ʹ্खʹରԠ͍ͨ͠
ࠓޙͷల։ w HSBQIRMSVCZΛಋೖͯ͠ϑϩϯτΤϯυ৽ w %#վળ͕ऴΘͬͨͷͰɺ͘͢͝ѻ͍͘͢ͳͬͨ w 3VCZͳͷͦͷ··Ͱྑ͍͔ͳ͊ w )BUFOB-FUΛ࡞ͬͨJETFDPOEMJGFɺͯͳͰ3VCZΛ͍ଓ ͚͍ͯͨਓͳͷͰɺҙࢤΛܧ͍Ͱ͍͘ʢʁʣ
w 1FSMͷձࣾͰΘΕΔ3VCZͷར༻๏ͱ ຊ3VCZΧϯ ϑΝϨϯε
ࠓޙͷల։ w ΠϯϑϥߏͰ༡Ϳ w ݱࡏ"-# &$4 "VSPSB &MBTUJ$BDIF 3FEJT
w ͜͏ͯ͠ΈΔʁ w $MPVE'SPOU "1*(BUFXBZ $MPVE.BQ &$4 "VSPSB %ZOBNP%# w $MPVE'SPOU "1*(BUFXBZ -BNCEB "VSPSB %ZOBNP%# w SFRNJOະຬͳΒ"1*(BUFXBZ"-#ΑΓ͓ಘ w ίετ͕͘ͳΔͱ࣋ଓՄೳੑ͕ߴ·Δ w ͪΐͬͱ໘ന͍ߏͲΜͲΜࢼ͓͖͍ͯͨ͠
ࣾͷඪ४ελοΫͷҰาྡΛߦ͘ w ਖ਼͍͠ϥϘαʔϏεͷ࢟ w ࠷ۙͷͯͳͷඪ४ٕज़ελοΫHRMHFO /FYUKT w ࣅ͍ͯΔ͕গ͠ҧ͏ٕज़Λ͏͜ͱͰɺࣝͷ෯Λ͛Δ w ͜Ε͕બखˍ)BUFOB-FU͕ΞϓϦέʔγϣϯͱͯ͠খ͍͔͞Β
બͿํ๏ w ׳Ε͍ͯͳ͍PSෳࡶͳཁ͕݅͋ΔͳΒɺಉٕ͡ज़ΛෳΞϓϦέʔγϣ ϯͰ͏ํ͕༧֎ͷཁ݅Ͱߥʹᎍ·ΕΔ͜ͱʹͳΓɺਂΈ͕ग़Δ
ͯϥϘͱ ͯϥϘɺͯͳͷ࣮ݧతαʔϏεஔ͖Ͱ͢ɻ 20062݄ʹʮͯͳࣾһͷݸਓతΞΠσΞʹܗΛ༩͑ɺະͷαʔϏεʹվળ ΛॏͶͳ͕ΒຊαʔϏεʹҭͯΔʯͱ͍͏తͰ։࢝͠·ͨ͠ɻ ݱࡏͰɺຊαʔϏεԽΛࢦ͚ͩ͢Ͱͳ͘ •ՔಇதͷຊαʔϏεʹಋೖ͢Δ͜ͱ͕͍͠৽نػೳΛઌߦ࣮ͯ͢͠Δ •ຊαʔϏεͱҟͳΔϧʔϧϙϦγʔʹج͍ͮͯαʔϏεΛఏڙ͢Δ •ຊαʔϏεͱͯ͠ܧଓఏڙ͢Δ͜ͱ͕͘͠ͳͬͨαʔϏεΛɺنΛॖখͨ͠ ܗͰఏڙ͠ɺϥϘͳΒͰͷઓతͳࢪࡦΛಋೖ͠࠶ੜΛਤΔ ͱ͍ͬͨɺٛͷ࣮ݧతϓϩδΣΫτ࣮ূ࣮ݧͷͱͯ͠ΘΕ͍ͯ·͢ɻ
https://hatelabo.jp/ ΑΓൈਮɹɹ
ʮࣜʯભٶͷඞཁ͋Δ͔ w ϤγϤγͰ͖͍ͯΕແ͍ɺͱ͍͏͋Δ w 8FCαʔϏεϤγϤγ͠ͳ͍ͱεωΔQCMPH w ͦͦ͜͜ϤγϤγ͍ͯͯ͠εωΔʢʹෛ࠴ཷ·͍ͬͯ͘ʣ w ۀͰ͢ΒશͯͷߦʹΛೖΕଓ͚ΔͷෆՄೳͰɺ͕͚͍ࣝܽͯ͘ w
ӡӦνʔϜ͕υϝΠϯࣝΛ࠶֫ಘ͢ΔͨΊͷભٶ w ΔൣғΛݟۃΊͭͭɺίΞػೳͦࣜ͜ભٶ͢Δඞཁ͕͋ΔͷͩΖ͏ w ྻंΛΒͤଓ͚ͳ͕ΒύʔπΛަ͢ΔΠϝʔδ