Excel や Access の VBA(Visual Basic for Application)で業務プログラムばかりを作ってきて、どうしてもWebアプリが作れないので php の勉強を始めました。1年経ってやっと理解できたような気がします。
私が今まで勘違いしていたことや知らなかった多くのことをまとめました。
1.Webアプリを勉強するには、どの言語を勉強すればいいのか?
Java と Java Script の違いもわからないまま、友人が開催しているPhp勉強会に参加することにしました。
その時、私が持っていた言語のイメージは、Phpは古い言語でJavaの方が将来的に役に立つのではないだろうか?などとわけのわからない知識のままです。
▼解ったこと
Java と Java Script は、全く違う言語で名前が似ているだけなんですね。Javaは、昔のオフコンの大量のプログラムを移植するために利用され、主にサーバー上で動作しているようです。
Java Scriptは、Webブラウザで動作するプログラムで、表面上の表示処理などで活躍する言語です。
したがって、Webアプリを作成するなら php と Java Script の勉強から始めることです。php と Java Script は共存して使用するので、Webアプリ開発にはどちらの知識も必要です。
2.開発ツールは、どれを使えばいいの?
Visual Studio や Eclips など色々な開発ツールがある中で、私が教わっている php勉強会の先生は Netbeans と Xampp の環境を選択しました。
▼解ったこと
どのような開発環境を構築して開発を行うかによって、適切な開発ツールが決まってきます。独学でWebアプリの開発を行う場合は、参考にする書籍と同様の開発環境を構築する方がいいでしょう。
開発に必要なことは、トラブルや質問を問合せできる人が身近にいることが大切です。今回構築した環境は、そんなにメジャーな環境ではありませんが、負荷が軽く開発効率もよく満足しています。
私の先生は、下記の環境を推奨しました。
1.Xampp
2.NetBeanz
3.AdminLTE
4.Smarty
3.業務アプリってWebに置く必要あるの?
Excel や Access を使っていてこんなによくできたツールはないと思います。データを離れたところで共有するために、いままで VBA で作成したプログラムを他のプログラムコードで作り変えることは、非効率的だと思います。
今までの VBA プログラムを利用して、もっと効率よく遠隔地間でデータ共有する方法があるのではないでしょうか。
▼解ったこと
まだまだ、Webの開発環境は Excel や Access のような開発効率は望めません。しかし、php や JavaScript はサンプルコードやエラー回避情報が多くかなり効率の良い開発が行われます。
しかし、業務用アプリではすでにExcel や Access で動作しているプログラムコードが多く、php や JavaScript では現在のコードをそのまま利用することはできません。データベースをWeb上にセットしてローカルのプログラムを使用してデータを共有するには、Office365を活用することが最も効率的だということです。
4.プログラムを各パソコンにインストールするよりクラウドの方が効率的じゃないの?
それぞれ環境の違うパソコンで動作するプログラムより、クラウドにして1本のプログラムで多くの人に利用してもらう方が、効率的じゃないの?
▼解ったこと
ブラウザでアクセスできるプログラムだと、どのパソコンからでも動作するように思えますが、実際にはそう簡単にはいきません。ブラウザの種類やバージョンにもよりますし、サーバーの環境によっても異なります。
それより、多くのパソコンで動作しているExcelやAccessを利用した方がバージョンが違ってもデータを共有する環境ができるようです。AccessはRuntime版が無料で配布されていますので、コストも抑えられます。
5.データベースは無料のMySQL使えばいいのに、なんでSQL Server使うの?
無料で入手しやすいデータベースは、MySQLです。なぜ、あえてMicrosoftのSQL Serverを使う必要があるのでしょうか?
▼解ったこと
同時アクセス数が、5台程度のシステムであれば SQLServer を設置する必要はありません。NASに設置したAccessデータベースを共有するだけで システム構築は可能です。
データバックアップなどを考慮するとRAID1以上のNASを2台で構築すれば、故障などによりデータが消失することはまずないでしょう。
Web環境での開発は、php や JavaScript 言語を活用して MySQLデータベース を活用する方が、レンタルサーバーなどを利用しやすく安価で安定したシステムを構築できると思います。
■私が推奨する業務システム開発環境のまとめ
1.業務システムの開発に利用するアプリケーションは、ExceとAccess (Ver 2010 または 2013)を使用する。ローカル環境でのシステムデータ共有には、NASを使用する。
2.遠隔地でのシステムデータ共有には、Office 365 の SharePoint を利用する。ローカルサーバーのデータベース構築は不要。
3.Webと連携してシステムを運用するには、php と JaveScript 言語は、どちらも基本的なことは知っておかなければいけない。Web環境のデータベースは、MySQLを利用する。
4.Webシステムの開発ツールには、NetBeansとXamppを使用して環境を構築する。プログラムコードには、SmartyとAdminLTEを利用して開発効率をあげる。
Java も JavaScript も わからないまま、php言語の勉強をはじめて1年経ちました。php言語もある程度理解しましたが、一番大きかったことはWeb開発の環境を理解したことです。
今後は、いままでローカル環境で構築された業務システムが、Web環境をベースにした業務システムに移行していくことでしょう。その時にどんな環境で作成するかは大変重要です。皆さんのご意見をお待ちいたしております。