SlideShare a Scribd company logo
1 of 19
Download to read offline
T y p e S c r i p t
ユ ニ オ ン 型 の 罠 と コ ー ド レ ビ ュ ー の 秘 宝
エ ン ジ ニ ア の 輪 a t 大 阪 L T
株式会社Gemcook 中薗 良太
2 0 2 3 年 1 1 月 2 5 日
自 己 紹 介
1 .
社 内 で 起 こ っ た T S 議 論
2 .
ま と め
3 .
ア ジ ェ ン ダ
自 己 紹 介
01
お 前 誰 や ね ん
中 薗 良 太 R y o t a N a k a z o n o
株 式 会 社 G e m c o o k / フ ロ ン ト エ ン ド
エ ン ジ ニ ア 歴
7 ヶ 月 ち ょ っ と
使 用 ス タ ッ ク
T y p e S c r i p t
R e a c t / N e x t . j s
V u e / N u x t . j s
V a n i l l a - E x t r a c t
G r a p h Q L
自 己 紹 介
皆 さ ん は T y p e S c r i p t は
お 好 き で す か ?
突 然 で す が ・ ・ ・
TypeScript
大 好 き で す ! !
TypeScripter
プ ロ グ ラ ミ ン グ 学 習 中 の 僕 の 気 持 ち ・ ・ ・
な ん で エ ラ ー ば っ か り 出 る ん ・ ・ ・ 😓
と り あ え ず a n y に し と こ 〜 😙
と は い き ま せ ん で し た ・ ・ ・
今 な ら 言 え る 。
大 好 き で す ! !
TypeScripter
ま
だ
ま
だ
こ
れ
か
ら
で
す
が
!
社 内 で 起 こ っ た T S 議 論
02
ど の 型 の 付 け 方 が い い ん だ ろ う ?
P R 出 し ま し た !
レ ビ ュ ー お 願 い し ま す !
社 内 で 起 こ っ た 議 論
新しく作成するLPの実装をしていた時のこと・・・
Aさん
P R 出 し ま し た !
レ ビ ュ ー お 願 い し ま す !
社 内 で 起 こ っ た 議 論
新しく作成するLPの実装をしていた時のこと・・・
Aさん
切り分ける必要あるかな?
多分DRYとか保守性考えて切り分けてるんやと思うんやけど、可読性としては下がってしまう気がする🤔
社 内 で 起 こ っ た 議 論
POLICY_DIR
Bさん
社 内 で 起 こ っ た 議 論
ネストする必要ないと思う🤔 むしろせん方がいいまでありそう。
型に汎用性を持たせようとしすぎた結果、「型の意味ないやん。」になりそうだね。
俺ならこうするかなぁ
Bさんの意見も聞きたいかも
Cさん
こ こ ま で や る 必 要 あ る か な ? っ て 思 い ま し た け ど 、 デ ィ レ ク ト リ ご と に 型 つ け れ る の は い い で す ね !
で も デ ィ レ ク ト リ が 増 え て き た 時 に
っ て な る の も や や 気 持 ち 悪 さ が ・ ・ ・
な の で ワ ン チ ャ ン ?
社 内 で 起 こ っ た 議 論
Bさん
社 内 で 起 こ っ た 議 論
違うんよー。
これが、とにかくきもいんよ...。
この型って、
ってできてしまうからね。(/stringの方に入るから!)型の意味ねぇーーーー。って感じ。
ドメインが明示的に切り分けられているから、いいとおもうんだ。
あと副次的効果として、 だけexportして、mapして使うとかやりやすいと
思うんだ。
Cさん
P O L I C Y _ P A T H
Bさん
な る ほ ど ! 確 か に 🔥
全 部 / s t r i n g の 方 に 入 っ て き ち ゃ い ま す ね ・ ・ ・
デ ィ レ ク ト リ 増 え た 時 に も 型 を 変 え な い と い け な い の で 、 C さ ん が 提 案 し た コ ー ド が 一 番 気 持 ち い い か も
で す !
社 内 で 起 こ っ た 議 論
ちなみにやろうと思えばこんなこともできるよ〜
Cさん
ま と め
03
今 回 の コ ー ド レ ビ ュ ー を 通 し て 感 じ た こ と
コ ー ド レ ビ ュ ー で す る 議 論 お も れ ぇ
1 .
ユ ニ オ ン 型 の 使 い 方 気 を つ け よ
2 .
T y p e S c r i p t お も ろ い や ん
3 .
コ ー ド レ ビ ュ ー の 中 に た く さ ん の 価 値 が 詰 ま っ て る ! !
今 回 の コ ー ド レ ビ ュ ー を 通 し て 感 じ た こ と
T H A N K Y O U !
あ り が と う ご ざ い ま し た !

