Действительно ли это - хорошая практика, чтобы сделать оптимизацию во время начального кодирования?

Действительно ли это - хорошая практика для следования за методами оптимизации во время начальной буквы, кодирующей себя, или нужно сконцентрироваться просто на реализации функциональности сначала?

Если Вы концентрируетесь просто на функциональности во время начального кодирования, то, как легкий или трудный это должно заботиться об оптимизации позже?

5
задан Jay 19 January 2010 в 09:52
поделиться

7 ответов

Оптимизировать свой дизайн и архитектуру - не зафиксируйте себя в дизайне, который никогда не будет масштабироваться - но не микро-оптимизировать вашу реализацию. В частности, не жертвуйте простотой и читаемостью для микрооптимированной реализации ... по крайней мере, не без сравнительного анализа вашего кода (в идеале всей системы) первым.

Измерение действительно является ключевой точкой, когда речь идет о производительности. Узкие места почти никогда, куда вы ожидаете, что они будут. Существуют множество различных способов измерения; Оптимизация без каких-либо измерений бесполезно IMO.

16
ответ дан 18 December 2019 в 09:07
поделиться

Сначала компьютер ищет узел назначения. Если он существует в локальном кэше DNS, он использует эту информацию. В противном случае запрос DNS выполняется до тех пор, пока не будет найден IP-адрес.

Затем браузер открывает TCP-соединение с узлом назначения и отправляет запрос в соответствии с HTTP 1.1 (или может использовать HTTP 1.0, но обычные браузеры больше этого не делают).

Сервер ищет требуемый ресурс (если он существует) и отвечает с помощью протокола HTTP, отправляет данные клиенту (= ваш браузер)

Затем браузер использует синтаксический анализатор HTML для повторного создания структуры документа, которая позже будет представлена на экране. Если он находит ссылки на внешние ресурсы, такие как картины, CSS-файлы, javascript-файлы, они доставляются так же, как и сам HTML-документ.

-121--550667-

Цитаты Кнута см. в http://en.wikipedia.org/wiki/Program_optimization .

Если вы считаете, что оптимизация может затруднить выполнение кода (а) в первую очередь, или (б) поддерживать его в долгосрочной перспективе, то, вероятно, лучше всего сначала получить правильный код. Наличие хороших процессов разработки, таких как Test Driven Development, может помочь в дальнейшей оптимизации.

Всегда лучше работать правильно и медленно, чем неправильно и быстро.

-121--4605419-

Это зависит от того, что вы видите как «оптимизация». Микрооптимизация не должна выполняться на ранних этапах и после этого только в том случае, если у вас есть веские основания для этого (например, результаты профилировщика или аналогичные).

Однако написание хорошо структурированного, чистого кода в соответствии с передовыми практиками и общими рекомендациями по кодированию является хорошей привычкой, и, как только вы привыкли к нему, это не занимает гораздо больше времени, чем написание небрежного кода. Такого рода «оптимизация» (не правильное слово для него, но некоторые видят это как таковое) должна делаться с самого начала.

1
ответ дан 18 December 2019 в 09:07
поделиться

Дональд Кнут сказал:

Мы должны забыть о небольших проявлениях, скажем, около 97% случаев: преждевременное оптимизация является корнем всего зла

2
ответ дан 18 December 2019 в 09:07
поделиться

См. http://en.wikipedia.org/wiki/program_optimization для цитат в Кнут.

Если вы считаете, что оптимизация может заставить свой код сложнее (а) получить прямо в первую очередь, или (b) поддерживать в долгосрочной перспективе, то, вероятно, лучше всего сначала получить его. Имея хорошие процессы разработки, такие как разработка тестирования, могут помочь вам сделать оптимизации позже.

Всегда лучше, чтобы он работал правильно и медленно, чем неправильно и быстро.

0
ответ дан 18 December 2019 в 09:07
поделиться

Право сказано, что Дональд Кнут «Преждевременная оптимизация - корень всего зла», и это делает вашу скорость кодирования медленно. Лучший способ оптимизировать - вновь посещать кодовую базу снова и рефакторинга. Таким образом, вы знаете, какая часть кода часто используется или является узким местом и должна быть точной настройкой.

0
ответ дан 18 December 2019 в 09:07
поделиться

Преждевременная оптимизация не очень хорошая вещь. И это идет специально для оптимизации низкой уровня. Но на более высоком уровне ваш дизайн не должен заблокировать какую-либо будущую оптимизацию.

Например.

Получение коллекций должно быть скрыто за вызовом методов, в конце концов вы всегда можете решить кэшировать извлечение коллекций или нет. После того, как у вас есть стабильное приложение и (!) Вы разработали тесты регрессии. Вы можете профилировать приложение и оптимизировать горячие точки. И не забудьте после каждой шаги Optimalization, вы должны запускать свой полный комплект теста устройства.

0
ответ дан 18 December 2019 в 09:07
поделиться

Преждевременная оптимизация является корнем всего зла

, чтобы подробно разработать эту известную цитату, выполняя оптимизацию рано, имеет недостаток отвлечения вас от выполнения хорошего дизайна. Кроме того, программисты новеренно плохо в нахождении, какие части кода вызывают большие проблемы, и поэтому старайтесь оптимизировать вещи, которые не так важны. Вы всегда должны измерять первым, чтобы узнать, что нужно оптимизировать, и это может произойти только в более поздних этапах.

-1
ответ дан 18 December 2019 в 09:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: