20091030 uncle bob said you should be a professional with clean code

Post on 02-Nov-2014

9 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

ボブおじさんの夢を見た

しまだ こうじSHIMADA Koji

日本Rubyの会Ruby札幌

Uncle Bob said you should be a professional with clean code.2009-10-30 Ruby Sapporo Night vol.12アップルストア札幌

2009年10月31日土曜日

提供

Ruby札幌From Sapporo, with Love for Ruby.

2009年10月31日土曜日

しまだ こうじ島田 浩二

Photo by tmaeda

2009年10月31日土曜日

Sapporo is a beautiful provincial city of Japan.

Photo by enggul

2009年10月31日土曜日

2009年10月31日土曜日

2009年10月31日土曜日

2009年10月31日土曜日

2009年10月31日土曜日

from Sapporo,with Love for Ruby

Photo by darashi

2009年10月31日土曜日

日本Rubyの会2009年10月31日土曜日

一般社団法人 LOCAL

2009年10月31日土曜日

2009年10月31日土曜日

2009年10月31日土曜日

e "rst editionstill in store.

2009年10月31日土曜日

どうぞよろしく

お願いします2009年10月31日土曜日

ボブおじさんの夢を見た

しまだ こうじSHIMADA Koji

日本Rubyの会Ruby札幌

Uncle Bob said you should be a professional with clean code.2009-10-30 Ruby Sapporo Night vol.12アップルストア札幌

2009年10月31日土曜日

設計とプログラミングは人間的な活動である。それを忘れると、すべて失う。

- Bjarne Stroustrup

2009年10月31日土曜日

Today’s Topic:

2009年10月31日土曜日

A Handbook of Agile Software Craftsmanship

2009年10月31日土曜日

Two Reasons:

2009年10月31日土曜日

2009年10月31日土曜日

on Kouichirou Eto’s Talk2009年10月31日土曜日

Martin Fowler says:2009年10月31日土曜日

Ward、Kent、それから、キレイなコード、うまく整理されたオブジェクト指向設計、そして、テストのしやすさについて提唱してきたすべての人たちの価値…Ruby界ではそれが「正統」になっている。

http://capsctrl.que.jp/kdmsnr/wiki/bliki/?RailsConf20072009年10月31日土曜日

Who’s who:

2009年10月31日土曜日

Object Mentor Inc.

2009年10月31日土曜日

A Handbook of Agile Software Craftsmanship

2009年10月31日土曜日

動作するきれいなコード

“Clean Code that works”

2009年10月31日土曜日

2009年10月31日土曜日

「動作するきれいなコード」、この Ron Jefferies の簡潔な言葉こそが

TDD のゴールである

Clean Code that works, in Ron Jefferies’ pretty phrase, is the goal of Test-Driven Development(TDD).

2009年10月31日土曜日

2009年10月31日土曜日

SOLID PrincipleSRP Single ResponsibilityOCP Open-ClosedLSP Liscov Substitution

ISP Interface SegregationDIP Dependency Inversion

2009年10月31日土曜日

SOLID PrincipleSRP 単一責務の原則OCP オープン・クローズドの原則LSP リスコフの置換原則ISP インターフェイス分離の原則DIP 依存関係逆転の原則

2009年10月31日土曜日

✓クラスを変更する理由は一つ以上存在してはならない

✓ソフトウェアの構成要素は拡張に対して開いて、修正に対して閉じていなけければならない

✓派生型はその基本型と置換可能でなくてはならない

✓抽象に依存せよ2009年10月31日土曜日

高凝集疎結合

2009年10月31日土曜日

安易なショートカットを選んではならない

- Masatoshi SEKI

2009年10月31日土曜日

2009年10月31日土曜日

プログラミングは、マシンに向けてだけではなく、自分以外のプログラマに向けて書かれるべきなんだ。そうすることで、プログラミングは初めて、人による、人のための、人の仕事になる。そうやって作られるコードこそ、良いコードなんだ。

ーー 実装パターン、ケント・ベック

2009年10月31日土曜日

“is is a book about programming. ”

2009年10月31日土曜日

“is is a book about good programming. ”

2009年10月31日土曜日

ソフトウェア設計とは何か- Jack W.Reeves

2009年10月31日土曜日

ソフトウェア設計とは何か?

✓ 設計: ソースコード✓ 製造: ビルド

2009年10月31日土曜日

コーディングは設計であり、テスティングとデバッギングも設計の一部であり、私たちが一般的にソフトウェア設計と呼んでいるものもやはり設計の一部なのです

2009年10月31日土曜日

Dave Thomas says:

2009年10月31日土曜日

ソフトウェアエンジニアリングという言葉はありません。少なくともまだないです。これ以上ないところまで削るのがエンジニアリング。これ以上削れないところまで削るということは、どこまで削るとそれが壊れてしまうかわかっているということです。

