私は最近Webサービスプロジェクトに取り組んでいて、アーキテクチャの選択が非常に非効率的であることに気づきました。
私はこれを非常に手続き的な方法で、Pythonを使用したOOPと標準の例外処理のヒントを使って作成しました。基本的には、データを手続き的にステップスルーし、期待されるデータの存在を検証し、正規表現に対してデータを検証し、データベースに対していくつかのデータを検証し、特定のロジックを実行し、エラーをチェックして、最後に応答を返します。すべてのデータがJSONを使用して交換されたことに言及すると役立つ場合があります。
コードをさかのぼって、重複する例外を見つけ、それらの処理をロジックチェーンの最上位にプッシュしようとしました。これは私が望んでいたほど簡単ではなく、実際にはもっと時間がかかりました。また、ユニットテストが困難になり、読みにくくなるため、コードがバグになりやすくなりました。
ユーザーデータを処理するための手続き型コードのこのパラダイムは、Web開発では非常に簡単に理解できることに気づきました。たとえば、PHPでフォームを処理しているときに、データに対して一連のisset()メソッドと!empty()メソッドを連続して実行できます。このコーディングスタイルに関する私の問題は、エラーイベントのコーディングに膨大な時間を費やしているように感じ、この特定の目的のためにコードを一般化して再利用することが難しいことです。
さまざまなフレームワークが、フォームクラス(Djangoなど)を使用してこれを回避する優れた方法を提供します。ただし、検証ロジックの重複を減らすことで時間を節約しながら、予想される入力ごとにフォームを「作成」する必要があることに気付きました。Software as a Serviceを扱う場合、コーディングする必要のあるAPIメソッドが数百に及ぶ可能性があります。OOPはここで利点を提供しますが、クライアントが得られた効率を取り除く奇妙な要件を設定する場合があります。
Webアプリケーションは、MVCなどのパラダイム/アーキテクチャに従うことで大きなメリットを得ることができます。私の個人的な経験では、MVC(およびその原則を使用するフレームワーク)は、このタイプの問題にうまく適合していません。関数型言語の使用を検討しましたが、まだ試していません。
カスタムSASSまたはWebサービスプロジェクトの開発に適した特定の言語、アーキテクチャ/パラダイム、規則、またはサンプルフレームワークはありますか?