SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
闇の魔術に対する防衛術
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> で
犯人を探し出して
は
い
死
ね
|
!!!
やめよう
心穏やかに
エンジニアリング
しよう
闇の魔術に対する防衛術

Más contenido relacionado

Similar a 闇の魔術に対する防衛術

プロ生品川 2012 12-22
プロ生品川 2012 12-22プロ生品川 2012 12-22
プロ生品川 2012 12-22
Kaede Kondoh
 
情報理工Android勉強会第一回大将Part
情報理工Android勉強会第一回大将Part情報理工Android勉強会第一回大将Part
情報理工Android勉強会第一回大将Part
Hiroki Sakamoto
 
Android勉強会第二回-非同期処理-
Android勉強会第二回-非同期処理-Android勉強会第二回-非同期処理-
Android勉強会第二回-非同期処理-
Hiroki Sakamoto
 
NGN2012B 発表資料
NGN2012B 発表資料NGN2012B 発表資料
NGN2012B 発表資料
Kenji Nagase
 

Similar a 闇の魔術に対する防衛術 (20)

BluemixでサクッとIoT ! ~ IoT Foundation, Node-RED や Azure Event Hub との連携もお助けヾ(o´∀`o)ノ
BluemixでサクッとIoT ! ~ IoT Foundation, Node-RED や Azure Event Hub との連携もお助けヾ(o´∀`o)ノBluemixでサクッとIoT ! ~ IoT Foundation, Node-RED や Azure Event Hub との連携もお助けヾ(o´∀`o)ノ
BluemixでサクッとIoT ! ~ IoT Foundation, Node-RED や Azure Event Hub との連携もお助けヾ(o´∀`o)ノ
 
CardboardのUXをカメラで向上する (droidkaigi 2015/04)
CardboardのUXをカメラで向上する (droidkaigi 2015/04)CardboardのUXをカメラで向上する (droidkaigi 2015/04)
CardboardのUXをカメラで向上する (droidkaigi 2015/04)
 
実録!HoloLens×AI×IoTアプリが開発できるまでの挫折と成功
実録!HoloLens×AI×IoTアプリが開発できるまでの挫折と成功実録!HoloLens×AI×IoTアプリが開発できるまでの挫折と成功
実録!HoloLens×AI×IoTアプリが開発できるまでの挫折と成功
 
160531 IoT LT #15 @ 日本IBM
160531 IoT LT #15 @ 日本IBM160531 IoT LT #15 @ 日本IBM
160531 IoT LT #15 @ 日本IBM
 
パケットキャプチャでインフラ主導のデバッグ環境を作る
パケットキャプチャでインフラ主導のデバッグ環境を作るパケットキャプチャでインフラ主導のデバッグ環境を作る
パケットキャプチャでインフラ主導のデバッグ環境を作る
 
組み込み向けC++のやり方を探る - mbedで楽しい組み込みプログラミング -
組み込み向けC++のやり方を探る - mbedで楽しい組み込みプログラミング -組み込み向けC++のやり方を探る - mbedで楽しい組み込みプログラミング -
組み込み向けC++のやり方を探る - mbedで楽しい組み込みプログラミング -
 
Surface で 謎開発
Surface で 謎開発Surface で 謎開発
Surface で 謎開発
 
プロ生品川 2012 12-22
プロ生品川 2012 12-22プロ生品川 2012 12-22
プロ生品川 2012 12-22
 
ビジュアライゼーションの役割とUI開発のイノベーション(2)
ビジュアライゼーションの役割とUI開発のイノベーション(2)ビジュアライゼーションの役割とUI開発のイノベーション(2)
ビジュアライゼーションの役割とUI開発のイノベーション(2)
 
BlackMagic ProbeでARMをデバッグする
BlackMagic ProbeでARMをデバッグするBlackMagic ProbeでARMをデバッグする
BlackMagic ProbeでARMをデバッグする
 
情報理工Android勉強会第一回大将Part
情報理工Android勉強会第一回大将Part情報理工Android勉強会第一回大将Part
情報理工Android勉強会第一回大将Part
 
