私は最近、CTO /共同創設者としてスタートアップに参加しました。スタートアップと私は、既存のコードベース(PHP5.5、laravelフレームワーク)をnode.jsに移動することを考えていました。
この主な理由は、現在の段階で、才能はあるが経験の浅い開発者を雇い、プロジェクトのさまざまな部分で作業するようにトレーニングする必要があるためです。 JSはすでに非常に大きなangularアプリで使用されており、モバイルアプリでも使用される予定です(電話ギャップルートを使用する予定です)。APIはPHPにのみ存在します。
私は個人的にnode.jsの既存のAPIを楽観的に3〜6週間で再実装できます(私自身がlaravel apiバックエンド)を構築したので、その時間に自信があり、かなり良いアイデアがありますまた、この段階でスタートアップが余裕を持っている時期でもあります。
技術スタック全体で1つの言語を使用することで、JSでのみトレーニングを行い、技術スタック全体でスキルを使用できるため、入社する新しい開発者を最大限に活用する能力を高めることができると思います。それらをスタックの新しい領域に公開します。
私の質問は、経験の浅い開発者を単一のテクノロジースタックでトレーニングすることの利点は何ですか?この利点のリストに基づいて、私の仮定は正しいですか?経験の浅い開発者が単一のテクノロジースタックに集中できる場合、手頃な3〜6週間のターンアラウンドはより現実的になりますか?
あなたのアイデアには、おそらく非常に楽観的すぎる仮定がいくつかあります。そのうちの2つに焦点を当てます。
Cocomo IIモデル を処理し、すべてのドライバーをあなたに有利になるように変更し、数字を突いて、約1000のSLCギブまたはテイクがあると言います(これはあなたに基づく見積もりです)使用されているすべてのテクノロジーの専門家であり、「構築」以外のフェーズをスキップして自分自身をプッシュしている)。 SLCが1000を超える場合は、その3週間の数を再検討することをお勧めします。
1000変更、100%コード変更、0%設計変更、0%統合が必要...
テクノロジー、フレームワーク、さらには言語モデルを切り替えています。これは小さな変更ではありません。あなたはいくつかの要因または桁違いにさえ離れている可能性があります。 「3週間」で先に進む前に、Steve McConnellによる ソフトウェア見積もり:ブラックアートの謎を解く のコピーを入手し、見積もりに自信があることを確認することをお勧めします。
ええ、それはスタック全体の1つの言語かもしれません。ただし、モバイルデバイス、Webページ、バックエンドのプログラミングは、コードを記述する方法がまったく異なります。モバイル開発者が考えること(接続性、さまざまなデバイス、さまざまなブラウザー)がありますが、それらは与えられているため、バックエンドは関係ありません。
スタック全体で1つの言語を記述している場合でも、Java ME vs Java SE vs Java EE。それらはすべてJavaを使用し、すべて同じ基本ライブラリを持っていますが、Java MEの人は、SpringやHibernate、およびJava EEタイプはSwingまたはJava FXについて心配しません。
スタック全体で1つのテクノロジーの理想は存在しますが、JavaScript UIタイプを取得して、その新しいテクノロジースタックの立ち上げ時間なしでNode.jsの位置にスワップできると偽ってはいけません。
はい、スタック全体の1つの言語が理想的です。そして、あなたが働きたいと思うかもしれない何か。しかし、それを実現するためにラッシュの仕事と思われることを行うことは、優れたプラットフォームにはならず、長期的な利益にもなりません。また、他の言語の方が適している場合は、アプリケーションのセット全体で1つの言語を使用する必要があります(ただし、純粋なJavaScriptショップであるため、変更することはできません)。