Submit Search
20120706-readablecode
26 likes
6,418 views
Masanori Kado
1 of 58
Download now
Downloaded 42 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
More Related Content
What's hot
(20)
PPTX
継続的インテグレーション3分クッキング
Takayuki Kondou
PDF
OpenJDK トラブルシューティング #javacasual
Yuji Kubota
KEY
Bundler kanazawa.rb meetup #2 2012/09/19
Hitoshi Kurokawa
PDF
Kink: プロトタイプベースの俺々 JVM 言語
Taku Miyakawa
PDF
インフラ自動化とHashicorp tools
Uchio Kondo
PDF
楽して JVM を学びたい #jjug
Yuji Kubota
PDF
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
torutk
PDF
レビューで保守性のためにした コメントをふりかえってみた
Takhisa Hirokawa
PPTX
ゲームインフラコンテナ実践導入
Hiroki Tamiya
PDF
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno
ODP
Programming camp Codereading
Hiro Yoshioka
PDF
Java SE 9の紹介: モジュール・システムを中心に
Taku Miyakawa
PDF
Android起動周りのノウハウ
chancelab
PDF
Task Spooler を試した
y-uti
PDF
minneで学ぶクラウド脳
Uchio Kondo
PDF
Xilinx SDSoC(2016.3)解体新書ソフトウェア編
Mr. Vengineer
PDF
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
Hiroh Satoh
PDF
Jvm言語とJava、切っても切れないその関係
yy yank
PDF
Nseg20120825
hiro345
PPTX
ゼロから始める自作 CPU 入門
Hirotaka Kawata
継続的インテグレーション3分クッキング
Takayuki Kondou
OpenJDK トラブルシューティング #javacasual
Yuji Kubota
Bundler kanazawa.rb meetup #2 2012/09/19
Hitoshi Kurokawa
Kink: プロトタイプベースの俺々 JVM 言語
Taku Miyakawa
インフラ自動化とHashicorp tools
Uchio Kondo
楽して JVM を学びたい #jjug
Yuji Kubota
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
torutk
レビューで保守性のためにした コメントをふりかえってみた
Takhisa Hirokawa
ゲームインフラコンテナ実践導入
Hiroki Tamiya
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno
Programming camp Codereading
Hiro Yoshioka
Java SE 9の紹介: モジュール・システムを中心に
Taku Miyakawa
Android起動周りのノウハウ
chancelab
Task Spooler を試した
y-uti
minneで学ぶクラウド脳
Uchio Kondo
Xilinx SDSoC(2016.3)解体新書ソフトウェア編
Mr. Vengineer
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
Hiroh Satoh
Jvm言語とJava、切っても切れないその関係
yy yank
Nseg20120825
hiro345
ゼロから始める自作 CPU 入門
Hirotaka Kawata
Viewers also liked
(10)
PDF
闇深めだったサービスのスタイルガイド作成までの真実
Yuriko Okabe
PDF
PHP 2大 web フレームワークの徹底比較!
Shohei Okada
PDF
プロダクトに 1 から Vue.js を導入した話
Shohei Okada
PDF
とにかく楽してVue.jsでTypeScriptを使いたい
さくらインターネット株式会社
PDF
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
PPTX
スタートアップの失敗を90%減らす10のポイント
Masa Tadokoro
PDF
片手間MySQLチューニング戦略
yoku0825
PDF
エンジニアのための経営学
Michitaka Yumoto
PDF
If文から機械学習への道
nishio
PPTX
本当は恐ろしい分散システムの話
Kumazaki Hiroki
闇深めだったサービスのスタイルガイド作成までの真実
Yuriko Okabe
PHP 2大 web フレームワークの徹底比較!
Shohei Okada
プロダクトに 1 から Vue.js を導入した話
Shohei Okada
とにかく楽してVue.jsでTypeScriptを使いたい
さくらインターネット株式会社
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
スタートアップの失敗を90%減らす10のポイント
Masa Tadokoro
片手間MySQLチューニング戦略
yoku0825
エンジニアのための経営学
Michitaka Yumoto
If文から機械学習への道
nishio
本当は恐ろしい分散システムの話
Kumazaki Hiroki
Ad
Similar to 20120706-readablecode
(20)
PPTX
リーダブルコード 1.0'
Yamamura Takashi
KEY
リーダブルコード
Keita Otsuka
PDF
オブジェクト指向の設計と実装の学び方のコツ
増田 亨
PDF
リーンなコードを書こう:実践的なオブジェクト指向設計
増田 亨
PDF
Code Anything
Yoshitaka Kawashima
PPTX
良いコードとは
Nobuyuki Matsui
PDF
ソースコードの品質向上のための効果的で効率的なコードレビュー
Moriharu Ohzu
PDF
わかるコードを書くために For writing clean code
Eyes, JAPAN
PDF
20091030 Uncle Bob Said You Should Be A Professional With Clean Code
Koji SHIMADA
KEY
201207 ssmjp
th0x0472
PDF
Code Reading at Security and Programming camp 2011
Hiro Yoshioka
PDF
Scala conf2013
Takafumi Ikeda
PPT
レガシーコード改善ガイド読書会
Hiro Yoshioka
PDF
プログラミング入門
Kenji Azami
PDF
Programming camp code reading
Hiro Yoshioka
PDF
アジャイルソフトウェア開発の道具箱
Koichi ITO
PDF
エンジニアがとるべき8つの行動
Hiroshi Ogino
PDF
テスト分析はじめの一歩 公開版
Asuka (飛鳥) Kamijo (上條)
PDF
良い?悪い?コードコメントの書き方
Shigenori Sagawa
PPT
第1回java実習(helloworld)2011
デジタルシープラーニング
リーダブルコード 1.0'
Yamamura Takashi
リーダブルコード
Keita Otsuka
オブジェクト指向の設計と実装の学び方のコツ
増田 亨
リーンなコードを書こう:実践的なオブジェクト指向設計
増田 亨
Code Anything
Yoshitaka Kawashima
良いコードとは
Nobuyuki Matsui
ソースコードの品質向上のための効果的で効率的なコードレビュー
Moriharu Ohzu
わかるコードを書くために For writing clean code
Eyes, JAPAN
20091030 Uncle Bob Said You Should Be A Professional With Clean Code
Koji SHIMADA
201207 ssmjp
th0x0472
Code Reading at Security and Programming camp 2011
Hiro Yoshioka
Scala conf2013
Takafumi Ikeda
レガシーコード改善ガイド読書会
Hiro Yoshioka
プログラミング入門
Kenji Azami
Programming camp code reading
Hiro Yoshioka
アジャイルソフトウェア開発の道具箱
Koichi ITO
エンジニアがとるべき8つの行動
Hiroshi Ogino
テスト分析はじめの一歩 公開版
Asuka (飛鳥) Kamijo (上條)
良い?悪い?コードコメントの書き方
Shigenori Sagawa
第1回java実習(helloworld)2011
デジタルシープラーニング
Ad
More from Masanori Kado
(20)
PPTX
優れた研究提案書の書き方
Masanori Kado
PPTX
優れた研究論文の書き方
Masanori Kado
PDF
Tokyo-Tech 2017 EDP-A #3 Prototype and Test
Masanori Kado
PDF
2017-07-19 エンタープライズアジャイル勉強会「リーンエンタープライズ」
Masanori Kado
PDF
Tokyo-Tech 2017 EDP-A #2 Ideate & Prototype
Masanori Kado
PDF
Tokyo-Tech 2017 EDP-A #1 Team Building
Masanori Kado
PDF
プロトタイピングとユーザーテスト
Masanori Kado
PDF
実践リーンエンタープライズ(20161027)
Masanori Kado
PDF
データからインサイト そして、アイデアの発想へ(CJM/POV/HMW)
Masanori Kado
PDF
データからインサイト そして、アイデアの発想へ(KJ法)
Masanori Kado
PDF
データからインサイト そして、アイデアの発想へ(タスク管理)
Masanori Kado
PDF
20160924 edp-b teambuilding
Masanori Kado
PDF
中高生のための夏休みプログラミング教室
Masanori Kado
PDF
hacku-titech-2016-briefing
Masanori Kado
PDF
ideathon 20160325
Masanori Kado
PDF
The Lego Scrum Awakens
Masanori Kado
PDF
デザイン思考のためのアイスブレイク
Masanori Kado
PDF
アジャイル開発のススメ@香川大学
Masanori Kado
PPTX
優れた研究論文の書き方―7つの提案
Masanori Kado
PDF
改善の型 コーチングの型
Masanori Kado
優れた研究提案書の書き方
Masanori Kado
優れた研究論文の書き方
Masanori Kado
Tokyo-Tech 2017 EDP-A #3 Prototype and Test
Masanori Kado
2017-07-19 エンタープライズアジャイル勉強会「リーンエンタープライズ」
Masanori Kado
Tokyo-Tech 2017 EDP-A #2 Ideate & Prototype
Masanori Kado
Tokyo-Tech 2017 EDP-A #1 Team Building
Masanori Kado
プロトタイピングとユーザーテスト
Masanori Kado
実践リーンエンタープライズ(20161027)
Masanori Kado
データからインサイト そして、アイデアの発想へ(CJM/POV/HMW)
Masanori Kado
データからインサイト そして、アイデアの発想へ(KJ法)
Masanori Kado
データからインサイト そして、アイデアの発想へ(タスク管理)
Masanori Kado
20160924 edp-b teambuilding
Masanori Kado
中高生のための夏休みプログラミング教室
Masanori Kado
hacku-titech-2016-briefing
Masanori Kado
ideathon 20160325
Masanori Kado
The Lego Scrum Awakens
Masanori Kado
デザイン思考のためのアイスブレイク
Masanori Kado
アジャイル開発のススメ@香川大学
Masanori Kado
優れた研究論文の書き方―7つの提案
Masanori Kado
改善の型 コーチングの型
Masanori Kado
Recently uploaded
(7)
PDF
20250711JIMUC総会_先進IT運用管理分科会Connpass公開資料.pdf
ChikakoInami1
PDF
20250711_日本IBM ミドルウエア・ユーザー研究会(JIMUC)総会_中村会長資料.pdf
ChikakoInami1
PPTX
Devcontainerのススメ(1)-Devcontainerとはどういう技術?-
iPride Co., Ltd.
PDF
Google Driveハブ型Obsidian同期環境:PC編集とモバイル閲覧を安全・効率的に実現するクロスデバイス構築ガイド
honeshabri
PDF
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
NTT DATA Technology & Innovation
PDF
20250717_Devin×GitHubCopilotで10人分の仕事は出来るのか?.pdf
Masaki Yamakawa
PDF
20250711JIMUC総会IBM Automation_Platform最新情報_Connpass公開版.pdf
ChikakoInami1
20250711JIMUC総会_先進IT運用管理分科会Connpass公開資料.pdf
ChikakoInami1
20250711_日本IBM ミドルウエア・ユーザー研究会(JIMUC)総会_中村会長資料.pdf
ChikakoInami1
Devcontainerのススメ(1)-Devcontainerとはどういう技術?-
iPride Co., Ltd.
Google Driveハブ型Obsidian同期環境:PC編集とモバイル閲覧を安全・効率的に実現するクロスデバイス構築ガイド
honeshabri
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
NTT DATA Technology & Innovation
20250717_Devin×GitHubCopilotで10人分の仕事は出来るのか?.pdf
Masaki Yamakawa
20250711JIMUC総会IBM Automation_Platform最新情報_Connpass公開版.pdf
ChikakoInami1
20120706-readablecode
1.
リーダブル リーダブルコード
2012年7⽉6⽇ ⾓征典
[email protected]
1/58
2.
御礼 2012年7⽉5⽇10:
[email protected]
:
2週間⾜らずで4刷というのはすごい スピードです。 2/58
3.
Ebook版は秋ごろ予定
3/58
4.
お詫び 4/58
5.
⾃⼰紹介 @kdmsnr
5/58
6.
⾃⼰紹介訳書(1/2) Martin Fowler's Bliki
(2003) ↓ 『アジャイルレトロスペクティブズ』 (2007) ↓ スクラムガイド (2010) ↓ 『メタプログラミングRuby』 (2010) ↓ 『ウェブオペレーション』 (2011) ↓ 『Facebookマーケティング』 (2011) ↓ 6/58
7.
⾃⼰紹介訳書(2/2)
↓ 『Clean Coder』 (2012) ↓ 『リーダブルコード』 (2012) ←【イマココ】 ↓ 『Service Design Patterns』 (2012) ↓ 『Seven Databases in Seven Weeks』 (2012) ↓ 『Running Lean』 (2012) ↓ 『...』(2012?) 7/58
8.
TheArtof ReadableCode
8/58
9.
『リーダブルコード』
これはもう「翻訳放棄」と⾔ってもよ いレベルですねぇ。⾮道過ぎます。 http://twitter.com/ytaniike/status/211060068035207170 違うよ。全然違うよ。 9/58
10.
リーダブルコードの理由 タイトルは、あえて『
リーダブルコー ド』にした。これは「リーダブルコード 」 という聞きなれない⾔葉にすることで、読 んだ⼈に「リーダブルコード 」というもの について注意して欲しいからだ。 http://www.clear-code.com/blog/2012/6/11.html 10/58
11.
続リーダブルコードの理由
「リファクタリング 」という⾔葉を使 っていて、「コードをよくすること」がよ り当たり前になっている。それと同じよ うに、読みやすいコードを⾒たら「リーダ ブルでいいね!」ということが⾃然に⾔わ れるようになるといい。 http://www.clear-code.com/blog/2012/6/11.html 11/58
12.
名前重要
リーダブルコードは本のタイトルで勝 ちだよなぁ。(中略)どんなコード⽬指し てるかすぐわかるし。 http://twitter.com/chiastolite/status/219793852087808003 誰だか知らないけどありがとう!!!! 12/58
13.
じゃあ、どんなコード? リーダブルコードの基本定理
コードは他の⼈が最短時間で理解でき るように書かなければいけない。(p.3) 13/58
14.
ハァ?なんで? 「コードのよさは重要だ」は危うい前提 読むに耐えないコードが⼤⾦を稼いで いる場⾯を散々⽬にしてきたので、商業的 に成功したり、広く活⽤されたりするう えで、コードの品質が必要だとも、それさ えあれば⼗分だとも思えないからだ。
『実装パターン』KentBeck 14/58
15.
でもやるんだよ! ……誇りの持てない仕事で無駄にする 時聞はない。よいコードを書くこと⾃体が 喜びであり、そのコードを他の⼈が理解し 、評価し、使⽤し、拡張してくれれば、さ らに喜びは増す。
『実装パターン』KentBeck 15/58
16.
2章名前に情報を詰め込む
16/58
17.
名前をつけるのは難しい 簡単に誤解・誤読されちゃう!
変数の名前を決定する際には、最初の ⼦供の名前を決めるときと同じくらいの配 慮が必要なのです(JimCope) 『CleanCode』RobertC.Martin 17/58
18.
本章のアドバイス 明確で具体的な単語を選ぶ 汎⽤的な名前は避ける 単位や情報を名前に追加する スコープの⼤きさを考慮する フォーマット規約を使う
18/58
19.
最も基本的なこと 式は⾃分で⾳読するつもりで書こう。 『プログラミング作法』BrianKernighan,RobPike
発⾳可能な名前を使⽤する。 『CleanCode』RobertC.Martin 19/58
20.
retval(何て読むの?)
汎⽤的な名前を避ける(p.12) var eulidean_norm = function(v) { var retval = 0.0; for (var i = 0; i v.length; i += 1) { retval += v[i] * v[i]; } return Math.sqrt(retval); } 20/58
21.
[ネタ]詠太2で⾳読する http://www.justsystems.com/jp/products/ichitaro/feature6.html
※Windowsじゃないと動きません。 21/58
22.
読み⼿のことを考える 相⼿を意識したときに、よい⽂章が⽣ まれるように、よいプログラムも読み⼿を 意識したときに⽣まれる。
『実装パターン』KentBeck 22/58
23.
とは⾔っても、難しいよ
23/58
24.
5章コメントすべきこと
24/58
25.
必要なことはコードに書く 私はだらしのないプログラマなので、 ⾃分が担当したコードが、どのように書か れていたのかまったく覚えていません
。… …私は常に、覚えておくべき情報をコード 内に書き込んでおくことにしているので、 わざわざ覚える必要がないのです。 『リファクタリング』MartinFowler 25/58
26.
コードがドキュメントだ ※写真はイメージです。
26/58
27.
でも、ないものは⾒えない コミットする前のコード 使わなかった選択肢 却下された要望や提案 これからやること
27/58
28.
監督コメンタリー
p.60 映画DVDの特典のように 説明・思い・裏話をコメントに書く うまくいかなかったことも書く 疑問を先回りして埋めておく 28/58
29.
理由重要 ⼈に何かを頼み事をするときには理由 を添えた⽅が成功しやすくなる 『影響⼒の武器[第⼆版]―なぜ、⼈は動かされるのか』
29/58
30.
理由は何でもいいらしい ◯すみません……急いでいるので、 先にコピーをとらせてくれませんか ? ×すみません……先にコピーをとら せてくれませんか? 『影響⼒の武器[第⼆版]―なぜ、⼈は動かされるのか』
30/58
31.
「なんとなく」が⼀番困る 「どうしてこうなってるんですか?」 「なにがですか」 「ここのコードが」 「ああ、なんとなくですよ」 「えっ」 「えっ」 「……」 「……」
31/58
32.
こじつけでも、つじつまが 合えばそれにこしたことは
ない!! 32/58
33.
思考の断⽚を刻む場所 (コードではないかもだけど……) コミットの情報 須藤先⽣の「解説」も参考に チケット駆動開発(Ref,Fix,Close) ドキュメント
ReVIEW(ステマ) http://github.com/kmuto/review Sphinx 33/58
34.
たいせつなTODO.md 多くのデベロッパは、この種の観察作 業のために簡単なtodoリストを作って いる。
『テスト駆動JavaScript』ChristianJohansen 34/58
35.
TODO.mdの例 # 商品関連 * 在庫のトランザクション。楽観的ロックでいいの? #
管理画⾯ * Admin::ApplicationControllerにBasic認証 * Twitter Bootstrap使うかもしれない * ■ Deviseのカスタマイズ → できたけど微妙 # 画像リサイズ * ■ RMagicでやる → できた! 35/58
36.
ドキュメント読まれないし それでも「ポステルの法則」を参考に 受信するものには寛容に、送信するも のには慎重に
http://ja.wikipedia.org/wiki/ジョン・ポステル 36/58
37.
12章コードに 思いを込める
37/58
38.
アインシュタインの⾔葉
p.158 おばあちゃんがわかるように説明でき なければ、本当に理解したとは⾔えない。 38/58
39.
テディベアやアヒルちゃん
に説明してみる(p.165) 『プログラミング作法』や『達⼈プログラマ』にも記述がある 39/58
40.
説明内容をコメントに書く
(すごく⼿続き的だけど) # originalディレクトリのhtmlファイルから # code.literalの要素を削除する # (ってか、Nokogiriの使い⽅わからねえ) # それから、ファイルをテキスト形式に置き換えて # ワード数を数える 40/58
41.
その下にコードを書く # originalディレクトリのhtmlファイルから Dir.glob(original/*.html).each do
|html| doc = Nokogiri.HTML open(html) # code.literalの要素を削除する # (ってか、Nokogiriの使い⽅わからねえ)→できた doc.search(//code[@class='literal]).remove # それから、ファイルをテキスト形式に置き換えて text = doc.css(body).text # ワード数を数える wc = text.split.size end 41/58
42.
整形する def count_word_in_html_files
word_count = 0 Dir.glob(original/*.html).each do |html| doc = Nokogiri.HTML open(html) doc.search(//code[@class='literal]).remo text = doc.css(body).text word_count = text.split.size end return word_count end 42/58
43.
説明とコードを可逆に あまり⼤きなリファクタリングはしない 読む側の少し上を⾏くのはよいが、あ まり複雑すぎると、相⼿にされなくなって しまう。
『実装パターン』KentBeck 43/58
44.
例:本体のないif⽂
p.159 // 権限があるのは、以下の2つ // 1) 管理者 // 2) ⽂書の所有者(⽂書がある場合) // その他は、権限がない。 44/58
45.
例:本体のないif⽂
p.159 // 権限を確認する if (is_admin_request()) { // 1) 管理者は権限あり } else if (...) { // 2) ⽂書の所有者は権限あり(⽂書がある場合) } else { // その他は、権限がない。 return not_authorized(); } 45/58
46.
⾃分の思いを込める前に その分野ですでにどんなことが解明さ れているかを調べてみなければならない。 さもないと、優れた⼿法がすでに存在す るのに、⾃⼰流の下⼿なやり⽅を考案する のに時間を無駄にするはめになるからだ。 『プログラミング作法』BrianKernighan,RobPike
46/58
47.
例えば、どういうふうに?
47/58
48.
13章短いコードを書く
48/58
49.
APIをぜんぶ読む
p.172 yugui:Javaを覚えるとき『プログラミ ング⾔語Java』を読んで、それからリファ レンスマニュアルを頭から全部読みまし た。 http://www.atmarkit.co.jp/news/200907/24/ruby2.html 49/58
50.
不要な要求を削除する
p.168 DOorDONOT.ThereisnoTRY. やるか、やらぬかじゃ。試しなどいらん。 ヨーダの⾔葉(『CleanCoder』RobertC.Martin) 50/58
51.
[余談]試しにやってみる 「試しにやってみる」は前向きな感じ がする。でも、それで何か「できた」ので あれば、それまで⼒を温存していたことに なる。
『CleanCoder』RobertC.Martin 51/58
52.
あれ? だんだん コードの話から
離れてきた 52/58
53.
名著を読もう! p.218
53/58
54.
リーダブルコード もよろしくお願いします。
54/58
55.
ぼくのかんがえた さいきょうの リーダブルコード
55/58
56.
やり⽅ 1. みんなでコードについて話し合う 2. 須藤先⽣の「ぼくならこう書く」 3.
質疑応答 ※これを3ラウンド繰り返します。 56/58
57.
お題 0.
github.com/dproject21/yaruo_tdd_triangle 1. github.com/mataki/fast_spork_runner 2. github.com/randym/axlsx 3. github.com/todesking/okura ※「0」のお題でやり⽅を説明します。 57/58
58.
ENJOY!!
58/58
Download