SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Downloaden Sie, um offline zu lesen
「いいコード」を
みんなで書こう!
「いいコード」についての
   思いを共有し、
全員が自分以外のコードも
さわれる文化を作りたい!
そもそも「いいコード」って?
   思いやりのあるコード
    よく言うと、誰でも触れるコード
  ぶっちゃけると、引き継ぎが楽なコード
そもそも「いいコード」って?
   思いやりのあるコード
    よく言うと、誰でも触れるコード
  ぶっちゃけると、引き継ぎが楽なコード




リーダブル        テストしやすい
リーダブルコード
● オープン
  ○ 書いた人の意図が明確
● 簡潔<安心
● 読む人が理解にかかる時間が最小
テストしやすいコード
● テストコードがないコードは触れたくない
  (-_-)
● →テストコードが必要
● →テストコードが書きやすいコード
思いやりのあるコードを
   書くために心がけること
● オープンにする
  ○ ざっくばらんなコメント歓迎
● ルールを決めて守る
  ○ 規約や手順
  ○ コードレビューによる均質化
● テストを書く
思いやりのあるプログラマに
       なるためには
●   知る
●   読む
●   (写す)
●   書く
●   磨く
知る
● 基本的な文法
  ○ Hello world
  ○ 制御構造
  ○ クラス、メソッドの作成
  ○ パッケージ、モジュール
  ○ ファイル操作