More Related Content

Similar to TypeScript ユニオン型の罠とコードレビューの秘宝

ぼくとしりとりの約3.0*10^3日間戦争
ぼくとしりとりの約3.0*10^3日間戦争ぼくとしりとりの約3.0*10^3日間戦争
ぼくとしりとりの約3.0*10^3日間戦争Eric Sartre
 
twitter4contact #twtr_hack
twitter4contact #twtr_hacktwitter4contact #twtr_hack
twitter4contact #twtr_hackMasashi Arino
 
アプリ開発を効率化する 方法あれこれ
アプリ開発を効率化する 方法あれこれアプリ開発を効率化する 方法あれこれ
アプリ開発を効率化する 方法あれこれAtsushi Mizoue
 
デザインはおまかせで、丸投げされた時どうする?
デザインはおまかせで、丸投げされた時どうする?デザインはおまかせで、丸投げされた時どうする?
デザインはおまかせで、丸投げされた時どうする?rie05
 
Riot.jsと仲良くなるための僕的tips
Riot.jsと仲良くなるための僕的tipsRiot.jsと仲良くなるための僕的tips
Riot.jsと仲良くなるための僕的tipsKeisuke Imai
 
辛い開発を色々使って迂回した話
辛い開発を色々使って迂回した話辛い開発を色々使って迂回した話
辛い開発を色々使って迂回した話s2otsa
 
どたばたかいぎ成果発表
どたばたかいぎ成果発表どたばたかいぎ成果発表
どたばたかいぎ成果発表Eric Sartre
 
こんなところで使えるのXD活用法|20191208 XD勉強会 in セブ島
こんなところで使えるのXD活用法|20191208 XD勉強会 in セブ島こんなところで使えるのXD活用法|20191208 XD勉強会 in セブ島
こんなところで使えるのXD活用法|20191208 XD勉強会 in セブ島Yuriko Kamimori
 
Genesis Lightning Talks vol. 39
Genesis Lightning Talks vol. 39Genesis Lightning Talks vol. 39
Genesis Lightning Talks vol. 39sasapyon3
 
セグメンテーションの考え方・使い方 - TokyoR #44
セグメンテーションの考え方・使い方 - TokyoR #44セグメンテーションの考え方・使い方 - TokyoR #44
セグメンテーションの考え方・使い方 - TokyoR #44horihorio
 
ぷらぐいんになっちゃった2
ぷらぐいんになっちゃった2ぷらぐいんになっちゃった2
ぷらぐいんになっちゃった2Chieko Aihara
 
技術書執筆のススメ 〜Only1なエンジニアになるためのセルフブランディング〜の発表資料
技術書執筆のススメ 〜Only1なエンジニアになるためのセルフブランディング〜の発表資料技術書執筆のススメ 〜Only1なエンジニアになるためのセルフブランディング〜の発表資料
技術書執筆のススメ 〜Only1なエンジニアになるためのセルフブランディング〜の発表資料Yoshiki Shibukawa
 
見ててつらぽよなスライド
見ててつらぽよなスライド見ててつらぽよなスライド
見ててつらぽよなスライドFrom Atom
 
WordCamp Yokohama2010 プレゼン
WordCamp Yokohama2010 プレゼンWordCamp Yokohama2010 プレゼン
WordCamp Yokohama2010 プレゼンmiccweb
 
