Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
現場のコード意識を
変えるために導入した
リーダブルコードと

ガウディの思想
1
はじめまして。
2
だいごろうと申します
m(_ _)m
本日は
お集まりいただき
ありがとうございます
( ・ ・)ノ
3
せっかく甲子園でチャレンジさ
せてもらえるので、
普段無いような観点から
(むちゃくちゃな観点から)
面白く紹介できればと思います
4
自己紹介
5
名はだいごろう
職はアプリエンジニア
歴は4年目
趣味書を読む
自称
6
魔法戦士系のエンジニア
どういうことかというと
7
プログラミングも楽しいし、UIも楽しいけど、イ
ンフラも楽しい、だけど、ビジネスも面白いし、
統計学もかじりたい、Hadoopつかってビッグ
データも解析したい. Ruby on Railsをもっと触り
たいし、Re...
本題
8
現場のコード意識を
変えるために導入した
リーダブルコードと

ガウディの思想
こういうことない?
9
• 現場のコードがなんか読みづらい
• 改修する時に、コードの解読
• このソース、なにを書いてるんだ??  
<- コミットログは俺だった。
こういうことない?
10
• 現場のコードがなんか読みづらい
• 改修する時に、コードの解読
• このソース、なにを書いてるんだ??  
<- コミットログは俺だった。
立ち上がれ同士よ
リーダブル+ガウディ
11
+
お話したいこと
12
• 現場のコード意識で変えたかったこと
1. リーダブルコードの導入
2. ガウディの思想の導入
• どうやって、導入していくか
• 導入した結果(途中
現場のコード意識で変えたかったこと
13
リーダブルコードがお
すすめだよ。
当時の俺たち
14
俺 隊
2人だしもっと
効率よくコード
を書きたいね。
当時の俺たち
15
俺 隊 隊 隊 隊
バイブル あれ?
あ、なんか、
動いた、OK
昔のコピーで
変数書き換え
よう
昔のレガシー
だけど、無理
やりやろう。
当時の俺たち
16
俺 隊 隊 隊 隊
バイブル あれ?
あ、なんか、
動いた、OK
昔のコピーで
変数書き換え
よう
昔のレガシー
だけど、無理
やりやろう。いくら減らしても
減らない難読コード
当時の俺たち
17
• 修羅の道を決意
俺 隊 隊 隊 隊
げ、現場の意識を変えないと。。。
現場のコード意識で変えたかったこと
18
• ネーミングが酷い
• 意図が見えないコード(コピーとか
• 変更部分を動くようにすればいいで
しょ?っていう考え
• とりあえず動けばいいやという発想
!
• とりあえず動けばいいやという発想
頭の中
一番の問題はここにある
19
隊
動く
意識改革のゴール
20
• 動けばいいから、
• 読みやすいコード
• 引き継ぎ
• などを考えてコードを書くことを意識
ファーストステップ
リーダブルコードの導入
21
簡単な
コーディング中に
「動く」以外の考えることを
意識してもらおう
( ・ ・)ノ
22
リーダブルコード
23
リーダブルコード
24
コードは理解しやす
くなければいけない
つまり
誰かが読んで理解す
るのに最短となる
詳細は、読んでね
リーダブルコード
25
• 表面上の改善
• ループとロジック
の単純化
• コードの再構成
人は急に変わらない
まずは、「動く」から
簡単でいいので
別のことも考えるという
ステップ
26
コーディング中に考えることを増やす
27
• 1つずつ埋め込んでいく
隊
動く
可読性
俺
シンプル
ネーミング
コメント
リーダブルを導入する
28
• 簡単なことから意識してもらう
• 表面上の改善
– ネーミング
– シンプル・ショート
– コメントにコード書いた人の考え
ネーミング
29
• 変数・メソッドのネーミング
シンプル・ショート
30
• 1ロジックずつ分割
コメント
31
• 書いた時の考え
コーディング中に考えることを増やす
32
• 脳のストレッチを進める
• 楽しくなる?
隊
動く
可読性
俺
シンプル
ネーミング コメント
セカンドステップ
ガウディの思想の導入
33
ガウディの思想って
そもそもなんやねん
(; ・`д・´)
34
サグラダ・ファミリアの不幸
35
・ガウディの事故死
・模型、設計書の損失
でも、
サグラダ・ファミリアは
建築が続いている
36
ここに引き継ぎの

ヒントがあるはず!
(゚д゚)!
37
コーディング中に考えることを増やす
38
• 引き継ぎを考えよう
隊
動く
可読性
俺
シンプル
ネーミング コメント
引き継ぎ
ガウディの思想の導入
39
• 設計書より、小さな模型で説明する
• 設計書ではなく設計思想を残す
ガウディの建築
40
• 設計書より模型(実物)
• 模型(仕様)は常に変わり続ける
• 変化することを前提とした構築
ガウディの建築
41
• 設計書より模型(実物)
• 模型(仕様)は常に変わり続ける
• 変化することを前提とした構築
アジャイルじゃない?
小さな模型で説明する
42
• 図面ではなく、1/25くらいの模型で職
人に説明し、理解させていた。その方
がはるかに伝わったから。
現場に)小さな模型で説明する
43
• 簡単に実装を書いて説明しあう
• 簡単で良い
• 全体像を意識
現場に)小さな模型で説明する
44
• 簡単に実装を書いて説明しあう
• 簡単で良い
• 全体像を意識
自分と相手の理解が統一でき
統一されたコードを書くことができる
設計思想を残す
45
• 雨が当たる部分には石とレンガを使え
• 建材は特に指定しない
• 建築手法などで良い物があれば試行し
て、よければ採用してもよい

(実際、途中から鉄筋コンクリートが
導入されている
現場に)設計思想を残す
46
• コメントに設計思想を残す
現場に)設計思想を残す
47
• コメントに設計思想を残す
明日から、俺がいなくても
大丈夫だ(゚д゚)!
コーディング中に考えることを増やす
48
• 読みやすく
• 引き継ぎやすい
隊
動く
可読性
シンプル
ネーミング コメント
引き継ぎ
お話したいこと
49
• 現場のコード意識で変えたかったこと
1. リーダブルコードの導入
2. ガウディの思想の導入
• どうやって、導入していくか
• 導入した結果(途中
導入するためにやったこと
50
• 自分でやってみる
• コードレビューで指摘してみる
• ペアプロをしてみる
• 隣のプログラマに聞いてみる
• コメントを意識して残す
• 手本を残すような気持ちで書く
自分でやってみる
51
俺
コードレビューで指摘してみる
52
• 口頭の説明が必要なら、そこにはコ
メントが必要なはず
• 違和感のある変数名とメソッド名は、
理解のじゃまになる
ペアプロしてみる
53
• 名前付けとか、構造の作成を二人で
討論しながら決めてもらう
• なぜを説明できるまで討論する
• 簡単な模型
• 短時間で良い
隣のプログラマに聞いてみる
54
• メソッドのコメントだけでどんなメ
ソッドだと思うのか聞いてみる
• 間違った答えならば、

6か月後の自分は同じ結果となる
お話したいこと
55
• 現場のコード意識で変えたかったこと
1. リーダブルコードの導入
2. ガウディの思想の導入
• どうやって、導入していくか
• 導入した結果(途中
結果(途中報告
56
コードの意識はどうなった?
57
• ネーミングと共にやることが明確に。
• 自分が何を書いているのか明確に。
• どこにそのコードは置くか意識するように。
• コードの説明をする機会が減った。
• 逆に、レビューのときに動作の不備を見落とす傾...
次は?
58
• メンバーに求めるもの
• 本を書くようなコードを書くこと
• コード設計をもっと詳しく説明
• 課題
• 継続するための環境と仕組み作り
まとめ
59
現場のコード意識を
変えるために導入した
リーダブルコードと

ガウディの思想
60
お話したいこと
61
• 現場のコード意識で変えたかったこと
1. リーダブルコードの導入
2. ガウディの思想の導入
• どうやって、導入していくか
• 導入した結果(途中
意識改革のゴール
62
• 動けばいいから、
• 読みやすいコード
• 引き継ぎ
• などを考えてコードを書くことを意識
リーダブルを導入する
63
• 簡単なことから意識してもらう
• 表面上の改善
– ネーミング
– シンプル・ショート
– コメントにコード書いた人の考え
ガウディの思想の導入
64
• 設計書より、小さな模型で説明する
• 設計書ではなく設計思想を残す
導入するためにやったこと
65
• 自分でやってみる
• コードレビューで指摘してみる
• ペアプロをしてみる
• 隣のプログラマに聞いてみる
コードの意識はどうなった?
66
• ネーミングと共にやることが明確に。
• 自分が何を書いているのか明確に。
• どこにそのコードは置くか意識。
• コードの説明をする機会が減った
• 逆に、レビューのときに動作の不備を見落とす傾向が
ある。...
さいごに
67
良いコードは
68
• より多くのビジネスチャンスを掴み
• ヒューマンエラーを少なくし
• 特定の人の存在に依存しなくなり
• 次の世代への、最高の教科書になる
Upcoming SlideShare
Loading in …5
×

現場のコード意識を変えるために導入したリーダブルコードとガウディの思想 - DevLove甲子園2014技 -

7,410 views

Published on

現場のコード意識を変えるために導入したリーダブルコードとガウディの思想

DevLove甲子園2014 西日本大会で技2裏
http://devlove-kansai.doorkeeper.jp/events/12334

だいごろうの発表資料です。

Published in: Technology
  • Sex in your area is here: ♥♥♥ http://bit.ly/2F4cEJi ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating direct: ❶❶❶ http://bit.ly/2F4cEJi ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THI5 BOOKS 1NTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

現場のコード意識を変えるために導入したリーダブルコードとガウディの思想 - DevLove甲子園2014技 -

  1. 1. 現場のコード意識を 変えるために導入した リーダブルコードと
 ガウディの思想 1
  2. 2. はじめまして。 2 だいごろうと申します m(_ _)m
  3. 3. 本日は お集まりいただき ありがとうございます ( ・ ・)ノ 3
  4. 4. せっかく甲子園でチャレンジさ せてもらえるので、 普段無いような観点から (むちゃくちゃな観点から) 面白く紹介できればと思います 4
  5. 5. 自己紹介 5 名はだいごろう 職はアプリエンジニア 歴は4年目 趣味書を読む
  6. 6. 自称 6 魔法戦士系のエンジニア
  7. 7. どういうことかというと 7 プログラミングも楽しいし、UIも楽しいけど、イ ンフラも楽しい、だけど、ビジネスも面白いし、 統計学もかじりたい、Hadoopつかってビッグ データも解析したい. Ruby on Railsをもっと触り たいし、Responsive Web designもいいけど、 dockerとVagrantで面白いことできる気がする
  8. 8. 本題 8 現場のコード意識を 変えるために導入した リーダブルコードと
 ガウディの思想
  9. 9. こういうことない? 9 • 現場のコードがなんか読みづらい • 改修する時に、コードの解読 • このソース、なにを書いてるんだ??   <- コミットログは俺だった。
  10. 10. こういうことない? 10 • 現場のコードがなんか読みづらい • 改修する時に、コードの解読 • このソース、なにを書いてるんだ??   <- コミットログは俺だった。 立ち上がれ同士よ
  11. 11. リーダブル+ガウディ 11 +
  12. 12. お話したいこと 12 • 現場のコード意識で変えたかったこと 1. リーダブルコードの導入 2. ガウディの思想の導入 • どうやって、導入していくか • 導入した結果(途中
  13. 13. 現場のコード意識で変えたかったこと 13
  14. 14. リーダブルコードがお すすめだよ。 当時の俺たち 14 俺 隊 2人だしもっと 効率よくコード を書きたいね。
  15. 15. 当時の俺たち 15 俺 隊 隊 隊 隊 バイブル あれ? あ、なんか、 動いた、OK 昔のコピーで 変数書き換え よう 昔のレガシー だけど、無理 やりやろう。
  16. 16. 当時の俺たち 16 俺 隊 隊 隊 隊 バイブル あれ? あ、なんか、 動いた、OK 昔のコピーで 変数書き換え よう 昔のレガシー だけど、無理 やりやろう。いくら減らしても 減らない難読コード
  17. 17. 当時の俺たち 17 • 修羅の道を決意 俺 隊 隊 隊 隊 げ、現場の意識を変えないと。。。
  18. 18. 現場のコード意識で変えたかったこと 18 • ネーミングが酷い • 意図が見えないコード(コピーとか • 変更部分を動くようにすればいいで しょ?っていう考え • とりあえず動けばいいやという発想
  19. 19. ! • とりあえず動けばいいやという発想 頭の中 一番の問題はここにある 19 隊 動く
  20. 20. 意識改革のゴール 20 • 動けばいいから、 • 読みやすいコード • 引き継ぎ • などを考えてコードを書くことを意識
  21. 21. ファーストステップ リーダブルコードの導入 21 簡単な
  22. 22. コーディング中に 「動く」以外の考えることを 意識してもらおう ( ・ ・)ノ 22
  23. 23. リーダブルコード 23
  24. 24. リーダブルコード 24 コードは理解しやす くなければいけない つまり 誰かが読んで理解す るのに最短となる 詳細は、読んでね
  25. 25. リーダブルコード 25 • 表面上の改善 • ループとロジック の単純化 • コードの再構成
  26. 26. 人は急に変わらない まずは、「動く」から 簡単でいいので 別のことも考えるという ステップ 26
  27. 27. コーディング中に考えることを増やす 27 • 1つずつ埋め込んでいく 隊 動く 可読性 俺 シンプル ネーミング コメント
  28. 28. リーダブルを導入する 28 • 簡単なことから意識してもらう • 表面上の改善 – ネーミング – シンプル・ショート – コメントにコード書いた人の考え
  29. 29. ネーミング 29 • 変数・メソッドのネーミング
  30. 30. シンプル・ショート 30 • 1ロジックずつ分割
  31. 31. コメント 31 • 書いた時の考え
  32. 32. コーディング中に考えることを増やす 32 • 脳のストレッチを進める • 楽しくなる? 隊 動く 可読性 俺 シンプル ネーミング コメント
  33. 33. セカンドステップ ガウディの思想の導入 33
  34. 34. ガウディの思想って そもそもなんやねん (; ・`д・´) 34
  35. 35. サグラダ・ファミリアの不幸 35 ・ガウディの事故死 ・模型、設計書の損失
  36. 36. でも、 サグラダ・ファミリアは 建築が続いている 36
  37. 37. ここに引き継ぎの
 ヒントがあるはず! (゚д゚)! 37
  38. 38. コーディング中に考えることを増やす 38 • 引き継ぎを考えよう 隊 動く 可読性 俺 シンプル ネーミング コメント 引き継ぎ
  39. 39. ガウディの思想の導入 39 • 設計書より、小さな模型で説明する • 設計書ではなく設計思想を残す
  40. 40. ガウディの建築 40 • 設計書より模型(実物) • 模型(仕様)は常に変わり続ける • 変化することを前提とした構築
  41. 41. ガウディの建築 41 • 設計書より模型(実物) • 模型(仕様)は常に変わり続ける • 変化することを前提とした構築 アジャイルじゃない?
  42. 42. 小さな模型で説明する 42 • 図面ではなく、1/25くらいの模型で職 人に説明し、理解させていた。その方 がはるかに伝わったから。
  43. 43. 現場に)小さな模型で説明する 43 • 簡単に実装を書いて説明しあう • 簡単で良い • 全体像を意識
  44. 44. 現場に)小さな模型で説明する 44 • 簡単に実装を書いて説明しあう • 簡単で良い • 全体像を意識 自分と相手の理解が統一でき 統一されたコードを書くことができる
  45. 45. 設計思想を残す 45 • 雨が当たる部分には石とレンガを使え • 建材は特に指定しない • 建築手法などで良い物があれば試行し て、よければ採用してもよい
 (実際、途中から鉄筋コンクリートが 導入されている
  46. 46. 現場に)設計思想を残す 46 • コメントに設計思想を残す
  47. 47. 現場に)設計思想を残す 47 • コメントに設計思想を残す 明日から、俺がいなくても 大丈夫だ(゚д゚)!
  48. 48. コーディング中に考えることを増やす 48 • 読みやすく • 引き継ぎやすい 隊 動く 可読性 シンプル ネーミング コメント 引き継ぎ
  49. 49. お話したいこと 49 • 現場のコード意識で変えたかったこと 1. リーダブルコードの導入 2. ガウディの思想の導入 • どうやって、導入していくか • 導入した結果(途中
  50. 50. 導入するためにやったこと 50 • 自分でやってみる • コードレビューで指摘してみる • ペアプロをしてみる • 隣のプログラマに聞いてみる
  51. 51. • コメントを意識して残す • 手本を残すような気持ちで書く 自分でやってみる 51 俺
  52. 52. コードレビューで指摘してみる 52 • 口頭の説明が必要なら、そこにはコ メントが必要なはず • 違和感のある変数名とメソッド名は、 理解のじゃまになる
  53. 53. ペアプロしてみる 53 • 名前付けとか、構造の作成を二人で 討論しながら決めてもらう • なぜを説明できるまで討論する • 簡単な模型 • 短時間で良い
  54. 54. 隣のプログラマに聞いてみる 54 • メソッドのコメントだけでどんなメ ソッドだと思うのか聞いてみる • 間違った答えならば、
 6か月後の自分は同じ結果となる
  55. 55. お話したいこと 55 • 現場のコード意識で変えたかったこと 1. リーダブルコードの導入 2. ガウディの思想の導入 • どうやって、導入していくか • 導入した結果(途中
  56. 56. 結果(途中報告 56
  57. 57. コードの意識はどうなった? 57 • ネーミングと共にやることが明確に。 • 自分が何を書いているのか明確に。 • どこにそのコードは置くか意識するように。 • コードの説明をする機会が減った。 • 逆に、レビューのときに動作の不備を見落とす傾向が ある。注意が必要。 • やり方の導入者の意見が正となりがちになってしまう
  58. 58. 次は? 58 • メンバーに求めるもの • 本を書くようなコードを書くこと • コード設計をもっと詳しく説明 • 課題 • 継続するための環境と仕組み作り
  59. 59. まとめ 59
  60. 60. 現場のコード意識を 変えるために導入した リーダブルコードと
 ガウディの思想 60
  61. 61. お話したいこと 61 • 現場のコード意識で変えたかったこと 1. リーダブルコードの導入 2. ガウディの思想の導入 • どうやって、導入していくか • 導入した結果(途中
  62. 62. 意識改革のゴール 62 • 動けばいいから、 • 読みやすいコード • 引き継ぎ • などを考えてコードを書くことを意識
  63. 63. リーダブルを導入する 63 • 簡単なことから意識してもらう • 表面上の改善 – ネーミング – シンプル・ショート – コメントにコード書いた人の考え
  64. 64. ガウディの思想の導入 64 • 設計書より、小さな模型で説明する • 設計書ではなく設計思想を残す
  65. 65. 導入するためにやったこと 65 • 自分でやってみる • コードレビューで指摘してみる • ペアプロをしてみる • 隣のプログラマに聞いてみる
  66. 66. コードの意識はどうなった? 66 • ネーミングと共にやることが明確に。 • 自分が何を書いているのか明確に。 • どこにそのコードは置くか意識。 • コードの説明をする機会が減った • 逆に、レビューのときに動作の不備を見落とす傾向が ある。注意が必要。 • やり方の導入者の意見が正となりがちになってしまう
  67. 67. さいごに 67
  68. 68. 良いコードは 68 • より多くのビジネスチャンスを掴み • ヒューマンエラーを少なくし • 特定の人の存在に依存しなくなり • 次の世代への、最高の教科書になる

×