« 2007年9月 | トップページ | 2007年11月 »

2007年10月16日 (火)

PHPの美徳

最近PHPを勉強しはじめました。
収入アップを目指して外部案件をもらおうと考えているのですが
手っ取り早いものにPHP案件が多いというのが理由です。
Javaは常駐案件が多くてね。
PHP、簡単な案件だと市場の一部分を占めるようになりましたね
…生産効率で言えば自分的にはJavaの方がよいように思えます。

なんでPHPが伸びたか?
感じるのは3つのポイントです。
①WEBアプリケーション開発に適したスクリプト言語
②簡単、単価の安い技術者が多い
③Java、C++、.NETなどの開発者にSI出身が多く高コスト体質

①と②ですが習得が比較的簡単な…一定のレベルのアプリケーション
を製作するのに必要な学習時間が少ない言語なので習得している技術者が
比較的多く、なかにはデザイナーがPHPを組む事例すらあります。

またソースコードと実行ファイルが別々のコンパイルする言語と違い
ソースコードを直接設置するスクリプト言語です。
そのためメンテナンスがしやすいという利点があります。
ソースコードが見つからない、コンパイルができないというトラブルが起こらないのです。

上記2点の特徴から開発時コストの安い技術者を一時的に雇い
メンテナンス、サポート時は自社の技術者を使うというスタイルが
PHP中心の開発会社の一スタイルとして定着しました。

これに加えて③の外部要因が後押しします。
SI系の標準的な開発会社ではコンサルタントから開発までが一つの案件となった
比較的高コストなスタイルが確立されています。

コンサルティング・要求定義(SE)

設計書・提案書・見積り書作成(SE)

契約

開発(プログラマ)

究極に単純化すると上記のようなスタイルになります。
(高コストを説明するための部分だけ書き出してます)
問題は契約にこぎつける打率と設計書や要求をまとめたSEと
開発者が多くの場合別であること
そのために詳細なドキュメントが必要なことです。

例えば契約にこぎつけるまでの打率が単純に50%だとすると
クライアントは潜在的に【提案書作成】までのSEの人件費を
2倍負担していることになります。

コンサルティングが重要なSIであれば問題ないですが
ECサイト作成のようなWEBアプリケーション開発でクライアントから
直接依頼がある場合、打率は100%に近くなったりしますが
かといって見積書の一人月は減らないのでコストは高いまま、これは問題です。

結果PHPがよりやすく、それ以外がより高くなる傾向があり
PHPが市場を確保していった…そう感じる今日この頃。

どのプログラム言語が優れているか?
それは使用目的や営業スタイル、開発スタイルにより結果が異なる。
より重要なのはあなたがどのように働きたいか?
それにはどの言語が向いているか?ということであると感じましたね。

| | コメント (0) | トラックバック (0)

2007年10月 2日 (火)

JBossのログ(searver.log)肥大を止める

HibernateのHARアーカイブをJBossで使用しているとともかくログの肥大化に悩まされます。
単純に標準出力に出ているのかとあきらめていましたが実はこれがlog4jで
制御されていることに気がついたのでこれを利用していろんなログを黙らせて見ました。

/jboss/searver/default/conf/log4j.xml
/jboss/searver/default/conf/jboss-log4j.xml (4.2.X系)

Hibernateが五月蝿いと感じているあなたは
上記ログ制御ファイルに以下の文をぶち込みます。
   <category name="org.hibernate">
      <priority value="INFO"/>
   </category>

これでもうるさいと思う人はWARNでもいいんじゃないでしょうか?
他にもJakarta系はログが五月蝿い…もとい丁寧なログが出力されています。

HttpClientを使っていればこれも有効でしょう
   <category name="httpclient.wire">
      <priority value="INFO"/>
   </category>

EHCacheをHibernateで使っている方はこれも有効
   <category name="net.sf.ehcache">
      <priority value="INFO"/>
   </category>

自分はこんなもんでだいぶスッキリしました。
アクセスログは別に取っているんでついでにwwwのカテゴリーの出力を
黙らせたりもしましたが…

詳しくこのあたりを理解したい人はLOG4Jのドキュメントを読んでください。
LOG4Jの解説は既に優秀な先人がいくつもレポートしているのでココで取り上げる
予定はありません。

| | コメント (0) | トラックバック (0)

« 2007年9月 | トップページ | 2007年11月 »