SEの現場2004
SE shop.com SEの現場を購入する
SEの現場2004
   
過去記事
第9回 「Javaコース中級編(その4)」
第8回 「Javaコース中級編(その3)」
第7回 「Javaコース中級編(その2)」
第6回 「Javaコース中級編(その1)」
第5回 「Javaコース初級編(Q&A)」
第4回 「Javaコース初級編(その4)」
第3回 「Javaコース初級編(その3)」
第2回 「Javaコース初級編(その2)」
第1回 「Javaコース初級編(その1)」

誌面記事
マンガでわかる
会社・業界図鑑2004
気になる会社の状況と、業界でのポジションが一目でわかる。転職者・新入社員必見!!
SEの職場を拝見
日本オラクル、サイバードなど、「こんな会社で働きたい」職場を持つ企業に突撃取材。本誌未収録写真もアップ。
データベースのセキュリティを考える
今、重要な課題として挙げられるセキュリティの強化。なかでもデータの保護は最も重要です。データは通常データベースに格納されていますが、データベースの中にあれば大丈夫とは言い切れません。この連載ではデータベースのセキュリティについて皆さんと一緒に考えていきたいと思います。
クイズで実践
成功するSEの交渉術
この連載では、SEが獲得すべき交渉のスキルについて、会話形式の例題にそって解説していきます。現場での交渉は毎日が真剣勝負です。ここでは会話に沿って示される選択肢のなかから「これだ」と思うものを選ぶことにより、あなたの交渉スキルをチェックできます。では、さっそく始めましょう。
矢澤久雄の「プロのコード、アマのコード」
「プロらしいコードとは何か?」って聞かれたら、あなたは、何と答えますか? 『プログラムはなぜ動くのか』の著者矢澤久雄がプロのプログラミングを懇切丁寧に教えます。
新人PMに贈る、53通の手紙
え、今日から、プロジェクトマネージャー?期待と不安に満ちた新人PMに贈る現場感が満ちたエールです。
あなたは「もの作り派?」
「マネジメント派?」
 
あなたはどちらの道を選びますか? 自分のキャリアを、限りなくシンプルに考えるためのガイド。
トム・デマルコ インタビュー
プロジェクトマネジメントの神様 トム・デマルコに聞く「PMに必要なもの」。本誌未収録部分も掲載。
SEのための情報源
〜ユーザーグループ・雑誌・書籍〜
『SEの現場 2002〜2004』に掲載した、SEが読むべき雑誌、書籍、ユーザーグループを一挙紹介!
登録記事  
  第7回 Javaコース中級編(その2) 著者顔写真
グレープシティ株式会社 アドバイザリースタッフ
矢澤久雄
2004/6/17

 この記事は、翔泳社で実施する独習ゼミの研修を紙上で再現したものです。

使用したプログラミング言語はJavaです。プログラミング経験の有無から「初級コース」と「中級コース」に分かれて、それぞれ4問ずつプログラミングの課題に取り組んでいただきました。講師を務めた私の役目は、赤ペンでソースコードを添削することでした。提出されたプログラムは、どれもきちんと動作しましたが、誰にも共通した問題がありました。それは「プロらしくない」ということです。

実際に内定者さん(学生さん)から提出していただいたソースコードと添削結果を掲載しますので、皆さんも一緒にプロらしさとは何かを考えてみてください。また、指導する立場の人は、連載で指摘していく項目を意識しながら、後輩指導に取り組んでみるのもよいでしょう。今回は、中級コース第2回の課題を紹介します。なお、提出者の名前は匿名であり、ソースコードも一部を抜粋したものを掲載しています。

☆ ☆


以下のメソッドを持つToukeiクラスを作成してください。
Toukeiクラスの機能をテストするプログラムも作成してください。

※メジアンとは、中央の値のことです(偶数の場合は中央の2数の平均値)。
※モードとは、最も出現頻度の多い値のことです。


// 機 能:平均値を返す
// 引 数:データの配列
// 戻り値:平均値
public int getHeikin(int[] data)
public double getHeikin(double [] data)

// 機 能:メジアンを返す
// 引 数:データの配列
// 戻り値:メジアン
public int getMedian(int[] data)
public double getMedian (double [] data)

// 機 能:モードを返す
// 引 数:データの配列
// 戻り値:モード
public int getMode(int[] data)
public double getMode (double [] data)

 

 


[プログラムを見る]



コメントがとてもよくなりました
前回のアドバイスに従って、ソースコードの先頭にプログラムの概要、作者、作成日などをコメントしてくれましたね。これだけでも「プロらしさ」を感じました。

クラスごとにファイルを分けるとよいでしょう
Javaの基本は、1クラスを1ファイルにすることです。2つのクラスを1ファイルにまとめてくれると、添削する側としては助かりますが、どうぞ遠慮しないで複数ファイルを提出してください。  
その際に「クラスを再利用できるかどうか」にも注目してください。再利用できそうだからこそ、独立したファイルに分ける意味があるのです。

例外処理をどこですべきか考えてみましょう
Toukeiクラスを使う側(mainメソッドの側)で例外処理をしていますね。Toukeiクラスの側で例外処理をすることも検討してください。クラスは、プログラムの部品だと考えられます。例外処理を内部的に行ってくれる部品の方が便利ですね。オブジェクト指向プログラミングでは、クラスを使う人への思いやりが重要なのです。思いやりを込めた使いやすいクラスは、効率的なプログラミングを実現できます。すなわち、コストを下げられるのです。

同じ処理をなくす方法を考えてみましょう
Toukeiクラスでは、同じ機能のgetHeikinメソッドをint用とdouble用で2つ作っています。これらのメソッドの処理内容は、データ型が異なるだけで、後はすべて同じです。同じようなコードを2回も書くのは面倒ですね。もしも修正することになったら、両方に手を加えなければならないからです。無駄なコードを書かない方法を考えてください。

案1:int用のメソッドの中で、引数をdouble型にキャストしてdouble用のメソッドを呼び出す。
案2:引数をObject型の配列にする。
案3:Javaにも、C++のようなテンプレート機能がないかどうか調べてみる。

……などなど、自分で調べて、実際に実験プログラムを作ってみましょう!

トップページ
(c) 2004 Shoeisha Co., Ltd. All rights reserved.