クライアントから、次のWebベースアプリケーションの実装言語としてPHP)を選択する際の労力を見積もるように求められました。私たちは、PHP、プロトタイピング、テストなどの調査に約1週間を費やしました。この言語-過去にハッキングされた可能性がありますが、PHPの初心者ですが、アプリケーション開発の専門家に行きましょう(より良い、あまりお世辞のないWordがないため:)
メンテナンス可能なコードを記述し、懸念の分離に従って、エンタープライズアーキテクチャのパターン(DAOなど)に従うと、オブジェクト指向のPHPベースのWebアプリケーションを作成する際の '努力'のようです。 Javaベースのものでも同じです。
これが私たちの式努力(開発/納期)を見積もるためのものです:
ConstructionEffort = f(analysis, design, coding, testing, review, deployment)
具体的には、エンタープライズアプリケーションを作成する際の作業量の見積もりを次のように比較しました。
これはエンドツーエンドのアプリケーションです。
1層目と3層目の工数の見積もりは一定であり、中間層のテクノロジーとは比較的無関係です。要求された機能のユーザーストーリーへの最初の内訳と、PHPのように見えない)に必要となるクラス/ SLOCの膨大な数に関する高レベルの盗品を含む高レベルJavaで同じものに必要なものとは大きく異なります。これは正しいですか?
PHP-現在、言語の流暢さを要因として無視しています。これは初期のハードルであり、長期的な障害IMHO(PHPに精通するのに十分な時間もあります)。
どちらか一方の言語を選択することを正当化するために、どちらかの言語で同様のアプリケーションを作成するときの努力に関するプログラマーの視点を知ることに興味があります。ここで何かが足りませんか?私たちはPHPであることquiickerであるという一般的な信念に反して市場に出ようとしているようです(またはJava曇っています)。私たちが遊んだことから節約できるコーディング/プログラミングの労力はないようです。
私はPHPとJavaの両方で豊富な経験があり、PHPを十分に知っていれば、あなたはは完全な初心者ではなく、PHPはクラス、インターフェイス(そしてすぐに水平方向の再利用の特性も)、例外、自動クラス読み込みなどを実行できることを知っています。あなたのPHPコードはJavaコードよりも見栄えが良く、さらにうまく機能する可能性があります。
私を信じてはいけませんか?、 Symfonyフレームワーク をチェックして(IMHO)PHPソフトウェアコード例については、そのマニュアルを参照してください。
初心者、スクリプトキディ、平凡なプログラマー...たくさんあり、それらはすべてPHP簡単すぎるため)に目を向けているようです。PHPは簡単すぎます確かに、それは悪いことではありません(優れた言語ドキュメンテーションのせいです)。
すべての言語には欠点があり、実際のところ、最も欠陥のある言語の1つはjavascriptであり、現在の場所を確認します(ヒント:どこでも)。
したがって、労力はほぼ同じである可能性がありますが、以前の特典はJavaとの違いであり、さらに多くの特典があると確信しています。
PHPおよびJava労力または生産性を明示的に示した-ほとんどの作業はさまざまな言語を調べます 世代 =。Javaは 第3世代の言語 であり、PHPも第3世代であると確信しています。 -世代の言語。これは、他のすべての条件が同じであれば、両方の言語で同じ製品を作成するために必要な固有の努力は、プロジェクトに大きな影響を与えないほど十分に近いことを意味します。
ただし、プログラミング言語の知識は、1.20の生産性の違いを示すことが示されています。これは小さな要因の1つです。チームの能力、プロジェクトの複雑さ、使用するツールでさえ、プログラミング言語よりもプロジェクトのパフォーマンスにはるかに大きな影響を及ぼします。
つまり、プログラミング言語の選択は生産性に違いがあります。ただし、これは小さな違いの1つです。私はプロジェクトの他の側面にもっと関心があります。
さらに興味がある場合は、 [〜#〜] cocomo [〜#〜] や [〜#〜] slim [〜#〜]などのツールを検討します。 およびそれらに行った基礎となる研究。これらの見積もりモデリングツールを使用すると、プロジェクトのさまざまな側面における知識と機能を考慮に入れ、それらがスケジュール、予算、および作業/生産性レベルにどのように影響するかを判断できます。
[〜#〜] php [〜#〜]でアプリケーションを開発するのにかかる時間は短くなりますが、おそらくアーキテクチャ的に十分な一貫性がないため、バグが多くなります。それにもかかわらず、PHPアプリケーションの変更のコストは、Javaアプリケーションに比べて低くなります。
一方、Javaアプリケーションは、設計と開発に時間がかかりますが、より堅牢で一貫性があります。おそらくバグは少なくなりますが、変更を実装するのはより困難になります。
時間と労力の見積もりに関して言語は同じように見えるかもしれませんが、それは真実ではありません。 PHPまたはJavaのどちらを使用するのがよいかは、特定のアプリケーションドメインによって異なります。言語は関係ありません。テクノロジーは関係ありません。PHPテクノロジーとJavaテクノロジーがあります。それがあなたです。言語技術の詳細により、PHP技術とJava技術の両方を特定のドメインに適用できないため、実際に考慮する必要があります。たとえば、自然言語処理にPHP技術を適用しようとはしません。 Javaで単純な管理パネルを開発するためのオーバーヘッドになります。
アプリケーションドメインが本当に重要です。
一般に、あなたはあなたがよく知っている言語/フレームワークでより生産的になります。これは、言語/フレームワーク間の本質的な違いよりも生産性の大きな要因になる可能性があります。
あなたが検討している特定の言語に関して:
Javaplatform(これは言語とは別に考えることができます)は非常に強力で、おそらく世界最高のGC、卓越したJITコンパイル、およびライブラリとツールの巨大なエコシステム。長期的には、これは深刻なアプリケーションにとってより魅力的な戦略的選択になるでしょう。
すでにJavaプラットフォームのスキルを持っているが、PHPを本当に知らないように聞こえるので、私は間違いなくJava over PHP中間層の実装用。高い生産性に関心がある場合は、次のことも検討してください。