Soumettre la recherche
Mettre en ligne
リーダブルコード 第二章
•
8 j'aime
•
7,065 vues
Yuto Ogi
Suivre
社内発表にて使用した資料です。
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 15
Recommandé
3Dシミュレーションと最適化 3D-Simulation&Optimization 川合雅巳 KAWAI MASAMI
3Dシミュレーションと最適化 3D-Simulation&Optimization 川合雅巳 KAWAI MASAMI
MASAMI KAWAI
The art of readable code ( pdf )
The art of readable code ( pdf )
Jocelyn Hsu
最近の単体テスト
最近の単体テスト
Ken Morishita
脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_Query
Hidekazu Ishikawa
私のチームのリーダブルコード
私のチームのリーダブルコード
Keisuke Tameyasu
パフォーマンスの良いGASの書き方 Best Practice
パフォーマンスの良いGASの書き方 Best Practice
啓介 大橋
BigQueryの課金、節約しませんか
BigQueryの課金、節約しませんか
Ryuji Tamagawa
モテる JavaScript
モテる JavaScript
Osamu Monoe
Recommandé
3Dシミュレーションと最適化 3D-Simulation&Optimization 川合雅巳 KAWAI MASAMI
3Dシミュレーションと最適化 3D-Simulation&Optimization 川合雅巳 KAWAI MASAMI
MASAMI KAWAI
The art of readable code ( pdf )
The art of readable code ( pdf )
Jocelyn Hsu
最近の単体テスト
最近の単体テスト
Ken Morishita
脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_Query
Hidekazu Ishikawa
私のチームのリーダブルコード
私のチームのリーダブルコード
Keisuke Tameyasu
パフォーマンスの良いGASの書き方 Best Practice
パフォーマンスの良いGASの書き方 Best Practice
啓介 大橋
BigQueryの課金、節約しませんか
BigQueryの課金、節約しませんか
Ryuji Tamagawa
モテる JavaScript
モテる JavaScript
Osamu Monoe
GWOの使い方~非同期タグVer~
GWOの使い方~非同期タグVer~
Kazumasa Harumoto
フロント作業の効率化
フロント作業の効率化
Yuto Yoshinari
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
normalian
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
Yahoo!デベロッパーネットワーク
【第2回】デザイナーがコードから読み解く、Androidアプリのデザインの幅を広げるコツとTips
【第2回】デザイナーがコードから読み解く、Androidアプリのデザインの幅を広げるコツとTips
Chihiro Tomita
2018年度 若手技術者向け講座 リファクタリング
2018年度 若手技術者向け講座 リファクタリング
keki3
RLアーキテクチャ勉強会 MERLIN
RLアーキテクチャ勉強会 MERLIN
YumaKajihara
ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回
Naoyuki Yamada
blogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べ
Masahiro Nagano
FRT Vol. 4 インサイド・クラウドプラットフォーム
FRT Vol. 4 インサイド・クラウドプラットフォーム
Yasunari Goto (iChain. Inc.)
Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例
健一 辰濱
GoogleWebsiteOptimizerの使い方:非同期タグバージョン
GoogleWebsiteOptimizerの使い方:非同期タグバージョン
VOYAGE GROUP UIO strategies section
JAZUG12周年 俺の Azure Cosmos DB
JAZUG12周年 俺の Azure Cosmos DB
Daiyu Hatakeyama
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
Narami Kiyokura
アプリコンテスト
アプリコンテスト
Tomonori Yamada
Lightning Experience 時代のプロセス開発
Lightning Experience 時代のプロセス開発
Salesforce Developers Japan
Enumはデキる子 ~ case .Success(let value): ~
Enumはデキる子 ~ case .Success(let value): ~
Takaaki Tanaka
2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk
mitamex4u
Effective python #5, #6
Effective python #5, #6
bontakun
⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2
Nishida Kansuke
Rails application template
Rails application template
Yuto Ogi
Ruby with AWS DynamoDB
Ruby with AWS DynamoDB
Yuto Ogi
Contenu connexe
Similaire à リーダブルコード 第二章
GWOの使い方~非同期タグVer~
GWOの使い方~非同期タグVer~
Kazumasa Harumoto
フロント作業の効率化
フロント作業の効率化
Yuto Yoshinari
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
normalian
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
Yahoo!デベロッパーネットワーク
【第2回】デザイナーがコードから読み解く、Androidアプリのデザインの幅を広げるコツとTips
【第2回】デザイナーがコードから読み解く、Androidアプリのデザインの幅を広げるコツとTips
Chihiro Tomita
2018年度 若手技術者向け講座 リファクタリング
2018年度 若手技術者向け講座 リファクタリング
keki3
RLアーキテクチャ勉強会 MERLIN
RLアーキテクチャ勉強会 MERLIN
YumaKajihara
ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回
Naoyuki Yamada
blogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べ
Masahiro Nagano
FRT Vol. 4 インサイド・クラウドプラットフォーム
FRT Vol. 4 インサイド・クラウドプラットフォーム
Yasunari Goto (iChain. Inc.)
Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例
健一 辰濱
GoogleWebsiteOptimizerの使い方:非同期タグバージョン
GoogleWebsiteOptimizerの使い方:非同期タグバージョン
VOYAGE GROUP UIO strategies section
JAZUG12周年 俺の Azure Cosmos DB
JAZUG12周年 俺の Azure Cosmos DB
Daiyu Hatakeyama
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
Narami Kiyokura
アプリコンテスト
アプリコンテスト
Tomonori Yamada
Lightning Experience 時代のプロセス開発
Lightning Experience 時代のプロセス開発
Salesforce Developers Japan
Enumはデキる子 ~ case .Success(let value): ~
Enumはデキる子 ~ case .Success(let value): ~
Takaaki Tanaka
2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk
mitamex4u
Effective python #5, #6
Effective python #5, #6
bontakun
⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2
Nishida Kansuke
Similaire à リーダブルコード 第二章
(20)
GWOの使い方~非同期タグVer~
GWOの使い方~非同期タグVer~
フロント作業の効率化
フロント作業の効率化
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
【第2回】デザイナーがコードから読み解く、Androidアプリのデザインの幅を広げるコツとTips
【第2回】デザイナーがコードから読み解く、Androidアプリのデザインの幅を広げるコツとTips
2018年度 若手技術者向け講座 リファクタリング
2018年度 若手技術者向け講座 リファクタリング
RLアーキテクチャ勉強会 MERLIN
RLアーキテクチャ勉強会 MERLIN
ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回
blogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べ
FRT Vol. 4 インサイド・クラウドプラットフォーム
FRT Vol. 4 インサイド・クラウドプラットフォーム
Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例
GoogleWebsiteOptimizerの使い方:非同期タグバージョン
GoogleWebsiteOptimizerの使い方:非同期タグバージョン
JAZUG12周年 俺の Azure Cosmos DB
JAZUG12周年 俺の Azure Cosmos DB
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
アプリコンテスト
アプリコンテスト
Lightning Experience 時代のプロセス開発
Lightning Experience 時代のプロセス開発
Enumはデキる子 ~ case .Success(let value): ~
Enumはデキる子 ~ case .Success(let value): ~
2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk
Effective python #5, #6
Effective python #5, #6
⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2
Plus de Yuto Ogi
Rails application template
Rails application template
Yuto Ogi
Ruby with AWS DynamoDB
Ruby with AWS DynamoDB
Yuto Ogi
s3_website
s3_website
Yuto Ogi
OSC浜名湖2016 Hamamatsu.rbの歩みとITコミュニティとの上手な関わり方
OSC浜名湖2016 Hamamatsu.rbの歩みとITコミュニティとの上手な関わり方
Yuto Ogi
itamaeで一撃サーバーProvisioning
itamaeで一撃サーバーProvisioning
Yuto Ogi
浜松Ruby会議01
浜松Ruby会議01
Yuto Ogi
DMLを実行するrubyスクリプトをmigrationファイルのように管理するRailsプラグインを作った
DMLを実行するrubyスクリプトをmigrationファイルのように管理するRailsプラグインを作った
Yuto Ogi
Web制作者のためのサーバー勉強会@沼津
Web制作者のためのサーバー勉強会@沼津
Yuto Ogi
Hamamatsurb#30
Hamamatsurb#30
Yuto Ogi
Introducing aws ruby sdk
Introducing aws ruby sdk
Yuto Ogi
20130310 jaws tokai2013
20130310 jaws tokai2013
Yuto Ogi
20130112_出張JAWSUG浜松_Androidの会浜松支部
20130112_出張JAWSUG浜松_Androidの会浜松支部
Yuto Ogi
Plus de Yuto Ogi
(12)
Rails application template
Rails application template
Ruby with AWS DynamoDB
Ruby with AWS DynamoDB
s3_website
s3_website
OSC浜名湖2016 Hamamatsu.rbの歩みとITコミュニティとの上手な関わり方
OSC浜名湖2016 Hamamatsu.rbの歩みとITコミュニティとの上手な関わり方
itamaeで一撃サーバーProvisioning
itamaeで一撃サーバーProvisioning
浜松Ruby会議01
浜松Ruby会議01
DMLを実行するrubyスクリプトをmigrationファイルのように管理するRailsプラグインを作った
DMLを実行するrubyスクリプトをmigrationファイルのように管理するRailsプラグインを作った
Web制作者のためのサーバー勉強会@沼津
Web制作者のためのサーバー勉強会@沼津
Hamamatsurb#30
Hamamatsurb#30
Introducing aws ruby sdk
Introducing aws ruby sdk
20130310 jaws tokai2013
20130310 jaws tokai2013
20130112_出張JAWSUG浜松_Androidの会浜松支部
20130112_出張JAWSUG浜松_Androidの会浜松支部
Dernier
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
Dernier
(9)
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
リーダブルコード 第二章
1.
リーダブルコード より良いコードを書くための シンプルで実践的なテクニック
2.
• Amazonレビュー http://www.amazon.co.jp/%E3%83 %AA%E3%83%BC%E3%83%80%E3 %83%96%E3%83%AB%E3%82%B3 %E3%83%BC%E3%83%89- %E2%80%95%E3%82%88%E3%82 %8A%E8%89%AF%E3%81%84%E3 %82%B3%E3%83%BC%E3%83%89 %E3%82%92%E6%9B%B8%E3%81 %8F%E3%81%9F%E3%82%81%E3 %81%AE%E3%82%B7%E3%83%B3 %E3%83%97%E3%83%AB%E3%81 %A7%E5%AE%9F%E8%B7%B5%E7 %9A%84%E3%81%AA%E3%83%86 %E3%82%AF%E3%83%8B%E3%83 %83%E3%82%AF-Theory-practice- Boswell/dp/4873115655 • Togetterまとめ http://togetter.com/li/333397
3.
"美しいコードを見ると感動する。 優れたコードは見た瞬間に何を
しているかが伝わってくる。 そういうコードは使うのが楽し いし、自分のコードもそうある べきだと思わせてくれる。" (リーダブルコード「はじめに」より)
4.
「自分が書いたコードってどのくら い覚えているんですか?」 「ほとんど覚えていないですよ。」 「直すときどうするんですか?わか らなくなってるじゃないですか。」 「忘れても見たら簡単にわかるよう に書いておくんですよ。」 (リーダブルコード「解説」より)
5.
第 名前に 情報を
二 詰め込む 章
6.
明確な単語を選ぶ • get~はあまり明確でない(一体何を取る
の?) • 「カラフル」な単語を探す 単語 代替案 Send Deliver , dispatch ,announce ,distribute,route Find search,extract,locate,recover Start Launch,create,begin,open Make Crete ,setup,build,generate,compose,add,new
7.
明確な単語を選ぶ class People{
string name =“”; int height = 0; public int getSize(){ return name.length(); } } Sizeって一体どこのサイズだよ(゚Д゚)!
8.
汎用的な名前を避ける(あるいは
使う状況を選ぶ) • tempとかretとか。 • このような汎用的な名前は生存期間が短 い場合に使用する。 String A = “a”; String B = “b”; // aとbの値を入れ替える String temp = A; A = b; B = temp;
9.
汎用的な名前を避ける(あるいは
使う状況を選ぶ) • ループインデックスの i,j とかはOK。 for(int i = 0 ; i < rowcount ; i++) { for(int j = 0 ; j < columncount ; j++) { array[i,j] = “hogehoge”; } for(int row = 0 ; row < rowcount ; row++) { for(int col = 0 ; col < columncount ; col++) { array[row , col] = “hogehoge”; }
10.
抽象的な名前より具体的な名前を使う • build.bat < 何をビルド? •
build_custom.bat < カスタマイズソースのビルドはわかった。モードは? • build_custom_debug.bat < カスタマイズソースをデバッグモードでビルドするのか!
11.
名前に情報を追加する • 値の単位 int start
= DateTime.Now.Hour; int startHour = DateTime.Now.Hour;
12.
名前の長さを決める • スコープが小さければ短い名前でもいい
長く使われる変数の名前は長くてもわか りやすい • 長い名前を入力するのは問題ではない (ほとんどのIDEには入力補完機能が付 いている)
13.
名前のフォーマットで情報を伝え
る • クラス名は CamelCase • 変数名は lower_separated (小文字をアンダースコアで区切ったも の) • 定数は CONSTANT_NAME
14.
第二章まとめ • 明確な単語を選ぶ • tmpやretなどの汎用的な名前を避ける •
具体的な名前を使って、物事を詳細に説 明する • 変数名に大切な情報を追加する • スコープの大きな変数には長い名前を付 ける • 大文字やアンダースコアなどに意味を含 める
15.
おまけ • #ワイルドプログラマ http://togetter.com/li/300565?f=re co1