Преждевременный рефакторинг? [закрытый]

Модуль Node fs предназначен только для записи локальной файловой системы, поэтому его нельзя использовать для записи в облачное хранилище. Если вы хотите писать в Cloud Storage, вам нужно будет использовать Cloud Storage SDK (или Admin SDK , который упаковывает Cloud Storage SDK).

17
задан Peter Mortensen 3 April 2011 в 19:33
поделиться

8 ответов

Я на самом деле думаю противоположное.

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

я также нашел что, чем больше я осуществляю рефакторинг вначале, тем лучше я добрался о написании кода более чисто впереди. Я склонен создавать меньше больших методов и иметь меньше проблем.

Однако, если бы Вы "осуществляетесь рефакторинг" в угол, я ожидал бы, что это - больше вопрос отсутствия начального дизайна или отсутствия планирования объема использования класса. Испытайте запись, как Вы хотите использовать класс или платформу, прежде чем Вы начнете писать код - это может помочь Вам избежать той проблемы. Это, также я думаю, что одно преимущество тестирует управляемый дизайн - это помогает Вам вынудить себя посмотреть на использование Вашего объекта, прежде чем это будет записано.

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

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

11
ответ дан 30 November 2019 в 12:36
поделиться

Мы все услышали о Преждевременной Оптимизации, но что делает Вас вещь о Преждевременном Рефакторинге? Есть ли по Вашему мнению какая-либо такая вещь?

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

Для наблюдения, почему предположите запись аналитического программного обеспечения налоговой декларации для IRS. Внезапно, новые инструкции представлены в последнюю минуту, которые повреждают несколько из Ваших исходных предположений. Хотя Вы разработали хорошо, Ваша модель предметной области существенно сместилась из-под Ваших ног по крайней мере в одном важном месте. Это 14-го апреля, и проект должен пойти живой завтра, что бы ни случилось.Кто ты по профессии?

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

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

7
ответ дан 30 November 2019 в 12:36
поделиться

Я думаю, что возможно осуществить рефакторинг слишком рано.

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

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

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

Редактирование В ответ на Дизайн comments:-

не сделано, пока Вы не написали код. Мы не можем решить весь проблемы в предварительном кодировании дизайна, самое главное позади Гибкого - то, что кодирование решение задач. Если бы дизайн некода решил все проблемы заранее прежде, чем кодировать то не было бы никакой потребности к [1 111] ре фактор, мы просто преобразуем дизайн в хорошо учтенный код за один шаг.

Кто-либо помнит конец 1980-х и в начале методов структурного проектирования 1990-х, те, где Вы получили все проблемы, решенные в умных схемах перед записью строки кода?

5
ответ дан 30 November 2019 в 12:36
поделиться

Я думаю любой "1.0", проект восприимчив к этому виду..., давайте назовем его "повторяющимся дизайном". Если у Вас нет ясной спецификации, прежде чем Вы начнете разрабатывать, Вы - объекты, Вы будете, вероятно, думать о многих проектах и подходах к проблемам.

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

1
ответ дан 30 November 2019 в 12:36
поделиться

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

3
ответ дан 30 November 2019 в 12:36
поделиться

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

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

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

1
ответ дан 30 November 2019 в 12:36
поделиться

Я твердо уверенным в постоянном рефакторинге. Нет никакой причины ожидать до некоторого определенного времени, чтобы начать осуществлять рефакторинг.

Каждый раз, когда Вы видите что-то, что должно быть добито большего успеха, Осуществить рефакторинг.

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

1
ответ дан 30 November 2019 в 12:36
поделиться

Причина, почему преждевременная оптимизация плоха, состоит в том, что оптимизация обычно приводит к худшему дизайну. В отличие от рефакторинга, который приводит к лучшему и более чистому дизайну, если сделано вдумчивому и правильному. То, что я учился быть полезным для меня для анализа полноценности рефакторинга, сначала смотрело на нашу диаграмму UML для визуализации изменения и затем писало документ кода (например, Javadoc) для класса сначала и добавляло тупики перед любым реальным кодом. Конечно, опыт помогает много с этим, если в сомнении, спросите своего любимого архитектора;)

1
ответ дан 30 November 2019 в 12:36
поделиться
Другие вопросы по тегам:

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