1)ビジネスアプリ茶番:
「エンタープライズ」フレームワーク全体が煙と鏡であると思います。J2EE、.NET、Apacheフレームワークの大部分、およびそのようなものを管理するためのほとんどの抽象化は、それらが解決するよりもはるかに複雑になります。
通常のJavaまたは.NET ORMのいずれか、あるいはどちらかで「マジック」を実行して退屈でシンプルなタスクを解決するための、いずれかの最新のMVCフレームワークを使用します。検証と迅速な記述が難しい、醜いXMLボイラープレートを大量に作成することになります。大規模なAPIがあり、その半分は他のAPIの作業、リサイクルが不可能なインターフェース、JavaとC#の柔軟性の欠如を克服するためだけに必要な抽象クラスを統合するためのものです。それはほとんど必要ありません。
独自の厳格な記述子構文を備えたさまざまなアプリケーションサーバー、非常に複雑なデータベースおよびグループウェア製品についてはどうでしょうか。
これのポイントはその複雑さ==悪いことではなく、それは不必要な複雑さ==悪いことです。私は大規模なエンタープライズインストールで作業しましたが、その一部は必要でしたが、ほとんどの場合でさえ、ほとんどのユースケースを解決するために必要なのは、いくつかの自家製スクリプトとシンプルなWebフロントエンドだけです。
私は、これらのエンタープライズアプリをすべて、シンプルなWebフレームワーク、オープンソースDB、および簡単なプログラミング構造に置き換えようと思います。
2)必要なn年の経験:
アプリケーション、API、フレームワークに関連する特定の問題を処理するためにコンサルタントまたは技術者が必要でない限り、そのアプリケーションで5年の経験を持つ人は実際には必要ありません。必要なのは、ドキュメントを読むことができ、自分がやっていることに関するドメインの知識があり、すばやく学習できる開発者/管理者です。なんらかの言語で開発する必要がある場合、まともな開発者が2か月足らずでそれを習得します。X Webサーバーの管理者が必要な場合は、2日以内にmanページとニュースグループを読んで、すぐに理解できるはずです。何も少なく、その人は彼が支払われるものの価値はありません。
3)一般的な「コンピュータサイエンス」学位カリキュラム:
コンピュータサイエンスとソフトウェアエンジニアリングの学位の大半は強引です。最初のプログラミング言語がJavaまたはC#の場合は、何か問題があります。代数学と数学でいっぱいのいくつかのコースを取得しない場合、それは間違っています。関数型プログラミングについて詳しく説明しないと、不完全です。ささいなforループにループ不変式を適用できない場合、想定されるコンピューターサイエンティストとしての価値はありません。xとyの言語とオブジェクト指向の経験があれば、s ***でいっぱいです。実際のコンピューターサイエンティストは、使用する概念と構文の観点から言語を理解し、プログラミング方法論を多くの人の1つと見なしており、新しい言語、設計方法、または仕様言語の選択の両方の根本的な哲学を十分に理解しています。ささいなこと。