SlideShare una empresa de Scribd logo
1 de 17
1 可読性 小川 翔二郎 2010/06/28(Wed)
目次 挨拶 SE・PG 可読性 まとめ 2
挨拶 小川 翔二郎 15807016 Martin 研所属 将来は SE か PM になりたい とても緊張してる 3
SE・PG について SE= システムエンジニア PG= プログラマ SE の仕事、 PG の仕事 上流工程、下流工程 4
大まかな開発の流れ 5 PM SE PG
システム開発はバグとの戦い システム開発にバグはつきもの バグを無くすのが理想 バグが起きても・・・ コードが見やすいとどこでバグがあるかわかる 運用・管理の人も楽 可読性が重要 6
可読性 プログラムの見やすさ・読みやすさ 可読性の要素 インデント 空白・桁合わせ 変数名・関数名 明示的な括弧 コメント 実行とは無関係 7
インデント 可読性向上のための基本技術 制御構造の範囲を明示 8 K&R スタイル void main(){ a=0; for(i=10;i<=20;i++){ if(a>i){ printf("Hi"); } a+=2; } } void main(){ } a=0; for(i=10;i<=20;i++){ } if(a>i){ } a+=2; printf("Hi");
空白 演算子の関係が明白 様々なスタイルがある 9 for(i=10;i<=20;i++){     if(i%2==0){ printf("Hi");     } } for (i = 10; i <= 20; i++) {     if (i % 2 == 0) { printf("Hi");     } }
桁合わせ 隣接する行の桁位置を合わせる 誤字や値抜けを見つけやすい 10 array1[4] = {'a',   'b',   'c',   'd'}; array2[4] = {'foo', 'bar', 'baz', 'quux'}; int a = 10000, b = 500, c = 3; printf("A=%5d", a); printf("B=%5d", b); printf("C=%5d", c);
変数名・関数名 英語でつける 動作や値がわかる名前 適度な長さ Camal 記法 最初の単語のみ小文字で始め、以降単語の先頭文字は大文字 例.isPrime(intn),toLower(charc) 11
変数名・関数名(2) Pacal 記法 各単語の先頭文字は大文字 例.IsPrime(intn),ToLower(charc) アンダーバー区切り 単語は全て小文字で区切りはアンダーバー 例.is_prime(intn),to_lower(charc) 12
明示的な括弧 無駄な括弧は不要 優先順位が分かりにくいときは明示的につける場合がある 例:a && b || c 13 (a && b) || c
コメント コードを読めばわかるようなことは書かない 関数(メソッド)の場合は複数行 14 /* 関数名:sum 引 数:int max 返り値:total = (1 から maxまでの合計値) 説 明:total を表示する */ int sum(int max) { int total = (1 + max) * max / 2; //合計値の計算 printf("%d", total); //合計値を表示する     return total; }
まとめ バグの修正やプログラムの追加のためにも可読性が高いほうがいい 日頃から可読性を意識したプログラムを書く 可読性の高いプログラムの記述は、自分のためでもある。 ほとんどの場合、やりすぎにはならない 15
予定(未定) 第1回 プログラムの可読性(今日) 第2回 計算速度とオーダー 第3回 再帰と動的計画法とメモ化 16
ありがとうございました 17

Más contenido relacionado

Similar a 可読性

Kobe sec#7 summary
Kobe sec#7 summaryKobe sec#7 summary
Kobe sec#7 summary
Yukio NAGAO
 
【17-C-4】「Axure RPによる画面プロトタイプを活用した要件定義の改善:野村総合研究所、NTTデータの事例紹介」松永充弘氏
【17-C-4】「Axure RPによる画面プロトタイプを活用した要件定義の改善:野村総合研究所、NTTデータの事例紹介」松永充弘氏【17-C-4】「Axure RPによる画面プロトタイプを活用した要件定義の改善:野村総合研究所、NTTデータの事例紹介」松永充弘氏
【17-C-4】「Axure RPによる画面プロトタイプを活用した要件定義の改善:野村総合研究所、NTTデータの事例紹介」松永充弘氏
Developers Summit
 
SIerもそろそろ運用をなんとかしたいのでいろんなOSS使ってOpsBearってツールを作りはじめたらしい 2019/02/22 オープンソースカンファレ...
SIerもそろそろ運用をなんとかしたいのでいろんなOSS使ってOpsBearってツールを作りはじめたらしい 2019/02/22 オープンソースカンファレ...SIerもそろそろ運用をなんとかしたいのでいろんなOSS使ってOpsBearってツールを作りはじめたらしい 2019/02/22 オープンソースカンファレ...
SIerもそろそろ運用をなんとかしたいのでいろんなOSS使ってOpsBearってツールを作りはじめたらしい 2019/02/22 オープンソースカンファレ...
光平 八代
 
20121124 学生セミナー「基礎からわかる! IT業界とプログラミング」
20121124 学生セミナー「基礎からわかる! IT業界とプログラミング」20121124 学生セミナー「基礎からわかる! IT業界とプログラミング」
20121124 学生セミナー「基礎からわかる! IT業界とプログラミング」
Takashi Uemura
 

Similar a 可読性 (20)

Kobe sec#7 summary
Kobe sec#7 summaryKobe sec#7 summary
Kobe sec#7 summary
 
Mizukiryu refactering-20110821
Mizukiryu refactering-20110821Mizukiryu refactering-20110821
Mizukiryu refactering-20110821
 
時間不足で詰まないためのPM tips
時間不足で詰まないためのPM tips時間不足で詰まないためのPM tips
時間不足で詰まないためのPM tips
 
Devops days 2018 Effective feedback from OPS case study in Rakuten email service
Devops days 2018 Effective feedback from OPS case study in Rakuten email serviceDevops days 2018 Effective feedback from OPS case study in Rakuten email service
Devops days 2018 Effective feedback from OPS case study in Rakuten email service
 
アジャイル開発のためのDatadog
アジャイル開発のためのDatadogアジャイル開発のためのDatadog
アジャイル開発のためのDatadog
 
Mattermostが働き方を劇的改善!NRIの働き方改革の秘訣
Mattermostが働き方を劇的改善!NRIの働き方改革の秘訣Mattermostが働き方を劇的改善!NRIの働き方改革の秘訣
Mattermostが働き方を劇的改善!NRIの働き方改革の秘訣
 
テクノアカデミー郡山 現役ソフトウェアエンジニアが語る。IT の今と未来
テクノアカデミー郡山 現役ソフトウェアエンジニアが語る。IT の今と未来テクノアカデミー郡山 現役ソフトウェアエンジニアが語る。IT の今と未来
テクノアカデミー郡山 現役ソフトウェアエンジニアが語る。IT の今と未来
 
20200803 プログラミングの基礎
20200803 プログラミングの基礎20200803 プログラミングの基礎
20200803 プログラミングの基礎
 
高信頼性を確保するソフトウェア開発手法と実践 -組込み製品の潜在的価値を今以上に高めるために-
高信頼性を確保するソフトウェア開発手法と実践-組込み製品の潜在的価値を今以上に高めるために-高信頼性を確保するソフトウェア開発手法と実践-組込み製品の潜在的価値を今以上に高めるために-
高信頼性を確保するソフトウェア開発手法と実践 -組込み製品の潜在的価値を今以上に高めるために-
 
ソフトウェアエンジニアでなくてもアジャイルが分かるセミナー
ソフトウェアエンジニアでなくてもアジャイルが分かるセミナーソフトウェアエンジニアでなくてもアジャイルが分かるセミナー
ソフトウェアエンジニアでなくてもアジャイルが分かるセミナー
 
【17-C-4】「Axure RPによる画面プロトタイプを活用した要件定義の改善:野村総合研究所、NTTデータの事例紹介」松永充弘氏
【17-C-4】「Axure RPによる画面プロトタイプを活用した要件定義の改善:野村総合研究所、NTTデータの事例紹介」松永充弘氏【17-C-4】「Axure RPによる画面プロトタイプを活用した要件定義の改善:野村総合研究所、NTTデータの事例紹介」松永充弘氏
【17-C-4】「Axure RPによる画面プロトタイプを活用した要件定義の改善:野村総合研究所、NTTデータの事例紹介」松永充弘氏
 
Reckonerサービス紹介資料.pdf
Reckonerサービス紹介資料.pdfReckonerサービス紹介資料.pdf
Reckonerサービス紹介資料.pdf
 
運用レコメンドPF OpsBear ~運用作業における調査/分析の機械化~ (OpsX Meet Up v18.12)
運用レコメンドPF OpsBear ~運用作業における調査/分析の機械化~ (OpsX Meet Up v18.12)運用レコメンドPF OpsBear ~運用作業における調査/分析の機械化~ (OpsX Meet Up v18.12)
運用レコメンドPF OpsBear ~運用作業における調査/分析の機械化~ (OpsX Meet Up v18.12)
 
Kaiki_lt_olt_kindofengineer
Kaiki_lt_olt_kindofengineerKaiki_lt_olt_kindofengineer
Kaiki_lt_olt_kindofengineer
 
SIerもそろそろ運用をなんとかしたいのでいろんなOSS使ってOpsBearってツールを作りはじめたらしい 2019/02/22 オープンソースカンファレ...
SIerもそろそろ運用をなんとかしたいのでいろんなOSS使ってOpsBearってツールを作りはじめたらしい 2019/02/22 オープンソースカンファレ...SIerもそろそろ運用をなんとかしたいのでいろんなOSS使ってOpsBearってツールを作りはじめたらしい 2019/02/22 オープンソースカンファレ...
SIerもそろそろ運用をなんとかしたいのでいろんなOSS使ってOpsBearってツールを作りはじめたらしい 2019/02/22 オープンソースカンファレ...
 
20121124 学生セミナー「基礎からわかる! IT業界とプログラミング」
20121124 学生セミナー「基礎からわかる! IT業界とプログラミング」20121124 学生セミナー「基礎からわかる! IT業界とプログラミング」
20121124 学生セミナー「基礎からわかる! IT業界とプログラミング」
 
Ticketnote 紹介スライド
Ticketnote 紹介スライドTicketnote 紹介スライド
Ticketnote 紹介スライド
 
レガシーコードに向き合ってみた話
レガシーコードに向き合ってみた話レガシーコードに向き合ってみた話
レガシーコードに向き合ってみた話
 
20190517 twilio business seminar in osaka #3
20190517 twilio business seminar in osaka #320190517 twilio business seminar in osaka #3
20190517 twilio business seminar in osaka #3
 
リーン開発の本質 公開用
リーン開発の本質 公開用リーン開発の本質 公開用
リーン開発の本質 公開用
 

Más de Kiminari Homma

Agu itr 20100901_communication
Agu itr 20100901_communicationAgu itr 20100901_communication
Agu itr 20100901_communication
Kiminari Homma
 

Más de Kiminari Homma (19)

Smart Communication Award 2016 モバイル電話サポートSDK
Smart Communication Award 2016 モバイル電話サポートSDKSmart Communication Award 2016 モバイル電話サポートSDK
Smart Communication Award 2016 モバイル電話サポートSDK
 
コールセンターを知る
コールセンターを知るコールセンターを知る
コールセンターを知る
 
IPメッセージング勉強会「WebのリアルタイムとIPメッセージング」
IPメッセージング勉強会「WebのリアルタイムとIPメッセージング」IPメッセージング勉強会「WebのリアルタイムとIPメッセージング」
IPメッセージング勉強会「WebのリアルタイムとIPメッセージング」
 
私の考える Startup Geeks
私の考える Startup Geeks私の考える Startup Geeks
私の考える Startup Geeks
 
Twilio serveless architecture
Twilio serveless architectureTwilio serveless architecture
Twilio serveless architecture
 
スタートアップが AWS Lambda を導入した理由
スタートアップが AWS Lambda を導入した理由スタートアップが AWS Lambda を導入した理由
スタートアップが AWS Lambda を導入した理由
 
電話とは何か、そして Twilio の正体
電話とは何か、そして Twilio の正体電話とは何か、そして Twilio の正体
電話とは何か、そして Twilio の正体
 
Swift afterbeginner
Swift afterbeginnerSwift afterbeginner
Swift afterbeginner
 
Swift afterbeginner
Swift afterbeginnerSwift afterbeginner
Swift afterbeginner
 
Call cloud
Call cloudCall cloud
Call cloud
 
Erlang
ErlangErlang
Erlang
 
Erlang
ErlangErlang
Erlang
 
Agu itr 20100901_communication
Agu itr 20100901_communicationAgu itr 20100901_communication
Agu itr 20100901_communication
 
Rfid
RfidRfid
Rfid
 
Java script4
Java script4Java script4
Java script4
 
Java Script4
Java Script4Java Script4
Java Script4
 
Javascript3
Javascript3Javascript3
Javascript3
 
Jsonp
JsonpJsonp
Jsonp
 
Java script1
Java script1Java script1
Java script1
 

可読性