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
とんと
July 29, 2023
0
19
これまでに一番苦労したプロジェクト
私が 6 年間のエンジニア人生で一番苦労したプロジェクトの話をします。
とんと
July 29, 2023
Tweet
Share
More Decks by とんと
See All by とんと
推しの VTuber の公式 Web サイトを作った Part.2
ryuseinomi
0
24
推しの VTuber の公式サイトを作った
ryuseinomi
0
160
ぼっちがリモートワークやってみた
ryuseinomi
0
78
Kanazawa.rbを振り返る
ryuseinomi
0
89
もう僕は勤怠を入力しなくても良い
ryuseinomi
0
40
Goで始めるWebsocketプログラミング
ryuseinomi
0
140
AWS Lambdaでファイルをこねくり回す
ryuseinomi
0
410
iOSアプリをリリースするまで
ryuseinomi
2
390
ベトナムエンジニアと 仲良く仕事を進めるには?
ryuseinomi
3
310
Featured
See All Featured
Writing Fast Ruby
sferik
628
61k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
32
2.7k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
YesSQL, Process and Tooling at Scale
rocio
169
14k
Optimizing for Happiness
mojombo
376
70k
GraphQLとの向き合い方2022年版
quramy
44
13k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.4k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Agile that works and the tools we love
rasmusluckow
328
21k
Building Your Own Lightsaber
phodgson
103
6.1k
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