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
Lintの付き合い方とPahoutのご紹介
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Kazuma Watanabe
October 25, 2017
Technology
200
0
Share
Lintの付き合い方とPahoutのご紹介
第119回PHP勉強会@東京
Kazuma Watanabe
October 25, 2017
More Decks by Kazuma Watanabe
See All by Kazuma Watanabe
Terraform言語の静的解析 / static analysis of Terraform language
wata727
1
100
SmartHRにおけるBiTemporal Data Modelの実践のその後 / After the practice of BiTemporal Data Model in SmartHR
wata727
1
3.8k
PHPを検査するPHPを書く / Write PHP inspection by PHP
wata727
1
2.4k
快適なコードレビューを目指して / For a comfortable code review
wata727
1
690
現実世界でのコンテナの運び方
wata727
3
1.2k
Querlyで始めるコードレビューの自動化
wata727
2
470
コンテナをSpot Fleetで起動するという選択肢
wata727
2
1.1k
エンジニア向けSaaSを支えるInfrastructure as Code
wata727
5
2.5k
SideCIのインフラ構築を自動化した話
wata727
1
2.2k
Other Decks in Technology
See All in Technology
[OAWTT26][THR1028] Oracle AI Database 26ai へのアップグレード:ベストプラクティスと最新情報
oracle4engineer
PRO
1
110
20年前の「OSS革命」に学ぶ AI時代の生存戦略
samakada
0
470
データ定義の混乱と戦う 〜 管理会計と財務会計 〜
wonohe
0
140
クラウドネイティブな開発 ~ 認知負荷に立ち向かうためのコンテナ活用
literalice
0
150
コードや知識を組み込む / Incorporate Code and Knowledge
ks91
PRO
0
170
Claude Code を安全に使おう勉強会 / Claude Code Security Basics
masahirokawahara
12
36k
AI: Making Admin and Users, Lives Better
kbmsg
0
110
Chasing Real-Time Observability for CRuby
whitegreen
0
200
AIコーディング時代における、ソフトウェアサプライチェーン攻撃に対する防衛術(簡易版)
soysoysoyb
0
120
LLM時代の検索アーキテクチャと技術的意思決定
shibuiwilliam
3
1.5k
小説執筆のハーネスエンジニアリング
yoshitetsu
0
750
AIはハッカーを減らすのか、増やすのか?──現役ホワイトハッカーから見るAI時代のリアル【MEGU-Meet】
cscengineer
PRO
0
190
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
225
10k
How to Ace a Technical Interview
jacobian
281
24k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.3k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
260
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
How to make the Groovebox
asonas
2
2.1k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
160
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.2k
Typedesign – Prime Four
hannesfritz
42
3k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Skip the Path - Find Your Career Trail
mkilby
1
110
Transcript
-JOUͷ͖߹͍ํ ͱ1BIPVUͷ͝հ !XBUB ୈճ1)1ษڧձ!౦ژ
͋ΔϨϏϡʔͷ
ͱ͋ΔϨϏϡʔ QIQ DMBTT3FQPTJUPSZ\ QSJWBUFOBNF QSJWBUFQVCMJD QVCMJDGVODUJPO@@DPOTUSVDU TUSJOHOBNF TUSJOHWJTJCJMJUZ \
UIJTOBNFOBNF UIJTQVCMJDWJTJCJMJUZQVCMJD USVFGBMTF ^ ʜ ^
ͱ͋ΔϨϏϡʔ QIQ DMBTT3FQPTJUPSZ\ QSJWBUFOBNF QSJWBUFQVCMJD QVCMJDGVODUJPO@@DPOTUSVDU TUSJOHOBNF TUSJOHWJTJCJMJUZ \
UIJTOBNFOBNF UIJTQVCMJDWJTJCJMJUZQVCMJD USVFGBMTF ^ ʜ ^ WJTJCJMJUZlQVCMJD͚ͩͰΑ͘ͳ͍ʁ
None
·ͨผͷ QIQ #FGPSF VTFSJTTFU @(&5<VTFS> @(&5<VTFS>OPCPEZ "GUFS VTFS@(&5<VTFS>
OPCPEZ 1)1͔Β/VMM߹ମԋࢉࢠ͕ೖΓ·ͨ͠Ͷ ศརʂͳΔͬͪ͘͜ͷه๏Λ͏Α͏ʹ͠Α͏ʂ
ͱ͜ΖͰ w ͜ͷϨϏϡʔɺϓϩδΣΫτ͝ͱʹϨϏϡΞ͕ؤுͬ ͯΔඞཁ͋Δʁ w ϓϩδΣΫτݻ༗ͷͰͳ͍͠ɺ1)1Λॻ͍ͯΔ ݶΓ୭Ͱૺ۰ͦ͠͏ͳɺΞυόΠε w ΈΜͳ͕͜͏͍ͬͨʮΑ͋͘ΔʯΛ·ͱΊͯɺػ ցతʹνΣοΫͰ͖ΔΈΛ࡞ͬͨΒͤ͡Όͳ͍ʁ
-JOUΛ͓͏
͍ͬͯ·͔͢ʁ
-JOUJTԿ w ίϯύΠϥΑΓৄࡉ͔ͭݫີͳνΣοΫ w ίϯύΠϥͰνΣοΫ͞Εͳ͍͕ɺόάͷ ݪҼʹͳΔΑ͏ͳᐆດͳهड़Λܯࠂ͢Δ
-JOUJTԿ w ίϯύΠϥΑΓৄࡉ͔ͭݫີͳνΣοΫ w ίϯύΠϥͰνΣοΫ͞Εͳ͍͕ɺόάͷ ݪҼʹͳΔΑ͏ͳᐆດͳهड़Λܯࠂ͢Δ ˠίʔυΛػցతʹνΣοΫͯ͠Կ͔༗ӹͳ͜ͱΛݴ͏
1)1ͷ-JOUFS w 1)1@$PEF4OJ⒎FS w 1)1.FTT%FUFDUPS w 1IBO FUD
1)1@$PEF4OJ⒎FS w ίʔσΟϯάن ྫ͑143 ʹҧͨ͠ίʔ υΛػցతʹݕग़Ͱ͖Δ w ϓϥάΠϯػߏ͕͋ΔͷͰɺΦϨΦϨن ద༻Մೳ
1)1@$PEF4OJ⒎FS QIQ DMBTT)PHF\ QVCMJDGVODUJPO@@DPOTUSVDU \ *OJUJBMJ[F ^ QVCMJDGVODUJPOSVO \
4PNFUIJOH ^ ^
1)1@$PEF4OJ⒎FS QIQ DMBTT)PHF\ QVCMJDGVODUJPO@@DPOTUSVDU \ *OJUJBMJ[F ^ QVCMJDGVODUJPOSVO \
4PNFUIJOH ^ ^ 0QFOJOHCSBDFPGBDMBTTNVTU CFPOUIFMJOFBGUFSUIFEFpOJUJPO 0QFOJOHCSBDFTIPVMECFPOBOFXMJOF "DMPTJOHUBHJT OPUQFSNJUUFEBUUIFFOEPGB1)1pMF
ศརʂ
ͱ͜Ζ͕ w ಄ͷྫʹ্͛ͨΑ͏ͳ՝ΛղܾͰ͖ͦ͏ ͳ-JOUFS͕ແ͍ʜ w 1)1@$PEF4OJ⒎FS͕Ұ൪ۙͦ͏͚ͩͲɺ͜Ε ίʔσΟϯάنͷҹ͕ڧͦ͏ w ͦΕͧΕͷπʔϧͷࢥͱҧ͏ؾ͕͢Δ
-JOUΛ࡞Ζ͏
େ·͔ͳઓུ w ؆୯ͳ-JOUFSͳΒҙ֎ͱ࡞Δͷ͘͠ͳ͍ w 1IBOΈ͍ͨͳͷେม͚ͩͲʜ w ݁ہίʔυΛύʔεͯ͠ɺͻͱͭͻͱͭ νΣοΫͯ͠ɺ͕͋Εग़ྗ͢Εྑ͍
1BSTF w ίʔυΛ1)1ͷεΫϦϓτ্Ͱѻ͍͍͢ܗ ࣜʹม͢Δ "45BCTUSBDUTZOUBYUSFF w ϥΠϒϥϦ͕͋ΔͷͰɺͦΕΛ͑؆୯ w OJLJDQIQBTU͕ૣͯ͘ྑͦ͞͏
OJLJDQIQBTU QIQ OPEFBTUaQBSTF@pMF BSHW<> OPEFLJOEϊʔυͷछྨ FHఆఆٛ ؔݺͼग़͠
OPEFDIJMESFOϊʔυͷࢠϊʔυ
5SBWFSTF w ಘΒΕͨ"45ͷϊʔυΛਂ͞༏ઌͰνΣοΫ w ࢠϊʔυ୳ࡧ͍ͯ͘͠ͷͰ࠶ؼؔͱͯ͠ ࣮͞ΕΔ w ϊʔυͷछྨΛݟͯɺݕࠪͷॲཧΛϑοΫ
5SBWFSTF QIQ GVODUJPOUSBWFSTF /PEFOPEF \ OPEFʹରͯ͠ݕࠪ͢Δ GPSFBDI OPEFDIJMESFOBTUZQFDIJME
\ JG DIJMEJOTUBODFPG/PEF \ USBWFSTF DIJME ^ ^ ^
*OTQFDU w Ϋϥε͝ͱʹݕࠪରͷϊʔυͷछྨͱɺϊʔ υʹର͢ΔݕࠪॲཧΛఆٛ͢Δ w ݕࠪ݁Ռʹ͕͋ΕɺࢦఠΛൃੜͤ͞Δ
*OTQFDU QIQ DMBTT*OTQFDUPS \ ࡾ߲ԋࢉࢠͷ߹ʹݕࠪ͢Δ DPOTU&/53:@10*/5aBTUa"45@$0/%*5*0/"- OPEFLJOE&/53:10*/5ʹͳΔͱ͖͚࣮ͩߦ͢Δ QVCMJDGVODUJPOSVO /PEFOPEF
\ OPEFΛݟͯ৭ʑ͢Δ ^ ^
࡞Γ·ͨ͠ w IUUQTHJUIVCDPNXBUBQBIPVU w ৽͍͠1)1ͷγϯλΫεͰஔ͖͑Մೳͳ ίʔυΛݕग़ͨ͠ΓɺόάͬΆ͍ίʔυΛݟ ͚ͭͨΓ
1BIPVUͷྫ QIQ USZ\ TPNFUIJOH ^DBUDI "FYDFQUJPO \ SFTDVF
FDIPlDBUDIz ^DBUDI #FYDFQUJPO \ FDIPlDBUDIz ^DBUDI $FYDFQUJPO \ FDIPlDBUDIz ^
1BIPVUͷྫ QIQ USZ\ TPNFUIJOH ^DBUDI "FYDFQUJPO \ SFTDVF
FDIPlDBUDIz ^DBUDI #FYDFQUJPO \ FDIPlDBUDIz ^DBUDI $FYDFQUJPO \ FDIPlDBUDIz ^ .VMUJQMF$BUDI"DBUDICMPDLNBZ TQFDJGZNVMUJQMFFYDFQUJPO
1BIPVUͷྫ QIQ USZ\ TPNFUIJOH ^DBUDI "FYDFQUJPO \ SFTDVF
FDIPlDBUDIz ^DBUDI #c$FYDFQUJPO \ FDIPlDBUDIz ^
ૣ͓͏ʂ
ૣ͓͏ʂ Ͱ
-JOUಋೖͷ Ξϯνύλʔϯ
Α͋͘Δಋೖͷࣦഊ w ͱΓ͋͑ͣશମʹద༻͢Δ w ݴΘΕͨ͜ͱΛશ෦͢
ͱΓ͋͑ͣશମʹద༻͢Δ
ͱΓ͋͑ͣશମʹద༻͢Δ w ΊͪΌͪ͘Όࢦఠ͕ग़Δ w Ͳ͔͜Β͍͍ͤͷ͔Θ͔Βͳ͘ͳΔ w ʘ ?P? ʗźŕũŽƃŮ
ݴΘΕͨ͜ͱΛશ෦͢ w ຊʹͦΕͰ͍͍ͷʁ w ྫ͑ʮϝιου͕͗͢·͢ʯͱݴΘΕ͔ͨΒ ࢥߟఀࢭͯ͠ϝιουΛׂ͢Δͷਖ਼͍͠ͷʁ w ϝιουͷׂɺͦͷϝιουͷ͕େ͖͢ ͗Δ߹ʹߦͳ͏͖Ͱ͋Δͣ
ݴΘΕͨ͜ͱΛશ෦͢ w ຊʹͦΕͰ͍͍ͷʁ w ྫ͑ʮϝιου͕͗͢·͢ʯͱݴΘΕ͔ͨΒ ࢥߟఀࢭͯ͠ϝιουΛׂ͢Δͷਖ਼͍͠ͷʁ w ϝιουͷׂɺͦͷϝιουͷ͕େ͖͢ ͗Δ߹ʹߦͳ͏͖Ͱ͋Δͣ ˠͦͦɺࢲୡػցΑΓݡ͍
Ͳ͏͢Δ͖͔ʁ w -JOUʮϖΞϓϩάϥϛϯάͷύʔτφʔʯ ͷΑ͏ͳଘࡏͰ͋Δ͖ w ϖΞϓϩͰʮͱΓ͋͑ͣաڈͷίʔυ͔Βશ ෦ݟΔʯͳΜͯ͜ͱ͠ͳ͍ͣ w ύʔτφʔʮΞυόΠεʯ͢Δ͚ͩͰͦΕ Λड͚ೖΕΔ͔͋ͳͨͷஅ࣍ୈ
1BIPVUͲ͏͔ʁ w l"QBJSQSPHSBNNJOHQBSUOFSGPSXSJUJOH CFUUFS1)1zΛςʔϚʹ͍ͯ͠Δ w ਓ͕ؒݟಀ͕ͪ͠ͳϛεΛ͟ͱ͘ݟ͚ͭͯ ΞυόΠε͢Δͷ͕ಘҙ w ϓϩδΣΫτͷഎܠσʔλʹىҼ͢Δ ͋ͳͨͷ΄͏͕ৄ͍͠ͷͰޱग़͠͠·ͤΜ
1BIPVUͲ͏͔ʁ w ৽͘͠ॻ͔ΕΔίʔυ͚ͩνΣοΫ͢Δ Έಛʹແ͍ͷͰਓؒʹؤுͬͯཉ͍͠
࠷ޙʹ w Έͳ͞ΜͷݱͰݟ͚ͭͨʮࣗಈԽͰ͖ͦ͏ ͳϨϏϡʔʯͷΛฉ͔͍ͤͯͩ͘͞ w *TTVFͱཱ͔ͯͯ͘ΕΔͱتΜͰ࣮͠·͢ ʢͨͿΜʣ w ͪΖΜϓϧϦΫΤετ8FMDPNFͰ͢ʂ