2009-09-29 1 views
8

ほとんどの人は、データサービスとデータベースがシステムの中で最も重要な部分だと言っているのはなぜですか?ほとんどの人は、データサービスとデータベースがシステムの最も重要な部分だと言うのはなぜですか?

私が見たことから、これはフロントエンドの開発です:GUI、WEBUI、XAMLが最も重要です。中間層とデータベース層よりも確かに重要です。

私はアプリケーションのデータベースを構築するのは大したことではないと思います。結局のところ、データスキーマはビジネス分析に由来し、データベース開発者にとっては「創造的」な仕事はほとんどありません。ビジネスロジック側(中間層)も同様です。さらに、J2EEと.NETのエンタープライズフレームワークは、ビジネスロジックを簡単に開発するのに役立ちます。

だから、データベース開発者は何をしているのですかとても重要ですか?なぜスタンドアロンのデータベース開発者が必要なのでしょうか?なぜ、フロントエンドの開発者ではなく、中/バックエンドの開発者に対しても、ほとんどの企業は依然として高い給与を支払っていますか?

UIを構築する開発者(JavaまたはC#)は、データベースの知識が必要です。これにより、アプリケーション全体を構築できます。私の見解では、データベースの知識のない人には、とにかくアプリケーションを開発させることは不可能です。

私がここで紛失していることを教えてください。

ありがとうございます。

+1

私はデータベースがすべて終わった、あるいはすべてであると言っているわけではありませんが、質問する前に現実世界で働いてください。 –

+0

downvoteを理解していない。質問が多少近視眼的であるだけであっても、それは無効な質問ではありません。 +1。 –

+0

何が問題なのですか?データベースが最も重要だと言っているのは誰ですか?どのようなシステムですか?この質問はなぜ重要なのですか? –

答えて

11

フロントエンドは通常、変更が容易である一方で、バックエンドはより多くの要件と設計段階を必要とします。バックエンドに変更がある場合は、フロントエンドが変更する必要がある可能性が高いため、バックエンドサービス(dbなど)を扱う変更要求は、フロントエンドおよびエンドエンドによって多くの変更をもたらすことがあります。フロントエンドの変更は通常、バックエンドに影響しません。

DBAの問題は、実際にプロジェクトのサイズによって異なります。シンプルなテーブルと数千のレコードを持つプロジェクトについて話しているなら、おそらく正しいでしょう。実際のDBAは、おそらく、そのプロジェクトの下でそのプロジェクトに取り組むことを検討するでしょう。実際のDBAは、DBMSの最適化を専門とするシステム管理者によく似ています。ほとんどのプログラマは、テーブル、関係、ビュー、ストアドプロシージャなどを構築することができます。特に、使いやすいORMを使用すると、DBAが以前にやったことの多くが本当に必要ありません。しかし、DBMSの最適化、システム構成、フェイルオーバー構成などの大規模なプロジェクトや大規模なデータベースシステムでは、DBAが重要です。混乱したり、実際のDBA(SQLを少し知っている人やデータ入力をして自分自身をDBAと呼ぶ人と混同しないでください)の重要性を認識しません。あなたは、データベースが重要な、しかし、そのアプリは時間をかけて成長し、進化させ、あなたが急速に貧しいデザインによる落とし穴に実行することは思えない一緒に投げる小さなアプリを

10

私は、フロントエンド側を信じて:GUI、 WebUIのは、XAMLは 、中間層とデータベース層よりも重要です。

これは、自動車の色がエンジンとタイヤよりも重要であると言っているようなものです。

データベースを構築するのは大したことではありません。しかし、それを正しく構築し、既存のものを最適化し、うまく設計されたデータストアを維持することは大きな問題です。 IMO、それはなぜデータベース/データストアの人たちが大金を稼ぐかということです。

+1

しかし、車のオタク(そしておそらく一般オタク、自分自身が含まれ、私は車について何も知りません)を除いて、世界の良い塊は車の色を見て、その軽く/契約を破る –

+1

私の経験上、これらの事柄は、他のすべての主要な要素が考慮されている場合にのみ取引を行うか、または中断します。もし両方がエンジンがなかったら、あなたは新しい赤い車を買うことはありませんか? –

+1

ユーゴスは醜い*と*信頼できないので売れなかった。タイヤが20mph以上で爆発すると、かなり多くの人が美しい車を買いますか? 「私はロータスエリザスが大好きだが、高校のトラックチームは私をエベレストに打ち負かしている。 – DaveE

2

他の多くの理由の中でも、中堅な中間層を使用すると、要件に応じてGUIを別のGUIに切り替えることができます(pre web2.0からweb2.0デザインへ)。おそらく交換可能なフロントエンドと比較して、バックエンドの層があります。

5

すべてが重要です。

2

データベースの知識のない人にアプリケーションを開発させることは不可能です。

Webサービスでラップされたストアドプロシージャを使用してデータベーステーブルを非表示にすることはできません。

フロントエンドは、実際のアプリケーション上の単なるスキンです。

ミドルビジネス層は、ビジネスマンが自分の思考にもかかわらず、自分の要件をほとんど知らないため、IMHOをプログラミングするのが最も難しいです。彼らは定期的に心を変えます。エッジケースは素晴らしいデザインを壊し、実装するのが非常に難しい場合があります。

GUIの開発者が、記述の難しいビジネス層にフロントエンドを書いていても、それはどれほどいいですか。そして、あなたはうまく設計されていないデータベースに良いビジネス層を書くことはできません。それは、これらのいずれかの変化が、プログラムの後続のすべてのレベルに影響を与えるように、データベース層または中間層を変更するよりも、端部において

、それはGUIを書き換えるはるかに簡単です。

+0

Webサービスでラップされたストアドプロシージャを使用してデータベーステーブルを非表示にしない場合 Yuck!私はすべて適切なSOAのためですが、Webサービス+ストアドプロシージャですべてを行うことは、非常に手続き的な設計になります。 – fregas

+0

どうやって考えますか? – CaffGeek

4

データベース層と中間層は、あなたのアプリの長寿や保守性への鍵です。ビジネスの

1

ロジックは、常にJ2EEまたはDOTNETのエンタープライズフレームワークの助けを借りて、簡単なもの。

確かに、ビジネスロジックのコーディングは、例外、エラー処理、実際にビジネスから適切な要件を得ることなどを心配する必要がなければ、簡単です。単一のアプリケーションが複数のフロントエンド(Web、デスクトップ、モバイル)をサポートし、「シンプルな」ビジネスロジックが急に重要なポイントになっていることを突き止めました。

7

プログラマがユーザーインターフェイス(XHTML、XAML、サーブレット、MVC、asp.netなど)を扱っているように私がやった最も挑戦的な仕事の一部。つまり、あなたは2つの異なる問題にぶつかっていると思います。 Mathew氏が述べたように、データベース側では、真のDBAは、正規の開発者がどうやって方法を知ることができないように、大規模(数百万レコード)のデータベースを最適化できるようになります。中間層では、UIがしばしば複雑な理由は、開発者が真の中間/ビジネスロジック層を実際に構築していないことが多いからです。したがって、アプリケーションのすべてのロジックをユーザーインターフェイスに組み込むことになりますが、これは間違っています。ドメイン駆動型設計とオブジェクト指向設計パターンを知っている、堅牢でオブジェクト指向のビジネス層を構築する方法を知っている優れた開発者を見つけることは、まれです。あなたのデータベースオブジェクトと一致するゲッター/セッターだけでクラスを構築するのは、オブジェクト指向設計ではありません。したがって、彼らはもっと価値があります。

これ以外にも、私はまだUI作業は非常に難しいプログラミングであり、現在よりも重要であると考えられることに同意します。

+0

+1 - いいコメントです。私は2度upvoteできますか? –

+0

開発者のために+1!デザイナー –

+0

しかし、私はサンブループリントでも良い中間層のデザインを見ていません – ariso

2

ご質問にはお答えできません。

データベースがすべてのシステムで最も重要だと誰もが考えていることを前提にしています。すべてのシステムがデータベースを使用せず、多くの経験者が異なるシステムの最も重要な部分がシステムによって異なることに同意する。

実際、システムの定義によって、すべての部分が重要です。いくつかのサブシステムは他よりも高価で、他のものはフォールトトレラントである可能性があります。モジュール式で交換可能なものもあれば他のものもありますが、すべてシステムのPARTであり、したがって重要です。一つがより重要であるという考えは、定量化するのが難しいです。いくつかの部分はオプションで(「機能しない」装飾のように)、システムの一部とはみなされないかもしれません。しかし、システムの大規模な視野では、ユーザーは参加し、効率的で楽しいシステムとのやりとりが成功を保証するために不可欠です。

すでにここに掲載されているアナロジーを使用するには、車のペイントはエンジンほど重要ではないかもしれませんが、塗装されていない車を売るでしょうか? - そうは思わない(それが製品の定義でなければ、未完成の家具のように)。

エンジンがペイントジョブよりも高価であるのと同じように、ペイントの色を選択するよりもエンジンを設計する方が多くなります。

すべてのシステムには、さまざまな専門性と複雑さがあります。

0

C++の知識があるにもかかわらず、誰もVC++でよくコーディングできるわけではありません。

現在の技術界では、すべての開発者が最新技術のほとんどについて基本的な知識を持っています。それは彼らがすべての技術を備えたシステムを設計する準備ができているという意味ではありません。

すべては、経験と専門性を備えています。彼らはDBAをやっていて、UIデザインをしていないとうまくいきました。

UI開発者がDBを設計できないというわけではありません。あなたはデータベースを設計するのに十分な経験があれば、良いDBデザイナーになることもできます。

+0

C++はどこでこの会話に参加しましたか?ビジネスアプリケーションでC++を使っているように思えるのはかなり古風なことです。 – fregas

関連する問題