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
hitode909
July 01, 2017
Technology
9.9k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
はてなブログ最近の開発テクニックと最新の開発風景のご紹介
hitode909
July 01, 2017
More Decks by hitode909
See All by hitode909
チームをチームにするEM
hitode909
0
620
「バイブス静的解析」でレガシーコードを分析・改善しよう
hitode909
4
5.9k
cpanfileの更新を 自動化したい
hitode909
0
2.8k
how to buy clothes
hitode909
1
21k
Perlの上にも三年 〜 ずっとイケてるサービスを作り続ける技術 〜
hitode909
14
45k
Perlの静的解析入門とPerlリファクタリングツールApp::PRTのご紹介
hitode909
10
13k
高速にドッグフードを食べる方法
hitode909
19
49k
Emacsで1ファイルにしか出現していないシンボルをハイライトするやつ
hitode909
2
1.3k
画面をチカチカさせるノウハウ
hitode909
0
380
Other Decks in Technology
See All in Technology
AWS Blocks を触ってみた/first-tach-aws-blocks
fossamagna
2
130
“詰む”前に仕組みを作れ 〜技術の波に溺れないためのキャッチアップ術〜
takasyou
8
5k
ゼロをイチにする仕事が終わったあと
smasato
0
230
LiDAR SLAMの実装とセンサ融合 ~Lie群からContinuous-Time LIOまで~
naokiakai
1
850
次世代ランサムウェア対策の考察 / 20260704 Mitsutoshi Matsuo
shift_evolve
PRO
5
1.7k
「ビジネスがわかるエンジニア」とは何か?
ryooob
0
470
Oracle Exadata Database Service on Cloud@Customer X11M (ExaDB-C@C) サービス概要
oracle4engineer
PRO
2
8.3k
クラウドファンディング版StackChan 3体(4体)をインタラクティブな体験型作品にして展示もした話 / スタックチャンお誕生日会2026
you
PRO
0
270
技術・能力を向上する原理原則 #きのこセッションa #きのこ2026
bash0c7
0
190
AIに「使われる」時代のSaaS戦略 〜既存WebAPIのMCPサーバー化における開発ノウハウ〜
ekispert_api
0
270
Baseline対応のDOMの型定義を作った
uhyo
2
580
作る力から、見極める力へ — AI時代に広がるエンジニアの価値と役割
rince
0
390
Featured
See All Featured
It's Worth the Effort
3n
188
29k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Crafting Experiences
bethany
1
200
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.1k
Rails Girls Zürich Keynote
gr2m
96
14k
How to build a perfect <img>
jonoalderson
1
5.8k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
270
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
350
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
300
Transcript
ͯͳϒϩά࠷ۙͷ ։ൃςΫχοΫͱ࠷ ৽ͷ։ൃ෩ܠͷ͝ հ
IJUPEF ژ͔Βདྷ·ͨ͠ ͯͳϒϩάΛ։ൃ͍ͯ͠Δ
ͯͳϒϩά ʙ ࠓ
҆ఆͯ͠։ൃΛ ଓ͚ΔͨΊͷऔΓΈ ͦͷͱ͖ʹߟ͑ͨ͜ͱίπ
ؒͷาΈ
ʙ 03.Θͳ͍ ബ͍ϑϨʔϜϫʔΫ
42-खॻ͖ .PEFMख࡞Γ 42-$POUSPMMFS͔Βൃߦ
ʙ 42-ίϐϖ 4FSWJDFΫϥε͔Β42-Λൃߦ
υϝΠϯۦಈઃܭ͕ྲྀߦΔ ϢϏΩλεݴޠΦϒδΣΫτΤϯςΟςΟ
:"1$"4*" 1FSMͷ্ʹࡾ ͣͬͱΠέͯΔαʔϏεΛ ࡞Γଓ͚Δٕज़
None
ઃܭϞσϦϯάͷؔ৺ͷߴ·Γ ಡॻձΛͬͨΓ
Ұํͦͷࠒ
ϑϩϯτΤϯυ ڊେͳϑΝΠϧˠ#SPXTFSJGZͰׂ K2VFSZˠ3FBDU
None
αʔόαΠυͷ1FSM ϑϩϯτΤϯυͷ+4 ͜ΕΒ͕Α͚Ε࠷ߴ
αʔόαΠυͷ1FSM ϑϩϯτΤϯυͷ+4 ͜ΕΒ͕Α͚Ε࠷ߴ͔ ͱ͍͏ͱͦ͏Ͱͳ͍
Ұํͦͷࠒ
)5.-ͷ৴ ૉͳΒ͕͠ଓ͍͍ͯͨ
ϒϩάαʔϏεϒϩάΛ৴͢ΔαʔϏε σβΠϯΧελϚΠζ දࣔ༰ͷΓସ͑Φϓγϣϯ ͳ͔ͳ͔ෳࡶͳΘΓʹύϥμΠϜ͕ݹ͍
7JFXΛ͖Ε͍ʹ อͭͷ͕͍͠
9TMBUFͷ55FSTFΛ͍ͬͯΔ ݴޠػೳ͕ૉ ڽͬͨ͜ͱͤͣී௨ʹ͍ͬͯΔ͚ͩ ؒύϥμΠϜͷਐԽ͕ͱ͘ʹͳ͍
ૉͳ7JFXͷੈք؍ 7JFXଆͰมΛએݴͤͣ $POUSPMMFS͔ΒͤݺΔ ςϯϓϨʔτׂͷࢦ͕ͳ͍ )5.-λάͰͳ͘จࣈྻΛѻ͍ͬͯΔ
7JFXΛͳΜͱ͔͢Δ 7JFX.PEFMԽ 3FBDUԽ ੩తղੳ͕ͯ͠ΜΔ
ෳࡶͳϩδοΫΛ 7JFX.PEFMʹҠ͢
ϩδοΫΛॻ͘ͱͳ͔ͳ͔େม
None
ϖʔδJEΛ༻͍ͯ બதͷλϒΛϋΠϥΠτ
<*'QBHF@JEbVTFSCMPHDPOpH ccQBHF@JEbVTFSCMPHDPOpHEFUBJM ccQBHF@JEbVTFSCMPHDPOpHQFSNJTTJPO > TFMFDUFE <&/%> ૉʹॻ͘ͱ
දࣔ༻ͷཧը໘αΠυόʔΛ ͋ΒΘ͢ΫϥεΛ࡞Δ
<*'TJEFCBSTFMFDUFE@UBC@JT CMPHDPOpH > TFMFDUFE <&/%>
)BUFOB&QJD7JFX"EBQUFS"ENJO4JEFCBS λϒ໊Λ͢ͱɼબத͔Ͳ͏͔ڭ͑ͯ͘ΕΔ ී௨ͷ1FSMͷΫϥεͳͷͰςετՄೳ
͍͜͠ͱΛ͢Δͱ͖3FBDUͰ ॻ͖͢
چདྷɿ55ˠK2VFSZ ࠷ۙɿ࠷ॳ͔Β3FBDU
ཧը໘ Ϋϩʔϧ͞ΕΔඞཁͳ͍ ಈతͳཁૉ͕ଟ͍
ಈతͳͱ͜Ζ·ͣ3FBDUͰॻ͖ ͨ͠Γ͍ͯ͠Δ
QSPQ5ZQFTͰ σʔλߏΛνΣοΫ FTMJOUͰղੳ ϨϯμϦϯάͷςετ
จࣈྻͰͳ͘λά୯Ґ ࣗવͱߏԽ͞ΕΔ
੩తղੳ͕ͯ͠ΜΔ
1$εϚʔτϑΥϯ".1
ࣅ͍ͯΔ͕ͪΐͬͱ͕ͪ͏ ίϐϖͯ͠ฤू͕ͪ͠
੩తղੳͯ͠ཧ͢Δ
YSU YTMBUF SFGBDUPSJOH UPPM
None
None
XSJUUFOJO3VCZ
XSJUUFOJO3VCZ 94MBUFʹґଘ͠ͳ͍ͨΊ1FSMͱ ผݴޠͰ࣮
55ͷจ๏Λύʔε ύʔεͨ͠ใΛදࣔ ϦϑΝΫλϦϯά
ύʔε <ʙ> จࣈͣͭݟ͍ͯ͘
ϒϩοΫͷݕग़ 55 <*'>ʜ<&/%>
ϒϩοΫͷݕग़ )5.- EJWʜEJW
55ͱ)5.-ಉ࣌ʹύʔε
ػೳ ωετͷදࣔ ॏෳ͢ΔϒϩοΫͷݕग़ ผϑΝΠϧʹΓग़͠
ωετͷදࣔ
YSUEVNQUFNQMBUFTTBNQMFIUNM %VNQJOHUFNQMBUFTTBNQMFIUNM IUNM CPEZ <'03JUFN*/JUFNT> <*'JUFNUJUMF> I<UJUMF>I <&/%> <&/%> CPEZ
IUNM
ωετͷେ͖͍ͱ͜Ζ͔Βཧ ࠷େͰωετͷͱ͜Ζ͋ͬͨ
ࢦఆͨ͠ϒϩοΫͷΓग़͠
UFNQBMUFTTBNQMFIUNM IUNM CPEZ <'03JUFN*/JUFNT> <*'JUFNUJUMF> I<UJUMF>I <&/%> <&/%> CPEZ IUNM
YSUFYUSBDUUFNQMBUFTTBNQMFIUNM<'03JUFN*/JUFNT>UFNQMBUFT @JUFNTUU
UFNQBMUFTTBNQMFIUNM IUNM CPEZ <*/$-6%&@JUFNTUU> CPEZ IUNM UFNQMBUFT@JUFNTUU <'03JUFN*/JUFNT> <*'JUFNUJUMF> I<UJUMF>I
<&/%> <&/%>
ࢦఆ͞ΕͨϒϩοΫΛൈ͖ग़͢ ϑΝΠϧʹॻ͖ग़͠ */$-6%&จΛ༻ҙ ΠϯσϯτΛௐ
ͳΔ͘খ͚ʹ͍ͯ͘͠࡞ઓ ҙຯͷ·ͱ·Γ͝ͱʹׂ ࠷খͰϑΝΠϧλά
@XSBQQFSDBOPOJDBMUU <*'DBOPOJDBM> MJOLSFMDBOPOJDBMISFG<DBOPOJDBM> <&/%>
ཧ͍ͯ͘͠ͱݟ͑Δͷ ෆཁͳϑϥά ॏෳ
੩తղੳ͠·͠ΐ͏
දݱྗͷऑ͍ͱ͜ΖͰ ͍͜͠ͱΛ͠ͳ͍ 1FSMʹدͤͨΓ +4ʹدͤͨΓ
IUUQTXXXBNB[PODPKQ&"$&"$&#&#$&#%&&&"&"&"&#&&"$&"&0CKFDU0SJFOUFE4FMFDUJPO&"'&""&#&##&&#$&&"&"#EQ
IUUQTXXXBNB[PODPKQ&"$&"$&#&#$&#%&&&"&"&"&#&&"$&"&0CKFDU0SJFOUFE4FMFDUJPO&"'&""&#&##&&#$&&"&"#EQ ϨΨγʔίʔυվળΨΠυͰͳ͍ ͣͭ͢͜͠վળ͔ΒϑϧεΫϥον·Ͱ 7JFX.PEFMͷ
ΞϓϦέʔγϣϯʹ৽͍͠άοζΛ ಋೖ͢Δͱ͖ͷίπ ࿈ଓతʹҠߦͰ͖Δ Ұൠతͳ֓೦Ͱ͋Δ ࣦഊͨ͠ΒݩʹͤΔ
࿈ଓతʹҠߦͰ͖Δ ن͕େ͖͍ͱҰؾʹॻ͖͑Δͷࠔ ࠔͬͯΔͱ͜Ζ͔ΒඞཁʹԠ͍ͯͬͯ͘͡
Ұൠతͳ֓೦Ͱ͋Δ ಠࣗͷ֓೦ΑΓɼطଘͷ֓೦ͷ΄͏͕ शಘ͍͢͠ ຊΛಡΊ͔Δͱ͔
ࣦഊͨ͠ΒݩʹͤΔ ͬͯΈ͚ͨͲ͋·ΓΑ͘ͳ͔ͬͨΒ ఫୀͰ͖Δͱͷͧ·͍͠ ӡ༻தʹঢ়گ͕มԽͯࣗ͠વͱফ͑Δ߹
7JFXͩΜͩΜ ྑ͘ͳ͍ͬͯΔ ͓ΘΓ
αʔόαΠυͷ1FSM ϑϩϯτΤϯυͷ+4 )5.-ͷΈཱͯ ͜ΕΒ͕Α͚Ε࠷ߴ
αʔόαΠυͷ1FSM ϑϩϯτΤϯυͷ+4 )5.-ͷΈཱͯ ͜ΕΒ͕Α͚Ε࠷ߴ͔ ͱ͍͏ͱͦ͏Ͱͳ͍
ϓϩμΫγϣϯͷίʔυҎ֎ ίʔυΛॻ͘ڥ ॻ͍ͨίʔυΛϦϦʔε͢Δ
खݩͷ։ൃڥͷ σβΠφʔͱͷ࿈ܞ
ͯͳͷσβΠφʔ σβΠϯ ϚʔΫΞοϓ )5.- 9TMBUF 3FBDU 6OEFSTDPSF5FNQMBUF
Ϟμϯͳπʔϧ͕ͳ͍ͱ ։ൃେม σβΠφʔͷΤσΟλ"UPN 4VCMJNF5FYU͔Β"UPNʹ౷Ұ
ηοτΞοϓΛख͏ 3FBDUܥͷϓϥάΠϯೖΕΔ FTMJOUೖΕΔ Πϯσϯτͷઃఆ FEJUPSDPOpH
Πϯσϯτ +4 ͱ +49 ࠞࡏ͠ ͍ͯͨͷΛʹଗ͑ͨ
Πϯσϯτˠ FTMJOUpY ίϝϯτਖ਼نදݱͰ͞ʹ
`git grep --name-only -P '^ +//' -- src/js/ `.split(/\n/).each{|path| source=open(path).read;
open(path, 'w'){|f| f.write source.gsub(/^( +)\/\//){|space| ' '*(space.length/2-1) +'//'} } }
λϒԡͨ͠ΒΠϯσϯτଗ͏Α͏ʹ ΩʔόΠϯυͷઃఆ
JGϧʔϓ50%0Ͱॻ͍ͯ Β͏ ΤϯδχΞ͕͋ͱ͔Βಈ͔͢ ͍͠ͱ͜ΖϖΞϚʔΫΞοϓ
MJOUͱ͔Πϯσϯτͱ͔ ΤσΟλͷࢧԉΛօ͕ड͚ΒΕΔ
։ൃڥΛ࡞Δίπ ΤσΟλͷΧελϚΠζ झຯͰͳ͘ࣄ
։ൃڥ खݩͰ1FSM .Z42- NFNDBIDFE &MBTUJDTFBSDI ͳͲಈ͔͍ͯ͠Δ
TDSJQUTFUVQ 1FSMΠϯετʔϧ %#εΩʔϚͷηοτΞοϓ OPEFͷηοτΞοϓ 1ZUIPOηοτΞοϓ &MBTUJDTFBSDIͷΠϯσοΫε࡞Δ
Α͋͘Δձ
ʮखݩͰΤϥʔ͕ग़·ͨ͠ʯ ʮΤϥʔϩάΛష͍ͬͯͩ͘͞ʯ ʮషΓ·ͨ͠ʯ ʮ͏গ্͠ష͍ͬͯͩ͘͞ʯ
σβΠφʹͱͬͯɼͲ͜·Ͱ͕Τ ϥʔ͔͔Βͳ͍ ΤϯδχΞʹͱͬͯɼσβΠφͷ खݩͷঢ়گΛѲ͢Δͷ͕͍͠
ͲͷϒϥϯνͰ ԿΛͨ͠Β Ͳ͏ͳͬͨͷ͔ ηοτΞοϓे͔ ฉ͘͜ͱ͍Ζ͍Ζ͋Δ
ԣʹ͍Εը໘ݟʹߦ͚Δ ϦϞʔτͩͱखؒ
ࣗಈͰखݩͷΤϥʔΛ4MBDLʹྲྀ͢ 1MBDL.JEEMFXBSF
1MBDL.JEEMFXBSF1PTU&SSPS5P4MBDL ୭͕ Ͳͷϒϥϯνͷ Ͳͷ63-Ͱ ͲΜͳΤϥʔʹૺ۰͔ͨ͠
ݺΕΔલʹαϙʔτͰ͖ͯศར
։ൃڥΛ࡞Δίπ ؾܰʹฉ͍ͯΒ͏ յΕͨͱ͖ʹ͙͢͢
։ൃڥͷ ͓ΘΓ
ϨϏϡʔͷ
ίʔυϨϏϡʔ ຖϨϏϡʔλΠϜ ͳΔ݅͘ʹͳΔ·ͰݟΔ
࣌ؒʹͳΔͱ͓Βͤ
ঢ়ଶ͕มΘΔͱ4MBDLʹྲྀ͢ ϨϏϡʔͯ͠ΔਓΛՄࢹԽ
ϥϕϧͰঢ়ଶΛཧ
ྃͨ͠ͱ͖ʹྑ͍ͷ͔ѱ ͍ͷ͔͔Βͳ͍
ϨϏϡʔྃΛͭʹׂ
σβΠϯϨϏϡʔϥϕϧͰ
ϥϕϧͭར༻͍ͯ͠Δ
ݟΒΕͣ์ஔ͞Ε͍ͯΔ1VMM3FRVFTUʹؾ ͖͍ͨ
IUUQTUXJUUFSDPNTJEF@UBOBTUBUVT
ݹ͍1VMM3FRVFTUʹؾ͖͍ͨ ؒಈ͖͕ͳ͚ΕࣗಈͰϥϕϧΛ༩
ϥϕϧͭར༻͍ͯ͠Δ
࠷ۙඪ४ͷػೳͰϨϏϡ ʔͰ͖ΔͷͰซ༻͍ͯ͠Δ IUUQTIFMQHJUIVCDPNBSUJDMFTBCPVUQVMMSFRVFTUSFWJFXT
ϨϏϡʔͷϑϩʔΛ͑Δίπ ϨϏϡʔͯ͠Β͑ͳ͍ͱ։ൃ͕ࢭ·ΔͷͰ ීஈݟ͑Δͱ͜ΖͰΔ
ϨϏϡʔΛਐΊΔίπ ײʹૌ͑ΔͷͰͳ͘ࣄ࣮ΛՄࢹԽ͢Δ ϨϏϡʔґཔͷ݅ɼϨϏϡʔͷਐɼݹ͞
ϨϏϡʔͷϑϩʔΛ͑Δίπ σβΠφʔ͚ͷࢧԉΤϯδχΞ༻ ͱಉ༷ʹ༻ҙ͢Δ
ϦϦʔεͷ
TUBHJOHʹϚʔδ͍ͯ͘͠ ϦϦʔε͕ͪஷ·͖ͬͯͨΒϦϦʔε ճʙճ͘Β͍
CPU͕ϦϦʔεΛଅͯ͘͠ΕΔ
None
Ϛʔδ݅ ίʔυͷߦ ࠷େߦ1VMM3FRVFTUͷ୲ऀ ͕ϦϦʔε୲
ϦϦʔε͍͚ͨ͠Ͳػೳ
CPU͕ಠΓݴΛߘ͢Δ
னٳΈආ͚Δ ༦ํආ͚Δ ༵ۚආ͚Δ ॕલආ͚Δ
৬ਓͷஅΛࣗಈԽ
None
ϦϦʔε༰ʹԠͯ͡ ಈతʹϦϦʔεखॱΛม͑Δ
;ͩΜͷखॱ
BMUFSUBCMF͋Δͱ͖
- [ ] `master`ʹϚʔδ <%- if changed_files.any?{|f| f.match(%r{^db/}) } -%>
- [ ] alter table (db/* ͕มߋ͞Ε͍ͯ·ͨ͠) <%- end -%> ϦϦʔεखॱΛ ςϯϓϨʔτΤϯδϯͰੜ
ͨ·ʹΔखॱΛࣗಈݕ BMUFSUBCMF OHJOYͷઃఆϦϩʔυ DSPOͷߋ৽
ϦϦʔεϑϩʔΛ࡞Δίπ ຖΔͷͳͷͰࣗಈԽ ਓ͕ݟΔલʹCPUʹࣄͤ͞Δ
ϦϦʔεͷ ͓ΘΓ
·ͱΊ ࠓͷԿͷͩͬͨͷ͔
৮Δରͱͦͷ࡞ઓ ϓϩμΫγϣϯίʔυஸೡʹ ։ൃڥͲΜͲΜΔ
ΞϓϦέʔγϣϯͷઃܭ৻ॏʹ ण໋͕͍ ৮Ε߹͏͍࣌ؒ ͦͷઃܭΛҰத৮Γ͍͔ͨ
ఫୀ͢͠͞ ബ͍ϑϨʔϜϫʔΫΛେʹ͍ͯ͠Δ ॏްͳάοζʹґଘͤͣ͋ͱ͔Β ·ͨม͑Δલఏ ಋೖٕ͕ͨ͠ݹͼͨͱ͖ఫୀͰ͖Δ͔
ਓʹΛ͚Δ νʔϜϝϯόશһ͕։ൃ͍͢͠ڥΛ ࡞ΔͷΤϯδχΞͷࣄ ಉ྅͕खͰΠϯσϯτͯͨ͠Βνϟϯε
։ൃΛαϙʔτ͢ΔͨΊͷίʔυ ؾܰʹม͍͑ͯ͘ ϓϩμΫγϣϯίʔυΑΓण໋͕͍ յΕͨΒࣺͯͯ࡞Γ͢
·ͱΊ ҆ఆͯ͠αʔϏε։ൃΛଓ͚ΔͨΊ ͷίʔυͷઃܭํ ։ൃڥ։ൃϑϩʔ ։ൃϝϯόͷαϙʔτ
એγʔϧͬͯ·͢
એγʔϧͬͯ·͢