3D動画のグランブルー3Dのブログ
■3DCG動画のグランブルー3D


【 Webアプリのプログラミングの心得 】

今回から実際にプログラミングを行う際のポイントや取組の心構えなどを述べてみたいと思います。

構造化プログラミング
多少でもプログラミング経験のある人は、基本的な事項として知っていると思いますが、ついついやってしまう。
特に、プログラミングに自信のある人ほど陥りやすい。
プログラムをコーディングするとき、思いつくロジックをダラダラと書いてはいけない。
きちっと構造化する必要がある。

システム設計書でも基本設計、詳細設計、プログラム設計と色々な段階があり、大規模システム構築の場合は、そのような設計書の手順を追って制作していく。
しかし、
小規模でやる場合に、一々そのような工程を生真面目に辿っていたら費用も期間も膨大に掛かり過ぎる。
よって、
省くところは極力省くが、やはり、システムは構造化して構築しないと、後の保守が大変である。
制作中のデバックでも誤りが発見されにくい、混乱するなど大変なことになる。
やるべ最低限のことは頭の中だけでも整理して、それをプログラムに反映させればよいのです。

PHPのプログラム構造では、
PHPだから、どうだ・・・と特別なものはないが、
構造化ということではサブルーチーン化、Function(関数)化、変数化などで共通ロジックは纏め上げてシェアする。
一本のプログラムの構造を、ハウスキーピング(初期処理)、本処理、後処理と上から下に流れるような体系化した造りにする。
スパゲティーのようにロジックが絡み合ったプログラミングをすると、あなたのセンスが疑われます。

また、コメント行をできるだけ挿入して後々見直し、保守の時に分かりやすくする。
など、PHPに限らずごくあたりまえの造りにする。
実をいうと、そのあたりまえが意識せずにスラスラと出てくれば、あなたはかなりの達人ですね。
そのくらい、あたりまえの常識をプログラムに反映させた時は、誰が見ても美しいアート的なコード群になっている。
美しいと思えるプログラムコードはバグも少なく、保守メンテも実に楽である。
プログラマーのプログラミング美学という専門職のプロ魂であり、センスの問題ですね。

PHPプログラミング・テストの過程で頻繁に発生して苦労する箇所をあげますと、
EUCとSJISの問題は、文字化けで始終、悩まされます。
Apacheサーバーのシステム設定とMySQL、PHPのロジックの組み立てでコード変換を随所に挿入(サブルーチン化しますけど)する必要がある。
また、開発のローカルサーバーからレンタルサーバーにアップロードしたら、これまた、同じ現象とか、別の現象がでる。
レンタルサーバー側の提供する「AMP」のシステム設定・環境との相性を合せておくことは必須です。
文字化けぐらいなら、まだ、可愛いですが、動かない、バグるなども突然起こることもある。
とにかく「システム環境の設定時には、慎重にチューニングしておくべきだった」と実感することになります。
プログラミング作業以前に解決すべき問題にもぶつかることがあります。

次回のお話をお楽しみに!


■3DCG動画のグランブルー3D


--------------------------------------------------------------------


3D動画のグランブルー3Dのブログ
■3DCG動画のグランブルー3D


【 Apache配下での開発環境 】

先回、システム環境の設定について述べました。さらにお話します。

ローカルサーバーとしてインストールしたApacheのどこに開発しようとするプログラムコードを置くのか? 
ですが、初めての人は疑問に思います。
要するに、Apache(アパッチ)というサーバーソフトの配下にWebアプリは位置するのですから、その下のどこかに置くのだなと直感でわかります。

Webアプリの置き場所は、
Apacheのシステムフォルダーのhtdocsがアプリを設定するルート・ディレクトリーです。
ここが、開発プログラマーが自由に使ってよいフォルダーです。
このフォルダーにWebアプリのコードを直接置くことも、また、
そのルート・デレクトリーの配下にサブ・ディレクトリーをシステム開発に必要な分だけ新規作成して置き、その中にPHPプログラムコードを作成することもできます。
データファイルである通常のシーケンシャル・ファイルも一緒に置くことになります。

しかし、データベース(DB)については、
MySQL配下で動くことになりますので、MySQLの配下のシステムフォルダーのdataというデレクトリーにデータベースを置くことになります。
但し、直接データに加工を加えることはできないので、先ほど説明したphpMyAdmin(ピーエッチピーマイアドミン)というツールを使ってデータハンドリングする事ができます。
テストデータをDBにあらかじめ登録しておいて、Webアプリで読み出し更新をかけるテストをする場合などは、実にphpMyAdminは重宝します。
phpMyAdminがなければ、自前でテストデータ発生の使い捨てプログラムを作成しなければなりませんので、その手間が省けます。

なお、レンタルサーバーにアップするときは、プロバイダーの提供する情報をよく理解して、指定の場所にアップロードする必要があります。
また、
FTPでアップした時そのプログラムのアクセス属性として「読み込み、書き込み、実行」など権利を設定するPermission(パーミッション)の設定もありますのでご注意ください。
更新系であれば「755」です。
詳しい事は、その筋の専門書を入手してご勉強ください。

また、ごく当り前なのですが、つい、うっかりとやってしまうのが、次の非常識です。
レンタルサーバーにアップしてバグが発生。
よくよく調べてみるとテスト不足であった、などよくあります。
まだ、日本語文字化けとか、プログラムが異常終了してエラーメッセージなどを表示するなど、であれば許されます。
しかし、レンタルサーバー側に迷惑のかかるシステム致命的なトラブルを発生させてはいけません。
レンタルサーバーにアップするときは、ローカルサーバーで十分にテストしてロジックバグが発生しないものをアップロードするのがルール。
特に、
ループ制御するようなコーディングをする個所は多いと思いますので、そういう危ない箇所はくれぐれも厳重にテストしておくべきです。
また、コーディングにループ回数の制限を設ける滑り止めなど工夫を施して万全を期しましょう。
レンタルサーバーで永久ループなど起こしたら永久退場(レッドカード)ものですね。
プロとしての誇りと名誉に懸けてやってはいけないことですので。


次回のお話をお楽しみに!


■3DCG動画のグランブルー3D


--------------------------------------------------------------------


3D動画のグランブルー3Dのブログ
■3DCG動画のグランブルー3D


【 システム環境でのAMPの設定の重要性 】

先回まで、システム構築成否にかかわるシステムエンジニアの役割について話しました。

今回からは、システム構築の道具たてについて具体的なところをお話ししていきます。

Webアプリの制作に「AMP」の道具たてでシステム環境を設定する。
「AMP」とは、先回にも話しましたが、
Apache、MySQL、PHP の三つを組み合わせた造語です。
1. ApacheとはWebサーバー・ソフト、
2. MySQLとはデータベース(DB)ソフト
3. PHPとはプログラミング言語
これは、今回の小規模システムの開発環境を整備するには、手軽で使いやすく、かつ無償という大きなメリットがあります。
そして、昨今、メジャーなレンタルサーバーでは「AMP」を標準的なサービスメニューとして提供しているほどに普及してきているので、便利です。

さて、実際にプログラム開発する前に、最も重要な課題が、システム環境の設定をきっちりと実施することです。
今回の話題の開発は、Webアプリであるから、サーバーが必要になります。

開発用のローカルサーバーと本番稼働用のレンタルサーバーが必要です。
ローカルサーバーは、少々、ハイスペック仕様のPCにApacheをインストール。
ApacheはWebサイトから無償でダウンロードできる。
片や、
レンタルサーバーは大型機が多いのでUNIXが殆どです。

その両サーバーのそれぞれ配下で稼働するPHPとMySQLの環境を一致させる必要があります。
一致させるといっても、ローカル側を一方的にレンタルサーバー側に合せることになるのですが、
問題は、レンタルサーバーのサービスするシステム環境の情報の公開があまり為されていないことである。
それには、理由があり、
あまり多くを公開すると悪さをするハッカーがいるということでセキュリティーに過敏になっているのである。
よって、
サービスを受けようとする我々ユーザーは、最低限に小出しにされた限られた情報から、システム環境の設定パラメーター値(もしくは、コード)を知らされることになる。
OSはUNIXであるだろうから日本語コードはEUCが殆どであり、それに関係するPHP、MySQLの設定も、ほぼ、それに準じているのが大方である。
なぜ、
レンタルサーバーのサービスするシステム環境の情報が必要かというと、理由は二つある。
一つは、開発テスト用のローカルサーバーであるが、当方はApach(アパッチ)をインストールしている。
そのApachの配下でPHPを動かすのであるが、そのシステム設定(php.ini)をレンタルサーバーと極力合わせる必要がある。
二つ目はMySQLのデータベース環境である。
これについても(my.ini)など日本語環境のコードの同一性などを合せておく必要がある。

要するに、
開発テストするローカル環境と本番環境であるレンタルサーバーと相性が合わないといけない。
不一致であると、折角、開発したシステムが異常終了する、トラブルに見舞われるなど円滑に稼働しなくなる。
まず、両サーバーのAMP環境を合せることが先決なのである。


次回のお話をお楽しみに!


■3DCG動画のグランブルー3D


--------------------------------------------------------------------