「Webアプリ開発のお作法」読了
そこが知りたい最新Webアプリ開発のお作法 (DB Magazine SELECTION)
- 作者: 石川智久,高橋英一郎,山本啓二
- 出版社/メーカー: 翔泳社
- 発売日: 2006/07/19
- メディア: 単行本(ソフトカバー)
- 購入: 2人 クリック: 27回
- この商品を含むブログ (19件) を見る
出版は2006年7月か…。
IT業界ってほんとドッグイヤーだな〜って再認識。
「CleanCode」1章〜4章まとめ
- 作者: Robert C. Martin,花井志生
- 出版社/メーカー: アスキー・メディアワークス
- 発売日: 2009/05/28
- メディア: 大型本
- 購入: 27人 クリック: 914回
- この商品を含むブログ (83件) を見る
途中だけどメモ。
1章 クリーンコード
- 粗悪なコードは会社を廃業に追いやることもある
- コードを新たに書き起こす際は、常に既存のコードを読まなければならない(読みやすさ=書きやすさ)
- ボーイスカウトの法則
- キャンプ場を、自分が見つけたときよりキレイにすること(コミットするときはチェックアウト時よりキレイに)
2章 意味のある名前
if文の条件
// Bad if (複雑な条件式) // Better if (isFlagged())
意味のある対比
- 悪い例
- 変数名に連続した数字
- classが予約後なのでklass
- CustomerとCustomerObject
getActiveAccount(); getActiveAccounts(); getActiveAccountInfo();
// Bad Complex fulcrumPoint = new Complex(23.0); // Better Complex fulcrumPoint = Complex.FromRealNumber(23.0);
1つのコンセプトには1つの単語
- get,retrieve,fetch
- controller,manager,driver
3章 関数
小さいこと!
- 関数の第一規則
- 小さくせよ
- 関数の第二規則
- 更に小さくせよ
ブロックとインデント
if文、for文等のブロックは1行でなければならない
関数は1つのことを行うようにせよ。その1つのことをきちんと行い、それ以外のことを行ってはならない。
1つの関数に1つの抽象レベル
// 抽象度高 getHtml(); // 抽象度中 String pagePathName = PathParser.render(pagePath); // 抽象度低 buffer.append("\n");
switch文
switch文には問題がいっぱい
- 関数が大きい
- 関数が複数のことをやる
- 単一責務の原則(SRP)に違反
- 開放/閉鎖原則(OCP)に違反
switch文は最下層の抽象ファクトリに隠蔽
public abstract class Employee { public abstract boolean isPayDay(); public abstract Money calculatePay(); public abstract void deliverPay(); } public interface EmployeeFactory { public Employee makeEmployee(EmployeeRecord r) throws InvalidEmployeeType; } public class EmployeeFactory implements EmployeeFactory { public Employee makeEmployee(EmployeeRecord r) { switch(r.type) { case COMMISSIONED: return new CommissionedEmployee(r); ... } } }
関数の引数
- 関数の引数はできるだけ少なく
- 出力引数は避ける
- 引数をまとめてクラスにラップ
引数1(モナディック)の場合、
- 引数について照会する
- 引数を変換して(戻り値で)返す
- イベント
以外の形式は避ける
// Bad void transform(StringBuffer out); // Better StringBuffer transform(StringBuffer in)
フラグ引数
フラグ引数は悪!二つの関数に分割せよ
コマンド・照会の分離原則
関数は、何らかの処理を行うか、何らかの応答を返すかのどちらかを行うべき。
// ? if (set("username", "unclebob")) ...
- 引数よりも例外
- try,catchブロックの中も1行で
4章 コメント
「ダメなコードをコメントで取り繕ってはいけない。書き直すのだ」
// Bad // 従業員が、給与の完全給付を受けるかどうかチェック if ((employee.flags & HOURLY_FLAG) && (employee.age > 65)) // Better if (employee.isEligibleForFullBenefits())
よくないコメント
- 冗長なコメント
/** * このコンテナと関連付けられたLoggerの実装 */ protected Log logger = null;
- 命令コメント
/** * * @param title CDのタイトル * @param author CDの作曲家 * @param tracks CDのトラック数 * @param durationInMinutes CDの分単位の長さ */ public void addCD(String title, String author, int tracks, int durationInMinutes)
- 日誌コメント(変更履歴)
バージョン管理に任せんさい
- ノイズ
/** * デフォルトコンストラクタ */ public AnnualDateRule() { } /** 名前 */ private String name;
- 道標
//// Actions ////////////////////////////////////////////
- 閉じカッココメント
関数を短くすれば解決
... } // while } // try ... } // catch } // main
- 属性と署名
日誌コメントと同じくバージョン管理に任せる
- コメントアウトされたコード
これが大量にあると読む気が失せるよね
- HTMLコメント
- 非公開コードのJavadoc
「アドレナリンジャンキー」読了
アドレナリンジャンキー プロジェクトの現在と未来を映す86パターン
- 作者: トム・デマルコ,ピーター・フルシュカ,ティム・リスター,スティーブ・マクメナミン,ジェームズ・ロバートソン,スザンヌ・ロバートソン,伊豆原弓
- 出版社/メーカー: 日経BP社
- 発売日: 2009/10/22
- メディア: 単行本
- 購入: 10人 クリック: 156回
- この商品を含むブログ (46件) を見る
読みました。
プログラマのガス抜きに最適な一冊。
Pitインスコつまずきメモ
Pit入れてみる。
最初はeasy_installで入れたけどエラー発生。
$ sudo easy_install pit ... $ python >>> from pit import Pit >>> conf = Pit.get('test', {'require':{'user':'', 'pass':''}}) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "build/bdist.macosx-10.6-universal/egg/pit.py", line 52, in get File "build/bdist.macosx-10.6-universal/egg/pit.py", line 24, in set AttributeError: 'int' object has no attribute 'write'
pit · PyPIからソース落としてsetup.pyで上手くいった。
$ python setup.py install ... $ python >>> from pit import Pit >>> conf = Pit.get('test', {'require':{'user':'','pass':''}}) >>> conf {'user': 'hoge', 'pass': 'huga'} >>> ^D $ python >>> from pit import Pit >>> conf = Pit.get('test') >>> conf {'user': 'huge', 'pass': 'huga'}
参考:
Pit リリースしました。 - Djangoへの片思い日記
Pythonでの、Pitの使い方 世界一わかりやすいムービー付き - When it’s ready.
「入門 Unix for Mac OS X」読了
- 作者: Dave Taylor,酒井皇治
- 出版社/メーカー: オライリージャパン
- 発売日: 2006/03/01
- メディア: 単行本(ソフトカバー)
- 購入: 5人 クリック: 80回
- この商品を含むブログ (30件) を見る
中古で安かったので買ってみた。
いい復習になりますた。
「iPhone情報整理術」読了
iPhone情報整理術 ~あなたを情報’’強者’’に変える57の活用法!(デジタル仕事術シリーズ)
- 作者: 堀正岳,佐々木正悟
- 出版社/メーカー: 技術評論社
- 発売日: 2009/10/21
- メディア: 単行本(ソフトカバー)
- 購入: 22人 クリック: 674回
- この商品を含むブログ (167件) を見る
読みました。
iPhoneでLet'sライフハック本。iPhoneで情報を管理するには、
することが重要。それと色々アプリはあるけど、あれもこれもと手を出さずに1つの目的には1つのアプリに絞ることが重要。
読んで入れてみたもの。
- クーリエ・ジャポンLite
- 操作がイマイチな感じ
- Dropbox
- 何故これ入れてなかった俺
- Todo Lite
- TODO管理はOmniFocus(2300円)、RememberTheMilk(年間25ドル)、Toodledo(230円)等たくさんあって迷うのでこれで様子見
- Evernote
- 始めてみる
- マネー手帳
- CachFrowFreeから移行、450円也
- WhiteNoiseLite
- 波の音、虫の音等を流してくれるアプリ。最近喫茶店で本を読むことが多いので使ってみよう
他にも気になるのはあったけど取り敢えずこれだけ。