7

私は現在、かなりの量のJavaScriptを含む小さなWebアプリケーションを構築しています。最初のアイデアのプロトタイプを作成していたとき、いくつかの関数をハックして、オブジェクト指向の性質でJavaScriptを書き直そうとして、アプリケーションが最終的にどのように動作するかを示しました。

実装段階に入った今、オブジェクト指向であるためにオブジェクト指向JavaScriptを作成するのはやり過ぎのように思えます。プロジェクトは、将来、必要となるような大きな変更を必要としない可能性があります。オブジェクト指向設計。代わりに、簡潔でまとまりのある関数のセットがうまく機能していることがわかりました。

それで、KISSの原則を順守しようとすると、一連の関数が問題の適切な解決策を提供しているときに、コードをオブジェクト指向設計に変換することを検討する価値のある他の理由はありますか?

4

8 に答える 8

12

いいえ、個人的にはOOPの方がおいしいと思いますが、それは目的を達成するための手段であり、それ自体が目的ではありません。手続き型プログラミングがOOPよりも理にかなっている場合が多くあります。変換のための変換は、あなたが言ったように、やり過ぎかもしれません。

于 2008-10-06T12:05:12.810 に答える
10

いいえ、それをそのままにして前進してください-それは私の見解ではより生産的です。

于 2008-10-06T12:02:15.047 に答える
5

コードが適切に構造化され、適切にレイアウトされ、コメントが付けられており、必要な作業を実行している場合は、機能を追加する以外の理由でコードをいじることはお勧めできません。

プログラムはOOPなどと言ってもいいかもしれませんが、動作させるために変更する必要がない場合は、間違いなくそのままにしておきます。

それが壊れていない場合は、それをいじらないでください:)

于 2008-10-06T12:13:46.707 に答える
2

このコードがすでに実装されていて、メンテナンスや、さらに良いことにアップグレードを必要としない場合は、それを使い続けてください。今すぐ実装する予定で、複雑になる可能性がある場合は、OOアプローチを検討してください。

経験によれば、複雑さは低いものの手続き型コードの記述と保守は非常に簡単ですが、特定のしきい値を超えると、手続き型プログラミングを使用しているときに複雑さを増すのが指数関数的に難しくなり始めます。一方、OOPは開始が難しいものの、複雑さをはるかに維持します。管理しやすい。

結論:タスクが十分に単純であるか、すでに実装されている場合は、単純に保ちます。より複雑になる可能性がある場合は、OOPを検討してください。

于 2008-10-06T13:07:46.740 に答える
1

決定を下す前に、コードを確認する価値はまだあると思います。コードを「書き直す」ことの明らかな欠点は、コードが以前と同じように機能することを確認するためのテストコストがかかることです。ユニットテストはありますか?そうでない場合、テストコストはさらに高くなります。したがって、一般的に、現在必要とされている新しい機能(つまり、一般的な関数のリファクタリングなど)をより簡単に記述できるようにするために、別の目的を果たさない限り、作業コードを書き直すことには反対です。

ただし、人が「一緒にハッキングした」と言うときはいつでも、コードをもう一度確認する価値があることをお勧めします。そもそもなぜ一緒にハッキングされたのですか?多くの人がオブジェクト指向コードはそれ自体が目的ではないと言うことを知っていますが、それはしばらくしてからも考える必要がない方法論です。あなたは自然にそれを始めます。

たぶんあなたのjsは比較的単純なので、OOスキャフォールディングは本当に余分なオーバーヘッドです。罰金。ただし、「ハッキング」と呼ばれるコードは常にコードレビューする(特に他の誰かにレビューしてもらう)必要があることをお勧めします。おそらくそれはフロイト的失言でした...しかしそれはスリップしました。

于 2008-10-06T13:39:29.967 に答える
0

念頭に置いておくと、オブジェクトはjavascriptで作成するのにかなり費用がかかります。

オブジェクトの構築を最小限に抑えます。

于 2008-10-06T13:30:41.403 に答える
0

今後はレガシーコードとして扱ってください。何かを変更したいときは、コードが頭に浮かぶようにリファクタリングします。少しのOOPが必要な場合は、それを使用してください。そうでない場合は、しないでください。

OOPはハンマーです。ネジの問題を釘として扱わないでください。

于 2008-10-06T12:18:42.593 に答える
0

それがうまくいき、メンテナンスが簡単であれば、私はそれを変換のために変換することを気にしません。もっと面白いことがあるに違いありません。

于 2008-10-06T12:22:21.073 に答える