コード匂い129 -構造最適化
7654 ワード
我々は、実際のシナリオを推測して時間と空間の複雑さを改善するのが大好きです
読みやすさ と違反 早期最適化 カバーをテストしてシナリオ. 読み取り可能な(そして可能な非演奏者)コードを書く. 実際のユーザーデータと実際のベンチマークを行う.( no ,あなたのコードを10 , 000回繰り返すことは本当のユースケースではないかもしれません). あなたが決定的なデータを持っているならば、あなたはベンチマークの見つけられたボトルネックをPareto principle . 80 %悪いパフォーマンスを引き起こして最悪の20 %の問題を添付します. 文脈
早期最適化 結論
Premature optimization is the root of all evil is the root of evil クレジット
TL;DR: Don't optimize anything until you have a real use scenario benchmark.
問題
解決策
文脈
大学とオンラインコースでは、良いデザインルールの前にアルゴリズム、データ構造、および計算複雑さを学ぶ.
我々は、可能な(可能な)パフォーマンス問題を過大評価して、コード可読性とソフトウェア寿命を過小評価する傾向があります.
早熟な最適化には、実際の問題を解決する証拠がない.
事実が我々に本当の問題があると言うとき、我々は我々のコードを外科的に改善する必要があります.
サンプルコード
間違い
for (k = 0; k < 3 * 3; ++k) {
i = Math.floor(k / 3);
j = k % 3;
console.log(i + ' ' + j);
}
//This cryptic piece of code iterates a
//two dimensional array
//We don't have proofs this will be useful
//In real contexts
右
for (innerIterator = 0; innerIterator < 3; innerIterator++) {
for (outerIterator = 0; outerIterator < 3; outerIterator++) {
console.log(innerIterator + ' ' + outerIterator);
}
}
// This is a readable double for-loop
// 3 is a small number
// No performance issues (by now)
// We will wait for real evidence
検出
[ X ]マニュアル
これは意味のある匂いです.
我々は、コードが読むのが難しいとわかるかもしれません.
タグ
間違い
for (k = 0; k < 3 * 3; ++k) {
i = Math.floor(k / 3);
j = k % 3;
console.log(i + ' ' + j);
}
//This cryptic piece of code iterates a
//two dimensional array
//We don't have proofs this will be useful
//In real contexts
右
for (innerIterator = 0; innerIterator < 3; innerIterator++) {
for (outerIterator = 0; outerIterator < 3; outerIterator++) {
console.log(innerIterator + ' ' + outerIterator);
}
}
// This is a readable double for-loop
// 3 is a small number
// No performance issues (by now)
// We will wait for real evidence
検出
[ X ]マニュアル
これは意味のある匂いです.
我々は、コードが読むのが難しいとわかるかもしれません.
タグ
結論
我々は、マシンの最適化を停止し、人間の読者とコードメンテナの最適化を開始する必要があります.
早めの最適化のために設計されたプログラミング言語を回避し,ロバストなものを好む必要がある.
関係
コード匂い06
マキシ・コンティ・ 月25日・ 2分読む
#codenewbie
#tutorial
#beginners
コード匂い20 -早熟な最適化
マキシ・コンティ・ Nov 8・ 2分読む
#oop
#developing
#coding
#codesmell
詳しい情報
コード匂い06
マキシ・コンティ・ 月25日・ 2分読む
#codenewbie
#tutorial
#beginners
コード匂い20 -早熟な最適化
マキシ・コンティ・ Nov 8・ 2分読む
#oop
#developing
#coding
#codesmell
詳しい情報
クレジット
写真でPriscilla Du Preez on Unsplash
Optimism is an occupational hazard of programming: feedback is the treatment.
ケントベック
ソフトウェア工学大引用
マキシ・コンティ・ Dec 28 ' 20・ 13分読む
#codenewbie
#programming
#quotes
#software
この記事はCodesmellシリーズの一部です.
あなたのコードの臭い部分を見つける方法
マキシ・コンティ・ May 21 ' 21・ 4分読む
#codenewbie
#tutorial
#codequality
#beginners
Reference
この問題について(コード匂い129 -構造最適化), 我々は、より多くの情報をここで見つけました
https://dev.to/mcsee/code-smell-129-structural-optimizations-3l62
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Optimism is an occupational hazard of programming: feedback is the treatment.
ソフトウェア工学大引用
マキシ・コンティ・ Dec 28 ' 20・ 13分読む
#codenewbie
#programming
#quotes
#software
あなたのコードの臭い部分を見つける方法
マキシ・コンティ・ May 21 ' 21・ 4分読む
#codenewbie
#tutorial
#codequality
#beginners
Reference
この問題について(コード匂い129 -構造最適化), 我々は、より多くの情報をここで見つけました https://dev.to/mcsee/code-smell-129-structural-optimizations-3l62テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol