業務アプリの内訳
業務アプリは、企業体が業務の遂行に使用するアプリケーションの総称です。大まかに以下のようなモノがあります。
作成するアプリ(システム)
- グループウェア(社内SNS)
- スケジュール(営業)管理システム
- 在庫・販売管理システム
- スマホアプリ(Android, iOSなどの携帯やタブレット)
システム概要
グループウェア
社内での、勤怠管理や、勤怠報告(日報)などに加えて、チャットでの相談やスケジュール調整機能などを実装
具体的にはNotesが有名です。
スケジュール管理システム
営業の仕事を助けるため、スケジュール管理と必要な部署へのリンクや地図サービスと連携して位置情報を付随させるなど多岐に渡り機能をつけている。在庫管理システムとの連携も多い
上記のアプリは、ほぼ全ての企業(社員300人以上)が使用しているであろうアププリケーションで、必要になる技術をまとめてみました。
ITエンジニアと言ってもやる事は多種多様です。実態としては、各企業の業務内容に依存するために作業は多種多様になります。
上記のモノは、会社として、多くの企業が使用しているであろうモノです。
「〜であろう」というのは、自分の経験上、自分はJavaエンジニアで、受ける仕事は、大体上記の分類になるという意味です。
珍しいのは、組み込み系(C/C++で多い案件だが、オブジェクト指向を理解しているので、Javaエンジニアの自分にも紹介が来た)とか、画像処理(医療機器アプリ)などがありました。
使用する技術
上記の4.スマホアプリを除いては、以下のような技術を使う事が多かったです。
大まかに、以下のような技術を使用します。
画面(ブラウザ表示)の作成
HTMLとJS(Java Script)
これらの技術を併用して、画面やボタン簡単なアニメーションを作成します。スマホやPCのディスプレイサイズの違いによって、表示レイアウトを変更する、CSSでのレスポンシブデザインなんて手法もあります。この部分は
MVCモデルのV(View)に相当する部分です。
リクエストハンドル
Java, PHP
同様に、これらの技術を使用して、ユーザーからアクセスされたページに遷移させる処理の事です。
MVCモデルのC(コントロール)にあたる部分です。
主に、ログインユーザーかどうか判定し、会員以外は全てアクセス出来ないようにするなど、セキュリティのために使用したり、新規・既存の画面への画面遷移コントロールなどに使用します。
そして、あまり耳にしないかもしれませんが、アプリのログ出力や、セッション(サーバー上で管理するユーザー情報オブジェクト)のチェックを行うフィルター処理やAOPと呼ばれる技術を使用して、サーバーサイドのメソッド呼び出し前後に共通処理を挟み込む事もあります。
しかし、最近ではRESTful実装が流行りで、画面=V(View)側から直接コントローラを呼び出す実装方法が増えてきています。というかほぼこれかも?
ちなみにPHPでもこの実装方法は実現可能です。ワードプレスのライブラリ読み込みでちょいと処理が遅いけど、作りました。以下のリンクがそうです。ヘッダー部分のカテゴリを選択すると対応する記事の一覧を取得します。ちなみにAngularJSも使用しました(笑)
https://zenryokuservice.com/#!/pgbox
モデル
うまい表現が見つからなかったのでウィキから引用します。
アプリケーションデータ、ビジネスルール、ロジック、関数
という表現をしていました。詳細は、コントローラーから呼び出されるサービス処理=ビジネス・ロジック(業務処理)がそうです。コントローラーはリクエストを受け付けるのが役割なので、DBにアクセスしたり、細かい計算をするのはモデル(M)の役目になります。
これらの処理は、フレームワークというものを使用してやると実装する量を格段に減らす事が出来ます。
有名なところでは、以下のようなものがあります。
これらのフレームワークを使用して上記のようなアプリを作成する事が多くあります。古いのだとS2Strutsなんてのもあります。
丁度この頃にAOPという技術も出て来て、よく混乱しました(笑)
まとめ
早い話が、MVCモデルがわかれば大体の業務アプリは、対応が可能になるという事です。
そのために、理解する必要があるのは「オブジェクト指向」です。
XXXを行う処理を作成しで下さいというような問題では、あくまでも各機能の小さな一部の処理のみの話です。
この一部の処理を作れる必要はありますが、アプリケーション設計〜テスト迄の大まかな内容を理解するには、クラス間のやり取り、関連性を構築する技術が必要ようです。
そのために、下のリンクにあるようなフローでJavaを学ぶと効率的だと思い学習フローなんぞ作成しました。
ハローワールドに始まり、クラスの作成、役割分担などオブジェクト指向の考え方と実装方法に関して記載した記事のリンクと補足を記載しています。
シンプルに簡単なコンソールアプリを作成してみるのも良いと思います。
Java ミニゲーム ソース 〜じゃんけんゲーム in Console 〜
でわでわ。。。