タグ付けされた質問 「crud」

6
RESTとCRUDの違い
RESTを学びましたが、CRUDによく似ています(CRUDについて読んだことから)。 私はそれらが異なっていることを知っています、そして、それらが似ていると思うことは私がそれらを理解しないことを意味するのだろうか。 RESTはCRUDの「スーパーセット」ですか?CRUDでできることはすべてありますか?
168 rest  crud 

7
ビジネスロジックがビューに忍び寄らないようにすることは可能ですか?
私は過去3年間、個人および職場の両方でいくつかのWebアプリケーションプロジェクトを開発してきましたが、少なくとも一部のビジネスロジックがアプリケーションのビューレイヤーで終了する可能性があるかどうかはわかりません。 ほとんどの場合、「ユーザーがオプションxを選択した場合、アプリケーションはユーザーがyの情報を提供できるようにする必要があり、そうでない場合は情報zを提供する必要がある」などの問題があります。または、モデルにいくつかの変更を適用する必要がありますが、ユーザーが明示的に要求するまでコミットしないAJAX操作を実行します。これらは私が遭遇した最も単純な問題の一部であり、ビュー内の複雑なロジックを回避する方法がわかりません。 MVCについて説明した本のほとんどは、通常、サーバー上のデータを更新して表示するCRUD操作など、非常に簡単な例を示していますが、CRUDはほとんどのリッチアプリケーションには当てはまりません。 ビジネスロジックをまったく持たないビューを実現することは可能ですか?

8
CRUD以外のアプローチの例はありますか?
私はプログラマーですが、アーキビストとしても働いています。アーキビストとして、データを保持することが重要です。 データの操作に関しては、同僚と議論することがよくあります。CRUDのUとDはあまり好きではありません。レコードを更新するのではなく、新しいレコードを追加して、古いレコードへの参照を作成することをお勧めします。そのようにして、変更の履歴を作成します。また、レコードを削除するのも嫌いですが、非アクティブとしてマークします。 これに用語はありますか?基本的にデータの作成と読み取りのみですか?このアプローチの例はありますか?

3
SOLIDの原則を使用する場合、開発者の発見可能性は問題ですか?
他のすべての開発者が基本的なCRUDアプリを実行することに慣れているか、かわいらしい/機能的なインターフェイスを作成することに専念している基幹業務アプリを実行しており、次のことをたくさん得ています。 「私たちがそれを行うために使用する方法で、従業員はあなたが従業員に対しておそらくできるすべてのことをするでしょう。」そしてそれは本当でした。その1つの「クラス」には数千行のコードがあり、従業員に対して実行できることは何でもありました。または、さらに悪いことに、従業員データのテーブルがあり、各開発者がイベントハンドラーで実行したいことを実行する方法を見つけました。 そのアプローチのすべての悪い点は真実でしたが、少なくとも従業員を使用する開発者は、他のドキュメントに行かなくても、従業員をヘルスプランに登録し、昇給、解雇、雇用、異動などを行う方法を見つけることができました。マネージャーと他のすべての主要なアイデア。または、従業員が他の必要なデータテーブルを使用している場合は、必要なことを実行できます。 はい、多くの重複したコードがありました。はい、それは非常に壊れやすいコードでした。はい、テストは必要以上に困難でした。はい、機能の変更は恐怖を誘発するものであり、コピーペーストはそのアプローチにより当然のことでした。 しかし、少なくとも1つのクラスを作成することで何が利用可能であるかを発見したり、インターフェイス、抽象クラス、具象クラスなどの違いを理解しなくても、必要なことを実行したりできます。 intellisenseによって返されるメソッド、またはデータが存在するテーブルを知っているメソッド。 googled / bingedやyahoo!dも行っていますが、この問題の確認はありません。 だから問題はないかもしれないし、何か足りないだけなのかもしれない。実際の動作やデザインに対応していない開発者が、外部ドキュメントを参照したり、さまざまなコンポーネントのクラス名をスキャンしたりせずに、何かを行う方法を簡単に発見できるソリューションを理解しようと頭を悩ませました/それが動作するように聞こえるものを見つけるためのプロジェクト。 私が思いつくことができた唯一のものは、より良い名前がないために、これらを持っていることです、「Table of Content Class」は実際のクラスを返すだけで何もしません(そして実際にそれらのほとんどはインターフェースですがそれらは他の開発者が希望する実際のタスクを実行するために使用できる違いまたは注意さえも知っています。まだ本当に大きなクラスになってしまいますが、それらにはほとんど振る舞いがありません。 SOLIDの実際の実装が行われる中間層の詳細な知識を必要としないより良い方法はありますか? 基本的に私が求めているのは、CRUDタイプの開発者が非常に複雑なシステムのCRUD開発者であり続けることを可能にする方法があるかどうかです。
10 solid  crud 

3
CRUD API:更新するフィールドをどのように指定しますか?
ある種のデータベースに永続化されているある種のデータ構造があるとします。簡単にするために、このデータ構造を呼びましょうPerson。これで、他のアプリケーションがを作成、読み取り、更新、および削除できるようにするCRUD APIを設計する必要がありますPerson。簡単にするために、このAPIが何らかのWebサービスを介してアクセスされると仮定します。 CRUDのC、R、Dパーツのデザインはシンプルです。私はC#のような関数表記を使用します-実装はSOAP、REST / JSON、またはその他の可能性があります。 class Person { string Name; DateTime? DateOfBirth; ... } Identifier CreatePerson(Person); Person GetPerson(Identifier); void DeletePerson(Identifier); アップデートはどうですか?自然なことは void UpdatePerson(Identifier, Person); しかし、どのフィールドを更新するかをどのように指定しますPersonか? 私が思いつくことができる解決策: 常に完全な Personを渡すように要求することができます。つまり、クライアントは次のようにして生年月日を更新します。 p = GetPerson(id); p.DateOfBirth = ...; UpdatePerson(id, p); ただし、そのためには、GetとUpdateの間にトランザクションの整合性またはロックが必要になります。そうしないと、他のクライアントによって並行して行われた他の変更を上書きする可能性があります。これにより、APIがさらに複雑になります。さらに、次の疑似コード(JSONをサポートするクライアント言語を想定)であるため、エラーが発生しやすくなります。 UpdatePerson(id, { "DateOfBirth": "2015-01-01" }); -これは正しいように見えます-DateOfBirthを変更するだけでなく、他のすべてのフィールドをnullにリセットします。 であるすべてのフィールドを無視できますnull。しかし、それを変更しないこと DateOfBirthと、意図的にnullに変更することの違いをどのように作成しますか? 署名をに変更しますvoid UpdatePerson(Identifier, Person, ListOfFieldNamesToUpdate)。 署名をに変更しますvoid …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.