1 に引き続いて、軽く解説的な内容を少々。今回は少しばかりプロジェクトに接近していきます。
jar と war … 通常のソースコード ***.java を javac コマンドでコンパイルするとできるのは ***.class です。実行するには、「java 環境でクラスを呼び出す」必要があるので、コマンドは
java ***
となります。「コンパイル済みのクラスを呼び出す」これが Java アプリ実行の原則です。
ところが、Ocean/Dolphin プロジェクトでは、クライアントは OpenOcean.jar 、サーバーは OpenOcean.war などという名称です。
これは、ある程度まとまった機能を提供するためには、クラスだけでは足りず、設定ファイルや画像などのリソースファイルが必要なため、それらをまとめたファイル形式が必要とされたからです。jar は、その一つで Java ARchive からきています。読み方は「ジャー」でいいと思います。
Java EE を用いる Web アプリの場合には Web application ARchive 通称 war (ウォー :戦争 war と同発音)となります。
git と github … github は先日マイクロソフトに買収され、それを日経新聞が「設計図共有サイト、8200 億で買収」と報じたため、そのネーミングセンスが話題になりました。
オープンソースのソースをインターネット上で公開しておくには、何らかの場所(リポジトリ)が必要で、その一つが、GitHub (ギットハブ。ネイティブっぽく発音するならギッ ハブでしょうか)です。他には sourceforge などもありますが、ドルフィン一族は、その多くが GitHub でソースを公開しています。
公開されたソース(リモート)を自分のマシン(ローカル)にクローンすることもできます(というかしないとビルドできない)。
ローカルやリモートのリポジトリの橋渡しをしたり、改変を記録しておくためのシステムが Git (ギット)です。
雰囲気掴みたい人は『お手軽にWin機で Git や GitHub を使う』など参照。
歴史的に見るとまず Linux カーネル構築のためのバージョン管理システムとして Git がリーナス・トーバルズの手によってつくられ、そのホスティングサービスとして GitHub ができたわけですが、実用的には上のような理解でいいと思います。
windows にはデフォルトで git コマンドが入っていないため(ですよね?)、自前で git が使える環境を構築する必要があります。私は随分前に構築したっきりなのですが、それなりに面倒だった記憶があります。たぶん、ここらへんで多くの人が嫌気をさすのではないかと思います。
ただ、ここらへんくらいまでの知識があれば、ビルド・デプロイはなんとかできるでしょうか。
『Open Dolphin 2.7.0b を Win10 にインストールしてみた』
や、外部サイトですが
『OpenDolphin 2.7(m) を Mac OSX にインストールする』
『OpenDolphin-2.7m を M1 Mac にインストールする』
あたりの記事をどうぞ。
ソースコードは
github https://github.com/Hiroaki-Inomata/OpenDolphin-2.7m
に置いてあります。
デザインパターン…迂闊なことをいうと本職の方々に怒られそうなので wiki から引用しておくと
ソフトウェア開発におけるデザインパターン(型紙(かたがみ)または設計パターン、英: design pattern)とは、過去のソフトウェア設計者が発見し編み出した設計ノウハウを蓄積し、名前をつけ、再利用しやすいように特定の規約に従ってカタログ化したものである。
だそうです。ソースと最終産物との間にある中間的な機能を設計する上での定型的なパターン、とでもいったらいいんでしょうか。
apple 系のOS のフレームワーク( cocoa と cocoa touch )で頻出の「xxxxdelegate」も典型的なデザインパターンの一つです。
ですが、プログラミングの初心者コースではまずは教えないと思うので、それなりに経験積んだ人でも知らない人は知らないんではないでしょうか。OpenOcean/OpenDolphin ではシングルトンやメニューファクトリーといったパターンが使われています。
これがある程度頭に入ってないと、ソースを追っていっても何やってるかわからなくなると思います。逆に C++ あたりで過去に一回でも経験しているとその類推で何とかなることも多いと思います。
実際に改変を試みようとするとここら辺から、難しくなってくるのかなと思います。
後は、主要なライブラリなどでしょうか。私もいまだに使い方がわかっていないライブラリは山ほどあります。
Java のライブラリとしては、ORM の Hibernate が有名ですね。ORM や Hibernate に関しては、他サイトですが
をご参照ください。雰囲気掴めるかと思います。
? 参考
より詳細なソースコードレベルでの解説は
『OpenDolphin ソースコード解説』
を参考にしてください。
“OpenOcean/OpenDolphin をカスタマイズするために知っておいた方がよいこと 2” への1件の返信