● 確認する
参考
       Javaプログラマであるかを見分ける10の質問
      やさしいデスマーチ(http://d.hatena.ne.jp/shuji_w6e/20110305/1299288660)


 1.   ==演算子とequalsメソッドの違いは何か?
 2.   文字列の+演算子による連結とStringBuilderを使った連結の違いを説明せよ。
 3.   List<Integer>のようにジェネリクス型を使う主たる目的は何か?
 4.   オブジェクトがガベージコレクション(GC)される主たる条件は何か?
 5.   チェック例外と非チェック例外の違いを型と例外処理の観点で説明せよ。
 6.   フィールドのアクセス修飾子をprivateにしgetter/setterメソッドを提供する事でフィールド
      を参照する設計方針を取る主な理由を説明せよ
 7.   NullPointerExceptionが発生するのは主にどういう状況か?
 8.   オーバーロードとオーバーライドの違いは何か?
 9.   コンストラクタとは何か?
10.   インタフェースを利用する目的を1つ説明せよ
読む
● いい本
● いいコード
  ○ とりえずは自分が使っているライブラリやツールのコード
   がベター
  ○最初は何が「いいコード」なのか判断つかないし…
● 書く量<読む量?



          「成績を伸ばす一番簡単な方法は一、音読」
書く
● まめにコミット
  ○ No ticket! No commit!
  ○ No test! No commit!
● コードレビュー
  ○ でも、レビューはレビューアの知っている範囲の指摘しか
   できないので注意
磨く
● 最新の動向をつかむ
  ○ 変化に適応する
● 勉強会に参加する
● アウトプットしてみる
参考
IT勉強会カレンダー
まとめ
    思いやりのあるコード
(リーダブル+テストしやすい)を
   書けるように心かげよう。
まとめ
    思いやりのあるコード
(リーダブル+テストしやすい)を
   書けるように心かげよう。

     いつから?
まとめ
    思いやりのあるコード
(リーダブル+テストしやすい)を
   書けるように心かげよう。

     いつから?
     今でしょ!
おしまい\(^o^)/

Weitere ähnliche Inhalte

Ähnlich wie 「いいコード」をみんなで書こう!

プログラムを作って飯を食うということ
プログラムを作って飯を食うということプログラムを作って飯を食うということ
プログラムを作って飯を食うということFunato Takashi
 
リーダブルコード 1.0'
リーダブルコード 1.0'リーダブルコード 1.0'
リーダブルコード 1.0'Yamamura Takashi
 
リーダブルコード
リーダブルコードリーダブルコード
リーダブルコードJun Ootani
 
新人がTDDを学ぶ方法
新人がTDDを学ぶ方法新人がTDDを学ぶ方法
新人がTDDを学ぶ方法Ito Kunihiko
 
Readable coder
Readable coderReadable coder
Readable coderabochi7328
 
プログラミングを早くする方法
プログラミングを早くする方法プログラミングを早くする方法
プログラミングを早くする方法kazukiTakahashi18
 
プログラマが欲しい仕様書とは
プログラマが欲しい仕様書とはプログラマが欲しい仕様書とは
プログラマが欲しい仕様書とはKatsutoshi Makino
 
エンジニアがとるべき8つの行動
エンジニアがとるべき8つの行動エンジニアがとるべき8つの行動
エンジニアがとるべき8つの行動Hiroshi Ogino
 
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ増田 亨
 
Big Data入門に見せかけたFluentd入門
Big Data入門に見せかけたFluentd入門Big Data入門に見せかけたFluentd入門
Big Data入門に見せかけたFluentd入門Keisuke Takahashi
 
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTest Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTakuto Wada
 
可読性について リーダブルコード Part4(優れたテストコード1)
可読性について リーダブルコード Part4(優れたテストコード1)可読性について リーダブルコード Part4(優れたテストコード1)
可読性について リーダブルコード Part4(優れたテストコード1)tak
 
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-nishio
 
CodingTips+ 基礎編
CodingTips+ 基礎編CodingTips+ 基礎編
CodingTips+ 基礎編Yusuke Ito
 
可読性について リーダブルコード part1(表面上の改善)
可読性について リーダブルコード part1(表面上の改善)可読性について リーダブルコード part1(表面上の改善)
可読性について リーダブルコード part1(表面上の改善)tak
 
Blenderソースコードリーディング
BlenderソースコードリーディングBlenderソースコードリーディング
BlenderソースコードリーディングTetsuo Mitsuda
 
集合知プログラミング勉強会キックオフMTG LT用資料
集合知プログラミング勉強会キックオフMTG LT用資料集合知プログラミング勉強会キックオフMTG LT用資料
集合知プログラミング勉強会キックオフMTG LT用資料tetsuro ito
 
リーダブルコード勉強会 in 筑波大のまとめ
リーダブルコード勉強会 in 筑波大のまとめリーダブルコード勉強会 in 筑波大のまとめ
リーダブルコード勉強会 in 筑波大のまとめKouhei Sutou
 

Ähnlich wie 「いいコード」をみんなで書こう! (20)

プログラムを作って飯を食うということ
プログラムを作って飯を食うということプログラムを作って飯を食うということ
プログラムを作って飯を食うということ
 
リーダブルコード 1.0'
リーダブルコード 1.0'リーダブルコード 1.0'
リーダブルコード 1.0'
 
リーダブルコード
リーダブルコードリーダブルコード
リーダブルコード
 
言語処理学会へ遊びに行ったよ
言語処理学会へ遊びに行ったよ言語処理学会へ遊びに行ったよ
言語処理学会へ遊びに行ったよ
 
新人がTDDを学ぶ方法
新人がTDDを学ぶ方法新人がTDDを学ぶ方法
新人がTDDを学ぶ方法
 
Readable coder
Readable coderReadable coder
Readable coder
 
プログラミングを早くする方法
プログラミングを早くする方法プログラミングを早くする方法
プログラミングを早くする方法
 
プログラマが欲しい仕様書とは
プログラマが欲しい仕様書とはプログラマが欲しい仕様書とは
プログラマが欲しい仕様書とは
 
エンジニアがとるべき8つの行動
エンジニアがとるべき8つの行動エンジニアがとるべき8つの行動
エンジニアがとるべき8つの行動
 
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
 
Big Data入門に見せかけたFluentd入門
Big Data入門に見せかけたFluentd入門Big Data入門に見せかけたFluentd入門
Big Data入門に見せかけたFluentd入門
 
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTest Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
 
Sue445 Style TDD #atest_hack
Sue445 Style TDD #atest_hackSue445 Style TDD #atest_hack
Sue445 Style TDD #atest_hack
 
可読性について リーダブルコード Part4(優れたテストコード1)
可読性について リーダブルコード Part4(優れたテストコード1)可読性について リーダブルコード Part4(優れたテストコード1)
可読性について リーダブルコード Part4(優れたテストコード1)
 
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
 
CodingTips+ 基礎編
CodingTips+ 基礎編CodingTips+ 基礎編
CodingTips+ 基礎編
 
可読性について リーダブルコード part1(表面上の改善)
可読性について リーダブルコード part1(表面上の改善)可読性について リーダブルコード part1(表面上の改善)
可読性について リーダブルコード part1(表面上の改善)
 
Blenderソースコードリーディング
BlenderソースコードリーディングBlenderソースコードリーディング
Blenderソースコードリーディング
 
集合知プログラミング勉強会キックオフMTG LT用資料
集合知プログラミング勉強会キックオフMTG LT用資料集合知プログラミング勉強会キックオフMTG LT用資料
集合知プログラミング勉強会キックオフMTG LT用資料
 
リーダブルコード勉強会 in 筑波大のまとめ
リーダブルコード勉強会 in 筑波大のまとめリーダブルコード勉強会 in 筑波大のまとめ
リーダブルコード勉強会 in 筑波大のまとめ
 

「いいコード」をみんなで書こう!

  • 2. 「いいコード」についての 思いを共有し、 全員が自分以外のコードも さわれる文化を作りたい!
  • 3. そもそも「いいコード」って? 思いやりのあるコード よく言うと、誰でも触れるコード ぶっちゃけると、引き継ぎが楽なコード
  • 4. そもそも「いいコード」って? 思いやりのあるコード よく言うと、誰でも触れるコード ぶっちゃけると、引き継ぎが楽なコード リーダブル テストしやすい
  • 5. リーダブルコード ● オープン ○ 書いた人の意図が明確 ● 簡潔<安心 ● 読む人が理解にかかる時間が最小
  • 6. テストしやすいコード ● テストコードがないコードは触れたくない (-_-) ● →テストコードが必要 ● →テストコードが書きやすいコード
  • 7. 思いやりのあるコードを 書くために心がけること ● オープンにする ○ ざっくばらんなコメント歓迎 ● ルールを決めて守る ○ 規約や手順 ○ コードレビューによる均質化 ● テストを書く
  • 8. 思いやりのあるプログラマに なるためには ● 知る ● 読む ● (写す) ● 書く ● 磨く
  • 9. 知る ● 基本的な文法 ○ Hello world ○ 制御構造 ○ クラス、メソッドの作成 ○ パッケージ、モジュール ○ ファイル操作 ● 確認する
  • 10. 参考 Javaプログラマであるかを見分ける10の質問 やさしいデスマーチ(http://d.hatena.ne.jp/shuji_w6e/20110305/1299288660) 1. ==演算子とequalsメソッドの違いは何か? 2. 文字列の+演算子による連結とStringBuilderを使った連結の違いを説明せよ。 3. List<Integer>のようにジェネリクス型を使う主たる目的は何か? 4. オブジェクトがガベージコレクション(GC)される主たる条件は何か? 5. チェック例外と非チェック例外の違いを型と例外処理の観点で説明せよ。 6. フィールドのアクセス修飾子をprivateにしgetter/setterメソッドを提供する事でフィールド を参照する設計方針を取る主な理由を説明せよ 7. NullPointerExceptionが発生するのは主にどういう状況か? 8. オーバーロードとオーバーライドの違いは何か? 9. コンストラクタとは何か? 10. インタフェースを利用する目的を1つ説明せよ
  • 11. 読む ● いい本 ● いいコード ○ とりえずは自分が使っているライブラリやツールのコード がベター ○最初は何が「いいコード」なのか判断つかないし… ● 書く量<読む量? 「成績を伸ばす一番簡単な方法は一、音読」
  • 12. 書く ● まめにコミット ○ No ticket! No commit! ○ No test! No commit! ● コードレビュー ○ でも、レビューはレビューアの知っている範囲の指摘しか できないので注意
  • 13. 磨く ● 最新の動向をつかむ ○ 変化に適応する ● 勉強会に参加する ● アウトプットしてみる
  • 15. まとめ 思いやりのあるコード (リーダブル+テストしやすい)を 書けるように心かげよう。
  • 16. まとめ 思いやりのあるコード (リーダブル+テストしやすい)を 書けるように心かげよう。 いつから?
  • 17. まとめ 思いやりのあるコード (リーダブル+テストしやすい)を 書けるように心かげよう。 いつから? 今でしょ!