31
闇の魔術に対する防衛術 2015/12/12 (だいたい)新卒エンジニア向け技術交流会 vol.5 @hoto17296

闇の魔術に対する防衛術

Embed Size (px)

Citation preview

闇の魔術に対する防衛術

2015/12/12 (だいたい)新卒エンジニア向け技術交流会 vol.5

@hoto17296

アジェンダ

• 闇の紹介 • クソコード

• クソ設計

• クソエンジニア

• 闇とどう立ち向かえばいいか

(前置き)

この世界は

クソプロダクトで

溢れかえっている

たとえクソプロダクトでも

価値が提供できていれば

それでいい

ただぼくたちエンジニアが

心穏やかでないというだけ

闇の紹介

クソコード

• テストが書かれていないのはデフォ

• 過剰な抽象化

• 「やってみたかっただけ」感

• 1機能の些細な修正がプロダクト全体に影響

• フレームワークの思想やデザインパターンをガン無視

• View にデータ更新処理が書いてある

クソ設計

• Web サーバ2台あるはずなのに1台死んだらサービスが止まった

• 互いのミドルウェアに依存していた

• 冗長化 #とは

• 冗長化してると思ったらただの負荷分散だった

クソエンジニア

• 深夜に障害対応をしてありがたがられる

• 障害の原因を作ったのもお前だ

• 徹夜で開発して重宝がられる

• 「残業はデフォ」みたいな空気を作るな

しかし

もう辞めたエンジニアを愚痴ってもなにも改善しない

前に進もう

闇に立ち向かう方法

バージョン管理

• 闇を生まないための基本 (1)

• いつ誰が何をどう変更したのかがわかる

• 以前の状態にロールバックできる

コードレビュー

• 闇を生まないための基本 (2)

• 責任の分散

• 「見抜けなかった俺も悪かった」

• 「レビューされる」という意識を持つことで気が引き締まる

テストケース

• 闇が生まれても倒せる

• 高速な開発サイクルを回すのに必要不可欠

しかし結局

どうやったって

闇は生まれる

闇を許容せよ

許容したうえで、

立ち向かう強さを持とう

ハンロンの剃刀 (Hanlon's razor)

” Never attribute to malice that which is adequately explained by stupidity. ”

” 無能で十分説明されることに悪意を見出すな ”

クソプロダクトは

無能や愚かさから

生まれるのであって

そこに悪意が

あるわけではい

人は誰しもがどこか

無能で愚かなのであり

人によってその程度が

少し違うだけである

だから

おもむろに git blame -w <file> で

犯人を探し出して

は い 死 ね |

!!!

やめよう

心穏やかに

エンジニアリング

しよう