Your SlideShare is downloading. ×
現場のコード意識を変えるために導入したリーダブルコードとガウディの思想 - DevLove甲子園2014技 -
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

5,065

Published on

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

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

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

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

Published in: Technology
0 Comments
35 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,065
On Slideshare
0
From Embeds
0
Number of Embeds
20
Actions
Shares
0
Downloads
17
Comments
0
Likes
35
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×