前回の「知らなきゃもぐり!Javaプログラマの必須知識(前編)」に引き続き、本記事では、実際のJavaプログラマがプロジェクトの現場で必要となるツールや技術について解説していきます。
1. Wireshark
定番のネットワークパケットモニタです。多くのネットワークプロトコルに対応しています。Javaプログラマがユニット(単体)テスト、機能テスト、結合テストあたりで使用するのが主です。事前に他社製品の出すパケットを調査することもあるでしょう。
他の言語と異なり、Javaプログラマが特に本ツールを使用しなければならないシーンは、次のような場合です。
・WebアプリケーションがJavaでできており、WebブラウザとWebアプリケーションサーバの間のHTTP、TCPパケットを確認する。
・アプリケーションがJavaでできており、バックエンドのデータベースやディレクトリサーバとの間のTCPパケットを確認する。
・アプリケーションがJavaでできており、クラウドサービスを認証やストレージとして利用している場合、その間のTCPパケットを確認する。
結合テストあたりで性能が予想を満たしていない場合には、Javaアプリケーションの前後のコンポーネントとの間のパケットを確認しましょう。非常に大きいパケットを送っている、パケットの送受信回数が多い、TCPのコネクションの切り張りが頻繁に行なわれているなど、いろいろな原因が考えられます。
Javaアプリケーションは、仮想マシン(JVM)上で動作しますが、JVMに問題があることが考えられます。次に、Java SE/EEの標準コンポーネントに問題があることが考えられます。例えば、バックエンドのディレクトリサーバに、JNDIでLDAPを使用した場合、途中で想定外のエラーが出る場合には、JNDIに問題がある可能性があります。そのような場合には、まずWiresharkでLDAPのパケットの状況を確認します。
2. Bug database by Oracle
http://bugs.java.com
がJava Bug Databaseです。何かJavaSE/EEに問題がありそうな場合には、このデータベースで類似事象を検索しましょう。
該当の既知バグが存在しない場合には、バグをレポートしましょう。レポートはもちろん英語で書く必要がありますので、「英語力」は鍛えておいてください。
ただし、レスポンスは早くありません。あくまでコミュニティの中で作業が行なわれているため、明らかな問題を登録しても、その事象の環境作成が難しいとか、再現頻度が低いとか、優先順位が低いとかの場合には、対応は遅く、製品リリースやお客様へのカットオフに間に合わないこともあります。そのような場合には、プロジェクトマネージャの判断のもと、代替案を探るようにしてください。
Bug databaseとともに重要な情報として、Java SE/EEのリリースノートがあります。これには、修正されたバグが記載されていますので、もし、最新でないバージョンを使用している場合には、問題のバグが、最新バージョンまでに修正が行われていないか確認する必要があります。
3. UML
Unified Modeling Language(統一モデリング言語)の略です。
UMLは、設計工程で作成しますので、Javaプログラマはそれを理解する必要があります。また、多くのプロジェクトでは、機能設計意向をJavaプログラマが担当することがあります。その場合には、自身でUMLにより設計図を作成します。すでに、UMLは現場で標準となっていますので、「書けません」「読めません」は通用しないでしょう。
最低限、Javaプログラマは、UMLの図のうち、クラス図、シーケンス図を描くまたは読めなければなりません。UMLモデリングツールとしては、astah communityの無償ツールがよく利用されます。
4. WBS
Work Breakdown Structureの略です。プロジェクトマネジメント知識体系ガイド(PMBOKガイド)でも活用されるプロジェクト全体を細かい作業に分割した構成図です。Javaプログラマが、プロジェクトマネージャを兼ねることは稀ですので、JavaプログラマがPMBOKを熟知したり、PMP資格を取得したりすることは必須ではありません。スキルアップとしては有用です。
Javaプログラムは、WBSのレビューにおいて、MECE(漏れなく重なりなくを意味する用語)になっていることを確認し、自分の作業がどれであるかを理解するようにします。WBSは、企業、プロジェクトによって書き方が異なります。あらかじめどのような形式で書くか規定しておくべきです。
キャリアの幅を広げるなら、改めてプログラミングを学ぶのもあり
キャリアの幅を広げることを考えたら、改めてプログラミングを学んでみてはいかがでしょうか。
せっかく学ぶのであれば、仕事に繋がるスキルを身につけられる方法を選ぶのがベターです。
独学で学ぶ方法もありますが、全く経験がない場合はつまづいてしまう人も多いものです。
仕事につなげたいと考えている場合には、仕事として使えるレベルのスキルに近づけなければなりません。
現役エンジニアが講師を務めるマンツーマンレッスンなら、わからないところは質問できるだけでなく、学習内容をチェックしてもらえるため効率的にプログラミングを学ぶことができます。
仕事をしながら学ぶとなると、時間の確保が難しいですが、オンライン講座ならば通学の必要がなく、仕事をしながらでも隙間時間で進めやすい内容になっています。
そのカリキュラムの内容と教師のスキルで定評のある「コードキャンプ」が、ITビジネスマッチングを運営する「アサインナビ」と共同で開発したプログラムなら、無駄なくプログラミングを学べると評判です。
この共同プログラムは、98,000円という低価格でマンツーマンレッスンが受けられます。