ベストアンサー
手続き型抽象化とは、メソッドまたはプロシージャが何を実行するか、または何を実行したいかはわかっているが、その方法がわからない場合です。
現在、Quoraでこの回答を入力していますが、[送信]をクリックすると、フィードに表示されると思います。私の答えを受け入れ、どこかに保存する方法があることを私は知っています。しかし、それがどのように実装されているかは本当にわかりません。
これをJavaに適用する場合、さまざまなJavaパッケージの多くのメソッドを使用します。たとえば、文字列の部分文字列を出力する場合
String str=”Hello world”
String s1=str.substring(0,6);
上記のコードで、部分文字列メソッドが文字列の最初から6番目の文字までの部分を返すようにします。しかし、サブストリングメソッドはこの機能をどのように実装するのでしょうか。私にはまったくわかりません。また、私にとっても重要ではありません。
回答
抽象化は、さまざまなことをカバーする一般的な概念です。 。
HTMLは基本言語であり、Web開発を行う必要がある場合は、機能的な機能がほとんどない汎用ページを作成する予定がない限り、HTMLを学習する必要があります。
ある時点でやがて、HTMLを見て、抽象化が何を間違えたかを理解する必要があります。
抽象化(一般):
- それらは物事を遅くし、抽象化レイヤーは処理速度にコストがかかります。
- これは多くの人にとって大したことではないかもしれませんが、すぐに加算され始める可能性があります。
- 私はかつてRubyで書かれたアプリケーションを書き直しました。抽象化すると、リストの読み込みに数時間かかりました(文字通り)。Javaで書き直して約3分に変換し、データベースにいくつかのキーを追加して、数秒に短縮しました。
- PHP読み込みに2分かかったページ、 PHPで書き直した後、3〜4秒かかりましたが、データベースをいじると2秒に短縮されました。 (ロード時間の90%はその後のフレームワークであり、フレームワークが貧弱であることを意味します。)
- 共通の要因として、抽象化のレベルを大幅に下げます。 Pythonはスクリプト言語であり、PHPと同様に、毎回抽象化レイヤーを再構築する必要があるため、コストがかかる可能性があります。
- デバッグやフォローが難しくなる可能性があります。抽象化は一般にユニット(クラスまたはメソッド)を追跡しやすくしますが、そのようなバグは移動して見つけにくくなる傾向があるため、それらが全体(統合)にどのように結びついているかを確認するのは困難です。
- Onさらに、バグが発生する可能性は低くなります。見つかったときはより壮観になる傾向があります。
- 開発が(ある程度まで)速くなる傾向がありますが、多すぎると開発が遅くなる可能性があります。Zendフレームワーク(PHP)、Spring(Java)などの重いフレームワークこれは、基本的に過剰に設計されたヘビーハンドフレームワークの優れた例です。
これでアイデアが得られることを願っています。