n次請けSIerでもできること
n次請けSIerでもできることn次請けSIerでもできること
n次請けSIerでもできること陽一 滝川
 

Similar to TypeScript ユニオン型の罠とコードレビューの秘宝 (17)

ぼくとしりとりの約3.0*10^3日間戦争
ぼくとしりとりの約3.0*10^3日間戦争ぼくとしりとりの約3.0*10^3日間戦争
ぼくとしりとりの約3.0*10^3日間戦争
 
twitter4contact #twtr_hack
twitter4contact #twtr_hacktwitter4contact #twtr_hack
twitter4contact #twtr_hack
 
アプリ開発を効率化する 方法あれこれ
アプリ開発を効率化する 方法あれこれアプリ開発を効率化する 方法あれこれ
アプリ開発を効率化する 方法あれこれ
 
デザインはおまかせで、丸投げされた時どうする?
デザインはおまかせで、丸投げされた時どうする?デザインはおまかせで、丸投げされた時どうする?
デザインはおまかせで、丸投げされた時どうする?
 
Riot.jsと仲良くなるための僕的tips
Riot.jsと仲良くなるための僕的tipsRiot.jsと仲良くなるための僕的tips
Riot.jsと仲良くなるための僕的tips
 
Mail Communication
Mail CommunicationMail Communication
Mail Communication
 
発言力
発言力発言力
発言力
 
辛い開発を色々使って迂回した話
辛い開発を色々使って迂回した話辛い開発を色々使って迂回した話
辛い開発を色々使って迂回した話
 
どたばたかいぎ成果発表
どたばたかいぎ成果発表どたばたかいぎ成果発表
どたばたかいぎ成果発表
 
こんなところで使えるのXD活用法|20191208 XD勉強会 in セブ島
こんなところで使えるのXD活用法|20191208 XD勉強会 in セブ島こんなところで使えるのXD活用法|20191208 XD勉強会 in セブ島
こんなところで使えるのXD活用法|20191208 XD勉強会 in セブ島
 
Genesis Lightning Talks vol. 39
Genesis Lightning Talks vol. 39Genesis Lightning Talks vol. 39
Genesis Lightning Talks vol. 39
 
セグメンテーションの考え方・使い方 - TokyoR #44
セグメンテーションの考え方・使い方 - TokyoR #44セグメンテーションの考え方・使い方 - TokyoR #44
セグメンテーションの考え方・使い方 - TokyoR #44
 
ぷらぐいんになっちゃった2
ぷらぐいんになっちゃった2ぷらぐいんになっちゃった2
ぷらぐいんになっちゃった2
 
技術書執筆のススメ 〜Only1なエンジニアになるためのセルフブランディング〜の発表資料
技術書執筆のススメ 〜Only1なエンジニアになるためのセルフブランディング〜の発表資料技術書執筆のススメ 〜Only1なエンジニアになるためのセルフブランディング〜の発表資料
技術書執筆のススメ 〜Only1なエンジニアになるためのセルフブランディング〜の発表資料
 
見ててつらぽよなスライド
見ててつらぽよなスライド見ててつらぽよなスライド
見ててつらぽよなスライド
 
WordCamp Yokohama2010 プレゼン
WordCamp Yokohama2010 プレゼンWordCamp Yokohama2010 プレゼン
WordCamp Yokohama2010 プレゼン
 
n次請けSIerでもできること
n次請けSIerでもできることn次請けSIerでもできること
n次請けSIerでもできること
 

TypeScript ユニオン型の罠とコードレビューの秘宝

  • 1. T y p e S c r i p t ユ ニ オ ン 型 の 罠 と コ ー ド レ ビ ュ ー の 秘 宝 エ ン ジ ニ ア の 輪 a t 大 阪 L T 株式会社Gemcook 中薗 良太 2 0 2 3 年 1 1 月 2 5 日
  • 2. 自 己 紹 介 1 . 社 内 で 起 こ っ た T S 議 論 2 . ま と め 3 . ア ジ ェ ン ダ
  • 3. 自 己 紹 介 01 お 前 誰 や ね ん
  • 4. 中 薗 良 太 R y o t a N a k a z o n o 株 式 会 社 G e m c o o k / フ ロ ン ト エ ン ド エ ン ジ ニ ア 歴 7 ヶ 月 ち ょ っ と 使 用 ス タ ッ ク T y p e S c r i p t R e a c t / N e x t . j s V u e / N u x t . j s V a n i l l a - E x t r a c t G r a p h Q L 自 己 紹 介
  • 5. 皆 さ ん は T y p e S c r i p t は お 好 き で す か ? 突 然 で す が ・ ・ ・ TypeScript
  • 6. 大 好 き で す ! ! TypeScripter プ ロ グ ラ ミ ン グ 学 習 中 の 僕 の 気 持 ち ・ ・ ・
  • 7. な ん で エ ラ ー ば っ か り 出 る ん ・ ・ ・ 😓 と り あ え ず a n y に し と こ 〜 😙 と は い き ま せ ん で し た ・ ・ ・
  • 8. 今 な ら 言 え る 。 大 好 き で す ! ! TypeScripter ま だ ま だ こ れ か ら で す が !
  • 9. 社 内 で 起 こ っ た T S 議 論 02 ど の 型 の 付 け 方 が い い ん だ ろ う ?
  • 10. P R 出 し ま し た ! レ ビ ュ ー お 願 い し ま す ! 社 内 で 起 こ っ た 議 論 新しく作成するLPの実装をしていた時のこと・・・ Aさん
  • 11. P R 出 し ま し た ! レ ビ ュ ー お 願 い し ま す ! 社 内 で 起 こ っ た 議 論 新しく作成するLPの実装をしていた時のこと・・・ Aさん
  • 13. 社 内 で 起 こ っ た 議 論 ネストする必要ないと思う🤔 むしろせん方がいいまでありそう。 型に汎用性を持たせようとしすぎた結果、「型の意味ないやん。」になりそうだね。 俺ならこうするかなぁ Bさんの意見も聞きたいかも Cさん
  • 14. こ こ ま で や る 必 要 あ る か な ? っ て 思 い ま し た け ど 、 デ ィ レ ク ト リ ご と に 型 つ け れ る の は い い で す ね ! で も デ ィ レ ク ト リ が 増 え て き た 時 に っ て な る の も や や 気 持 ち 悪 さ が ・ ・ ・ な の で ワ ン チ ャ ン ? 社 内 で 起 こ っ た 議 論 Bさん
  • 15. 社 内 で 起 こ っ た 議 論 違うんよー。 これが、とにかくきもいんよ...。 この型って、 ってできてしまうからね。(/stringの方に入るから!)型の意味ねぇーーーー。って感じ。 ドメインが明示的に切り分けられているから、いいとおもうんだ。 あと副次的効果として、 だけexportして、mapして使うとかやりやすいと 思うんだ。 Cさん P O L I C Y _ P A T H Bさん な る ほ ど ! 確 か に 🔥 全 部 / s t r i n g の 方 に 入 っ て き ち ゃ い ま す ね ・ ・ ・ デ ィ レ ク ト リ 増 え た 時 に も 型 を 変 え な い と い け な い の で 、 C さ ん が 提 案 し た コ ー ド が 一 番 気 持 ち い い か も で す !
  • 16. 社 内 で 起 こ っ た 議 論 ちなみにやろうと思えばこんなこともできるよ〜 Cさん
  • 17. ま と め 03 今 回 の コ ー ド レ ビ ュ ー を 通 し て 感 じ た こ と
  • 18. コ ー ド レ ビ ュ ー で す る 議 論 お も れ ぇ 1 . ユ ニ オ ン 型 の 使 い 方 気 を つ け よ 2 . T y p e S c r i p t お も ろ い や ん 3 . コ ー ド レ ビ ュ ー の 中 に た く さ ん の 価 値 が 詰 ま っ て る ! ! 今 回 の コ ー ド レ ビ ュ ー を 通 し て 感 じ た こ と
  • 19. T H A N K Y O U ! あ り が と う ご ざ い ま し た !