20180217 hackertackle geode
20180217 hackertackle geode20180217 hackertackle geode
20180217 hackertackle geode
 
Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記
 
今年かかった麻疹まとめ
今年かかった麻疹まとめ今年かかった麻疹まとめ
今年かかった麻疹まとめ
 
コードを書かずにLチカ。から始めよう
コードを書かずにLチカ。から始めようコードを書かずにLチカ。から始めよう
コードを書かずにLチカ。から始めよう
 
Android勉強会第二回-非同期処理-
Android勉強会第二回-非同期処理-Android勉強会第二回-非同期処理-
Android勉強会第二回-非同期処理-
 
NGN2012B 発表資料
NGN2012B 発表資料NGN2012B 発表資料
NGN2012B 発表資料
 
IDCFクラウド MeetUp2 LT
IDCFクラウド MeetUp2 LTIDCFクラウド MeetUp2 LT
IDCFクラウド MeetUp2 LT
 
PRD01 Office 365 Overview いま365ってどうなってるの?
PRD01 Office 365 Overview いま365ってどうなってるの?PRD01 Office 365 Overview いま365ってどうなってるの?
PRD01 Office 365 Overview いま365ってどうなってるの?
 
はんなりPython #45
はんなりPython #45はんなりPython #45
はんなりPython #45
 

Más de Yuki Ishikawa

Más de Yuki Ishikawa (20)

Introduction to GPU Programming in Python
Introduction to GPU Programming in PythonIntroduction to GPU Programming in Python
Introduction to GPU Programming in Python
 
新婚旅行を支える技術
新婚旅行を支える技術新婚旅行を支える技術
新婚旅行を支える技術
 
ラマダーン入門
ラマダーン入門ラマダーン入門
ラマダーン入門
 
ステージング環境のつくりかた
ステージング環境のつくりかたステージング環境のつくりかた
ステージング環境のつくりかた
 
マッカレル de おうちハック
マッカレル de おうちハックマッカレル de おうちハック
マッカレル de おうちハック
 
スタートアップのくせになまいきだ
スタートアップのくせになまいきだスタートアップのくせになまいきだ
スタートアップのくせになまいきだ
 
JavaScript over HTTP/2
JavaScript over HTTP/2JavaScript over HTTP/2
JavaScript over HTTP/2
 
コンポーネント時代の CSS 設計
コンポーネント時代の CSS 設計コンポーネント時代の CSS 設計
コンポーネント時代の CSS 設計
 
React+fluxを導入した話
React+fluxを導入した話React+fluxを導入した話
React+fluxを導入した話
 
サーバを運用する時代は終わった
サーバを運用する時代は終わったサーバを運用する時代は終わった
サーバを運用する時代は終わった
 
Apple に依存する僕の生存戦略
Apple に依存する僕の生存戦略Apple に依存する僕の生存戦略
Apple に依存する僕の生存戦略
 
gulp芸
gulp芸gulp芸
gulp芸
 
アニメーションしたい
アニメーションしたいアニメーションしたい
アニメーションしたい
 
趣きのある Bot
趣きのある Bot趣きのある Bot
趣きのある Bot
 
Bot に家計を任せる
Bot に家計を任せるBot に家計を任せる
Bot に家計を任せる
 
時をかけるほと
時をかけるほと時をかけるほと
時をかけるほと
 
まだ DOM 操作で消耗してるの?
まだ DOM 操作で消耗してるの?まだ DOM 操作で消耗してるの?
まだ DOM 操作で消耗してるの?
 
( ゚∀゚)o彡° Flux! Flux!
( ゚∀゚)o彡° Flux! Flux!( ゚∀゚)o彡° Flux! Flux!
( ゚∀゚)o彡° Flux! Flux!
 
peco活用術
peco活用術peco活用術
peco活用術
 
JavaScript 研修
JavaScript 研修JavaScript 研修
JavaScript 研修
 

Último

Último (7)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

闇の魔術に対する防衛術