気ままなつぶやき

おべんきょしたこととか

【読書】プロダクティブ・プログラマ 〜技法編〜

読書のまとめ。

プロダクティブ・プログラマ -プログラマのための生産性向上術 (THEORY/IN/PRACTICE)

少し古い本だけど、何か参考になるものもあるだろうと読んでみますた。

はじめに

この本は何を目的とした本か?
プログラマの生産性を向上するための本」。

「生産性」とは、一定の時間にできる仕事、もしくはあげられる成果のこと
※本書の冒頭より引用


この本は2つの節に分けられる。

1.技法編(生産向上の原理)
2. 実践編(生産性向上の哲学)

まとめてたら結構長いので今回は、技法編。

技法編では、主に下記の4つの原則に沿って説明がされる

プログラマの生産性に関わる4つの原則

  • 加速
  • 集中
  • 自動化
  • 正準化

情報が古い部分が多いので、
とても個人的な見解を織り交ぜて、気に入った部分だけをピックアップしますた

あとmacしか使ってないから基本windowsについての記述はスキップしてまふ

加速

自分のPCで利用しているアプリケーションは、必要最低限にしましょう。
同じようなアプリは複数いらない。使うアプリを探す分だけ時間が無駄。

pushdコマンドとpopdコマンド

ディレクトリの移動に便利だと記述があった。
わたしはcdコマンドで十分かな。。。と思ってるけど
このコマンド知らなかったので.....φ(゚-゚=)メモニャン

コマンド自体はcdコマンドと同じようなもん。

ただ、これらのコマンドはカレントディレクトリを内部スタックに
保存するので、ディレクトリ移動を記録できて便利。

試してみる(σ_σ)ゞ


pushdコマンドでディレクトリ移動。
移動したカレントディレクトリがたまっていくのがわかる

$ pushd Documents/
~/Documents ~ ~
$ pushd workspace/
~/Documents/workspace ~/Documents ~ ~
$ pwd
/Users/pnsk/Documents/workspace

この時点で、「~/Documents/workspace ~/Documents ~ ~」こんだけたまっている

popdしていく。

$ popd
~/Documents ~ ~
$ pwd
/Users/pnsk/Documents
$ popd
~ ~
$ pwd
/Users/pnsk

スタックにたまっていたカレントディレクトリ情報が、最後「~~」になったらおしまい。

ほうほう。面白い。

ただ、1つ前のカレントディレクトリに戻るんであればcdコマンドで可能だからこっちでいいかも。

$cd -

IDE

eclipseintellijのショートカットキーを覚えるだけじゃなくて
よく利用するものはテンプレートにしておくこと。

ファイルの検索→クラス名の場合は大文字の部分を並べるだけで良い
ShoppingCartMemento であればSCM

試してみた(゜∀゜)

f:id:pnsk:20121202232258p:plain

集中(なんか途中から加速について記述している希ガス

気が散るのを最大限防ぐ
ヘッドホンとか良い。
音楽はきかなくてもよくて、見た目に話しかけにくくしておくことが重要。

ω・*) < 音楽聞いてるふりしても余裕で話しかけられる気がするけど。。


不要な通知のオフも大切
ω・*) < skypeとかオフっちゃえ

時間を決めて、沈黙の時間をつくる

検索の効率化的なお話

ファイル名にメタ情報をいれる(何のプロジェクトかetc.)

正規表現とfindコマンドを駆使すると色々便利

ローカルPCにある、よくアクセスするディレクトリをルートビューに設定すると
階層を辿っていかなくても簡単にアクセスできる。

[書類]>[ブログネタ]をルートビューにもってきてみた
f:id:pnsk:20121203000744p:plain:w250

こんな感じ。
f:id:pnsk:20121203000751p:plain:w250
もとのディレクトリが移動しているわけではなく、ショートカットを作成しただけ。

プロジェクト関連のまとめ

プロジェクトのファイルを、ショートカットを使って一箇所のディレクトリにまとめる

これいい。

macのマルチデスクトップ

macのマルチデスクトップを利用するときは、そのデスクトップ毎に用途を明確にする

  • コミュニケーション用
  • ドキュメント用
  • コーディング用

とか

自動化

小さなExcel作業もrubyなどでスクリプトを書いて、作業をより簡単にすること

よくアクセスするWebページのローカルキャッシュをとっておく事
これによりネットアクセスの時間ロスをふせぐ事ができる

これ、コンフル(商用wiki)の特定ページとかにしぼると役立ちそうかも。

どこまで自動化すべきか

2回以上繰り返す作業については自動化を検討する
ただし、自動化が妥当かの判断をする時間を作る必要がある

自動化に膨大なコストがかかるのであればそれはすべきではない

正準化

「正準化」:重複した余分なものを省いて単純化すること

ビルドマシンの正準化

たとえ一人しか開発者がいなくても
ローカルビルドなどは行ってはいけないよっ

個人の開発ツールに依存してしまうから
jenkinsなどの継続的インテグレーションサーバを利用しよう

技法編のNOTE

キーポイントが所々で示されているので気に入ったやつだけ。

「段取りではなく本質に注力せよ」

「単純作業の繰り返しは、知力と集中力を奪う」

「ドキュメントは「生きた状態」に保つ」



だいたいそんな感じかな。
全体感、とっても読みやすくてさらさら読めまふ (。◕ ∀ ◕。)

情報が古い物が結構あるけど、まあ、考え方を参考にする感じ。