Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
これまでに一番苦労したプロジェクト
Search
嘉音とんと
July 29, 2023
40
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
これまでに一番苦労したプロジェクト
私が 6 年間のエンジニア人生で一番苦労したプロジェクトの話をします。
嘉音とんと
July 29, 2023
More Decks by 嘉音とんと
See All by 嘉音とんと
CSSの歩き方
kanon_tonto
0
67
推しの VTuber の公式 Web サイトを作った Part.2
kanon_tonto
0
41
推しの VTuber の公式サイトを作った
kanon_tonto
0
190
ぼっちがリモートワークやってみた
kanon_tonto
0
100
Kanazawa.rbを振り返る
kanon_tonto
0
120
もう僕は勤怠を入力しなくても良い
kanon_tonto
0
60
Goで始めるWebsocketプログラミング
kanon_tonto
0
180
AWS Lambdaでファイルをこねくり回す
kanon_tonto
0
440
iOSアプリをリリースするまで
kanon_tonto
2
430
Featured
See All Featured
Producing Creativity
orderedlist
PRO
348
41k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
Designing for Performance
lara
611
70k
We Are The Robots
honzajavorek
0
380
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Amusing Abliteration
ianozsvald
1
310
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
550
A better future with KSS
kneath
240
18k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
440
Accessibility Awareness
sabderemane
1
220
Transcript
@27ma4_ton10 github.com/RyuseiNomi 人生で一番苦労したプロジェクト
Ryusei Nomi # Webエンジニア # マリオカート # VTuber # Go
/ Javascript @27ma4_ton10
事業システムのカバレッジ向上 (2018/4 ~ 2019/6) 苦労したプロジェクト
🛠 技術スタック ・PHP 5.1 ・PHPUnit 4.x ・Docker ・Selenium ・ShellScript
📝 プロジェクト概要 ・ PHP のバージョンアップをしよう! ・そのためにテストカバレッジを上げよう
🥺 困難な点 ・ PHPUnit が古すぎて private メソッドのモックが作れない ・巨大な public
メソッドのテストが困難
None
∑(゚Д゚)!?
🛠 runkit 関数とは? ・メソッドや組み込み関数の 動作を変更したり、抹消したり出来る😈
None
・ return10 が 10 以外を返せること ・ add10 を呼んだ時に return10 を通らないこと
・他のテストケースに影響しないこと
先に理想の テストコードを 書いてみた
これ 1 行で モックを 作りたい!
❓モック化する手順 1. 本番コードのクラス名とメソッド名を受け取り、ランダムな文字列にリネーム 2. メソッド名とランダムな文字列を紐づけるために、プロパティにスタック 3. 該当するメソッド名と同じ名前の偽メソッドを作成 4. 偽メソッドが本番コードになりすましている間にテストを実行 5.
テストが終わったら偽メソッドを消して、プロパティから本番コードを取り出し、元の名前にリネーム
本番コードのクラス名とメソッド名を受け取り、ランダムな文字列にリネーム
メソッド名とランダムな文字列を紐づけるために、プロパティにスタック
該当するメソッド名と同じ名前の偽メソッドを作成
偽メソッドが本番コードになりすましている間にテストを実行
テストが終わったら偽メソッドを消して、プロパティから本番コードを取り出し、元の名前にリネーム ・必ず後ろから順に削除する ・プロパティの中身を全て削除する
None
💰 何が得られたか? ・よりテストコードを書きやすくなった ・社内ライブラリとして公開することで みんなテストを書いてくれるようになった
📣 今後に活かせること ・作ったものは自慢しよう ・自分たちがやっている仕事をアピールしよう ・その成果が誰かを幸せにするかも知れないから
None