2009年10月31日土曜日

まだソフトウェアに関しては我々はそのレベルまで達していないんです。達していないから、ソフトウェアエンジニアリングという言葉は、まだ嘘なのです。我々がしているのは、ただのコーディングです。

- Dave Thomas

2009年10月31日土曜日

ボーイスカウトの規則

photo by sunflowerdave

2009年10月31日土曜日

洗練されたコードは、どうして、こうも早く粗悪なコードへと変質してしまうのでしょう? ... 間違っているのは我々自身なのです。これでは、我々はプロとは呼べないのです。...つまり、あなたがそれに負けない熱意をもって、コードを守ればよいのです

ーー クリーンコード、ロバート・C・マーチン

2009年10月31日土曜日

We who cut mere stones must always be envisioning

cathedrals.ー e Pragmatic Programmer

2009年10月31日土曜日

いち開発者である自分には企業資産(つまりコードベース全体)の価値を低下させるような権限はない

- Shintaro KAKUTANI

2009年10月31日土曜日

2009年10月31日土曜日

Programmers areResponsible Professionals.

- Martin Fowler

2009年10月31日土曜日

今日のまとめ✓ 粗末なコードは会社を廃業に追いやる

✓ コーディングは設計✓ 私たちに責任がある✓ 練習あるのみ

2009年10月31日土曜日

photo by foliosus

意味のある名前Meaningful Names

2009年10月31日土曜日

photo by foliosus

int d; // 日単位の経過時間

int elapsedTimeDays;int daysSinceCreation;int daysSinceModification;int fileAgeInDays;

明確な名前を付ける

2009年10月31日土曜日

photo by foliosus

public List<int[]> getThem() { List<int[]> list1 = new ArrayList<int[]>(); for (int[] x : the List) if (x[0] == 4) list1.add(x); return list1;}

明確な名前を付ける

2009年10月31日土曜日

photo by foliosus

public List<Cell> getFlaggedCells() { List<Cell> flaggedCells = new ArrayList<Cell>(); for (Cell cell : gameBoard) if (cell.isFlagged()) flaggedCells.add(cell); return flaggedCells;}

明確な名前を付ける

2009年10月31日土曜日

photo by foliosus

class DtaRcrd102 { private Date genymdhms; private Date modymdhms; private final String pszqint = ...;

発音可能な名前を付ける

class Customer { private Date generationTimestamp; private Date modyficationTimestamp; private final String recordid = ...;

2009年10月31日土曜日

photo by foliosus

for (int j = 0; j < 34; j++) { s += (t[j]*4/5);}

検索可能な名前を付ける

int realDaysPerIdealDay = 4;const int WORK_DAYS_PER_WEEK = 5;int sum = 0;for (int j=0; j < NUMBER_OF_TASKS; j++) { int realTaskDays = taskEstimate[j] * realDaysPerIdealDay; int realTaskWeeks = (realdays / WORK_DAYS_PER_WEEK); sum += realTaskWeeks;}

2009年10月31日土曜日

photo by foliosus

# 従業員が給与の完全給付を受け取るかどうかチェックするif ((employee.flags & HOURLY_FLAG) && (employee.age > 65)) ...end

if employee.eligible_for_full_benefits? ...end

コードの中で説明する

2009年10月31日土曜日

photo by foliosus

あとは本で学んでください!!!

2009年10月31日土曜日

今日のまとめ✓ 粗末なコードは会社を廃業に追いやる

✓ コーディングは設計✓ 私たちに責任がある✓ 練習あるのみ

2009年10月31日土曜日

参考2009年10月31日土曜日

acts_as_agile

http://gihyo.jp/dev/serial/01/agile2009年10月31日土曜日

Coplien and Martin Debate TDD, CDD and Professionalism.

http://www.infoq.com/jp/interviews/coplien-martin-tdd_ja2009年10月31日土曜日

http://blogs.itmedia.co.jp/hiranabe/2008/08/agile2008-rober.html

Crasmanship over crap

2009年10月31日土曜日

ボブおじさんの夢を見た

しまだ こうじSHIMADA Koji

日本Rubyの会Ruby札幌

Uncle Bob said you should be a professional with clean code.2009-10-30 Ruby Sapporo Night vol.12アップルストア札幌

2009年10月31日土曜日

ご清聴ありがとうございました

2009年10月31日土曜日

Photo by darashi

各種ご案内

2009年10月31日土曜日

Ruby Sapporo Night2009年10月31日土曜日

Junkudo Books2009年10月31日土曜日

02

Check ItOut!

2009年10月31日土曜日

Join Us!

2009年10月31日土曜日

ご参加お待ちしています

2009年10月31日土曜日

Ruby Sapporo Nightvol.13coming soon

2009年10月31日土曜日

top related