質問

ったこのコメントは、"何JS libを使用していま"世論調査

"@Xantiあり、モジュール化と抽象化プログラミングがひどいです。機能電話機?無駄が多いのです。"

ることで、私は好奇心が使用していKohana枠組みにPHP、Jqueryライブラリのためのjavascriptです。

なぜある人が考えて抽象化およびモジュール化不良の慣行?な枠組みと図書館への容易さ、開発?

この リンク のpoll

役に立ちましたか?

解決

いつも抽象化できる有害性生産性:

  • 未選択抽象化できるしない抽象化です。

  • が必要な場合は読みつまたは五つの異なるモジュールのかを理解するため、単純なアルゴリズムの作品は、抽象化の壁はどのように変動するという、存在するかチェックします。ん、ありがとうございまのよりもすることができrefactorのコードもしやすくなるだけ除去する。

  • の場合は抽象化に対応していませんので比較的身近なアイデアは難しいかもしれない新しいチームを学ぶことができます。

抽象化ではない"mindless良い";存在すると特定の目的の利用を目的

  • 保護する不変量 データ構造

  • 封止デザインの決定が変更

私の最大の経験の抽象化やろうとしたら開始した研究用のコンパイラ C--.たが、より抽象度より学生たちは見らにコンパイラクラス:

  • 対象機の概要
  • の組み立て語った抽象
  • の呼び出し規約した概要
  • のスタックフレームのレイアウトを使って珍しい"ブロック"抽象化

それぞれに抽象化したとして重要な目的のための研究では、その合計影響していることにありました 非常に 難しい新生徒の学習のコンパイラです。である場合でも、独自のコメントした"今日呼り 場所を抽象化の問題を引き起こす可能性があり.

他のヒント

作業する場合に限りある資源を容易に追加オーバーヘッド。

だいことがあるんコンパイラの最適化とともに、これまで、だけをすっき物に、快適性は十分満足できますcファイルをコンパイルしを快適性は十分満足できますそのファイルとしてリンクしてダム-リンカー、クロス-モジュールの機能を容易につなぐことができるinlinedが全国ダンプ、できる最適な離れの全てが実行されます。

そしてとまればプログラムを作8ビットはPICマイクロコントローラとの4Kと、RAMおよび16K Flashを用いるオブジェクト指向言語を用い、高度なデザインパターンを作り抽象化レイヤは、プログラムません。"早期の最適化の根幹であるすべての悪"と言われた、男のないプログラムのためのプラットフォームは128バイトまでのアプリです。

私たちは、おそらくコメンターが深刻されていなかったと仮定することができます。

私は、誰もがモジュール化と抽象化を主張想像できない悪い習慣であり、実際にそれを意味します。

抽象化と一般的にモジュール化は良いと必要不可欠です。エトセトラもうサポートしたり、高価なまたは単に使用可能な、または大きな、または古いではないされていないフレームワーク、または第2希望、:そこに悪い抽象うち、例えばあるかもしれません。一般的に、ライブラリー「市場」は巨大です。どの種類のライブラリの使用して自分自身を見つけることは環境や個人の好みに依存します。

  

なぜ一部の人々は、抽象化とモジュール化の悪い習慣を考慮していますか?フレームワークではなく、   ライブラリはスピード開発まで容易とするために作ったのですか?

変更と学習は時々難しいです - 人々はそれを戦うようにします。 http://thedailywtf.com/ に:あなたは、この種を勉強したい場合は、あなたは、あなたの研究を開始することができます - 彼らはあなたを提供し、より良いあなたのプログラマの生活をするように)私はそれらと使用ライブラリやフレームワークを無視します。

開発者は、彼らが言った抽象化やモジュール化と対話することができ、または必要であり、その目的や設計を理解することができないとき、抽象化やモジュール化は悪い習慣であると主張されます。

すべての関数(およびヘルパー関数)は、独自のモジュールである場合には?

これは、いくつかの時間前に静かだったが、Fortranコンパイラのマニュアルは、同じ長さの文字列とランダムに選択された文字として識別子を選ぶお勧めします。

説明?よくそれはコンパイラ内部ハッシュテーブル内の名前の均等な分配を可能にし、このためのより高速なコンパイルのために用意されています。

私はあなたが引用されているテキストは、この勧告にすぐ隣に属していると思います。

良い抽象化が多く使われている

良持参照している2箇所以上がおソフトウェアです。

例:

  • 機能2+電話ます。
  • 抽象クラス2+コンクリート。
  • 界面2+の実装方法です。
  • ジェネリック医薬品と2+instantiations
  • 図2+ます。
  • など。

抽象化するので参照で2箇所以上が負担を軽減し、コードサイズを織り込み、共通のものであり、今かもしれない。

また多くの抽象化でのみ参照される単一の時に、そ は、抽象化は必要ありません。

例えば不要な場合は持ち:

  • 文書オブジェクトに嬉しいコード(インタフェースや抽象クラスもとは1つのみで実施又はconcretion).これらのインタフェースや抽象クラスは必要な時点での開発)。YAGNI原則とします。
  • 誰かを"ピカピカ新しい"インターフェイスのつの新機能その後の変換のみお電話でのインタフェース。想像できるかに大きな混乱のた場合、これを繰り返します。この場合の機能にはシングルコサイト、その必要ありません。必要なものを動かすコードからの機能に新たな書き新しいものを変更します。

例えば本当に良い抽象化:

  • ハードウェア抽象化レイヤ:簡単にインターフェース応用なの開発コードの種類ごとにハードウェア
  • ファイルシステム:なストレスを使用脂肪、NTFS,EXT3などを実行します。で利用できるファイルやディレクトリ、ファイルシステムドライバがついてご覧いただけます。
  • C言語:必要なポートプログラムのための各CPUです。でコンパイルします。

のでお答え実際にそうした目的を達成: 持ち悪い場合は参照されるから以下の2箇所.

についてのモジュール化、その主観的:きすっきり整とコードいます。れている場合のソースコードは、単一のソースファイルでなくなるのではないかとの着すれば爆発で数百人のファイルです。

き格付けをお持ちとしての良し悪しを十分配慮するとともに、その大きな写真:プロジェクト全体全体の製品ライン等の

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top