タグ

ブックマーク / www.aerith.net (4)

  • テストファーストの弊害

    テストファーストは、XP(エクストリームプログラミング)の中でも特に広く浸透したプラクティスの1つである。 テストファーストは、モノを作るよりも前に、まずテストから着手する、という手法だ。モノが無ければテストできないという常識を、根からひっくり返す斬新なアイディアは、多くのソフトウェア開発者に衝撃を与えた。 テストファーストは、短期開発におけるXPの有効性が認められ、JUnitなどのテストツールが普及した今では、広く受け入れられるようになった。 だが、このようなまったく新しい手法は、初めはなかなか受け入れられ難いが、いったん受け入れられると、今度は逆に、魔法の技術であるかのように盲信されやすい。テストファーストについても、最近では「JUnitでテストコードを書いていれば、ソフトウェアの品質は問題ない」という風潮が広まりつつあるような危惧も感じる。 テストファーストの効果は、多くの人が認め

  • WBS(Work Breakdown Structure)によるプロジェクト管理

    ソフトウェア開発プロジェクトでは、短期開発の要求が高まっている。受託開発も例外ではない。特定の顧客から長期に渡って大型案件を請け負っている場合でも、開発期間はますます短縮される傾向にある。 納期に対する高い要求を満たすには、プロジェクト管理が重要である。正確な見積もりと、的確な進捗管理ができなければ、短期開発では容易にデスマーチに陥ってしまう。 筆者の開発プロジェクトでは、WBS (Work Breakdown Structure) を使ったプロジェクト管理を導入した。WBSは見積もりのための強力な道具として広く使われている。筆者はさらに、実績も管理できるようにWBSを拡張し、見積もりから進捗管理まで一貫して管理できる手法を確立した。 ここでは、筆者が拡張したWBSの書き方と、それを使ったプロジェクト管理の手法を提案し、実際の開発業務に適用した経験から得られたWBSの運用ノウハウを紹介する

  • 技術者の評価を下げる「悪い」コメントに注意しよう

    ソフトウェアの受託開発や、オープンソースのプロジェクトでは、ソースコードが他の技術者の目に触れる。そのため、ソースコードから開発者の技術力が評価されやすい。 ソフトウェアの開発者は、モジュール分割やクラス設計には全力を傾ける。最近では、設計の完成度を高めるために、実装の後でリファクタリングを行うことも珍しくない。 だが、設計の善し悪しにこだわる開発者でも、ソースコードに書くコメントの品質までは、配慮が及ばないことが多い。コメントは質的なものではないので、つい気を緩めてしまうのである。 ところが、開発者の希望に反して、ソースコードの読み手が印象を受けやすいのは、コメントの品質である。ソースコードから設計を読み解くのは容易ではないが、日語や英語で書かれているコメントは目に付きやすい。 優秀な技術者の書いたソースコードでも、驚くほど「悪い」コメントが書かれていることがある。そのようなソースコ

    swat
    swat 2005/06/08
  • Javaのスレッドとメモリリーク

    Javaにはgarbage collectorが組み込まれていますので、CやC++の場合と違って、自分でメモリを解放する必要はありません。使われなくなったオブジェクトは、そのうち自動的に削除されます。 ところが、プログラマが意識していないところで、オブジェクトが参照されたままとなってしまい、いつまでたってもgarbage collectorでメモリが解放されない、という状況になることがあります。これが、Javaのメモリリークです。 スレッドにおいても、メモリリークが発生しやすいケースがあります。 例として、次のソースコードを見てください。 public class ThreadTest { public static void main ( String[] args ) throws Exception { for (int i = 0 ; i < 100 ; i++) { Thread

    swat
    swat 2005/05/24
    ThreadのインスタンスにThreadを渡して実行するとメモリがリークするという話題。
  • 1