良いコ-ドへの道―普通のプログラマのためのステップアップガイド

第1回 良いコードを書くための5つの習慣[後編]

この記事を読むのに必要な時間:およそ 2.5 分

習慣その2 書く――とにかくコードを書きましょう

手の裏付けのない言葉はあまりに安い。人を動かしたかったら,まず自分の手を動かせ。手が塞がっていたら,手を動かした経験を語れ。口で語るな手で語れ。

――小飼 弾注6

当たり前のことですが,「良いコード」が書けるようになるには,「自分の手を動かして,コードを書く」必要があります。コードを書くという実践が「良いコード」を書くうえでの血肉となります。仕事でコードを書くのはもちろんですが,日々の単純作業を効率化するツールやスクリプトを書いたり,新しい言語やフレームワークを試してみたり,さまざまな場面で自分の手を動かしてコードを書きましょう。

「いったい何を書けばいいの?」という人は,コードの写経はいかがでしょうか。書籍やWebサイトに掲載されているコードを,実際に手を動かして一文字ずつ入力することを「写経」と呼びます。写経することで,元のコードが書かれた手順や,行間に潜む意図を伺い知ることができます。これは,「コピペ」では得ることができません。その技術を体得したいときや初めての分野の技術に挑戦するときなどに特にお勧めです注7)。

注6)
404 Blog Not Found ―― スーツの道も,舗装するのはギーク
注7)
写経については,gihyo.jpの「和田卓人のテスト駆動開発講座 ―― 第6回 「写経」でTDDの手順や書き方を学ぶ」(http://gihyo.jp/dev/serial/01/tdd/0006)が詳しいです。

Column 一人でプログラムを書けますか?

プログラムを自分一人で一から書けない・書いたことがないという人も,意外と多いのではないでしょうか? 仕事では,プロジェクトのディレクトリ構成やライブラリの設定,そのほかもろもろの開発の準備を,リーダーや達人プログラマがやってくれていることも多いはずです。「このサンプルのように,アクションクラスとこのロジッククラス,DAOだけを書けばOK。あとは,仕様書どおりに書いてね」とこんな具合で,なかなか一からプログラムを書く機会はないかもしれません。

このようなやり方は,チームで仕事を進めるうえでは効率が良いでしょう。しかし,「部分的なプログラム」しか書けないのは,開発者として将来に大きなリスクを抱えている状態と言えます。ある程度の規模のプログラムを一から最後まで書けるようになってはじめて,プログラマとしてスタート地点に立てたと思ってよいでしょう。

まずは小さなプログラムでかまわないので,自分で何かを一から書いてみてください。できあがったら,同僚や上司,友達に見せたり,サーバに乗せて公開してみてください。きっと仕事でやっている「部分的なプログラム」では得ることのできない経験と自信が得られるはずです。

Column みなさんは何歳までコードを書きますか?

「プログラマ35歳定年説」をよく耳にします。みなさんはいつまでコードを書くのでしょうか?

私も2年ほど前にそのことを考えました。そのとき私は32歳でしたが,60歳になっても何らかの形でコードを書いているのではないか? もしコードを書いていなかったとしても,コード的なものや文章などを,エディタで書いているではなかろうか。そう考えると,最高に効率が良いエディタに早めに乗り換えたほうがベストだなと思い至りました。

思い立ったが吉日,それまで使っていたWindows系のエディタを捨てて,Emacsを使うことにしました。ちょうどUNIX系のOSを学びたかったこともあり,荒療治としてWindowsからMac OS X環境にスイッチして,Carbon Emacsをメインのエディタにしました。お気に入りのWindowsのエディタが使えない環境に自分を追い込んだのです。

最初は,まったく使いこなせませんでした。周りにいる「Emacsを魔法のように使う達人」に教えてもらったりしながら,少しずつ使えるようになっていきました。おかげで今では,この原稿もEmacsで書くことができています。途中でもっといいエディタが出てきたら乗り換えるかもしれませんが,今のところ60歳までEmacsでコードを書いていようと思っています注a)。

注a)
ただしJavaはEclipseで書いています。

習慣その3 道具を磨く―― 自分の使う道具は常に磨いておこう

コードを書くうえで必要な道具や環境を,最高の状態に保ちましょう。作業効率を上げていくことで,無駄のないプログラミングが行えます。たとえば,APIリファレンスが必要なときに,エディタのコード上から1秒で確認できるのと,Googleで毎回検索して目的に場所にたどり着くのではまったく効率が異なります。

以下,道具ごとに見ていきましょう。

エディタ/統合開発環境

viやEmacsなどの高機能なエディタや,EclipseやNetBeansのような統合開発環境を使いこなして,効率的な作業環境を構築しましょう。これらには効率を高めるショートカットキーや機能が満載です。ショートカットキーを駆使して不要な場所でマウスやカーソルキーの利用を減らしたり,エディタをカスタマイズしていくことで,手になじむ効率の良い開発環境に育っていきます。

自動化

ビルドは自動化しましょう。DBのスキーマ作成は自動化しましょう。テストは自動化しましょう。ありとあらゆることを自動化の対象とみなして,改善していきましょう。Maven2やAnt,rakeコマンド,シェルスクリプト,バッチファイルなどを使えば,繰り返し行う単純作業を自動化できるはずです。

バージョン管理ツール

バージョン管理ツールを使って,作業を巻き戻したり効率良くチーム開発できる環境を作りましょう。

UNIX/Linux/Mac OS Xなど

UNIX/Linuxのコマンド/ツール群は,開発の細かい作業をサポートしてくれます。また,Windowsでは知ることのできない哲学がUNIXの文化にはあります。

最近では,Windows上でLinuxを動かすのも簡単ですし,UbuntuやMac OS Xで開発することも問題なくできるようになってきています。使ったことのない人はぜひ利用してみてください注8)。きっと世界が広がるはずです。

注8)
UNIXのツールを使うだけであれば,Cygwinを使うという手があります。

著者プロフィール

縣俊貴(あがたとしたか)

学生時代にMSXで制限された環境でのプログラミングの楽しさを学ぶ。以来,オープンソースのWiki実装「MobWiki」の開発や受託開発などを経て,現在はプロジェクト管理ツール「Backlog」,ドローツール「Cacoo」など,コラボレーション型のWebサービスの企画と製品開発を行う。また,Webアプリケーションフレームワーク「Cubby」のコミッタを務める。福岡在住。株式会社ヌーラボ所属。

ブログ :http://d.hatena.ne.jp/agt

Twitter:@agata

コメント

コメントの記入