Я работаю над своим хобби-проектом на C ++ более 2 лет. Всякий раз, когда я пишу модуль / функцию, я много думаю об этом. Теперь посмотрим на проблему,
do {
--> write the code in module 'X' and test it
--> ... forget for sometime ...
--> revisit the same piece of code (due to some requirement)
--> feel that "This isn't written nicely; could have been better"
} while(true);
Вот 'X'
любой модуль (будь то маленький / большой / средний). Я наблюдаю, что это происходит независимо от того, сколько усилий я приложил при написании кода. Так что в основном я воздерживаюсь от просмотра рабочего кода. :)
Это общее чувство для многих людей? Является ли этот язык специфическим явлением? (Потому что в C ++ можно писать одно и то же по-разному).
Что мне следует делать, если я испытываю чувство ре-факторинга к производственному коду реального мира, где изменение рабочего кода не принесет мне больших похвал, а скорее может вызвать проблемы, если он потерпит неудачу.
c++
self-improvement
refactoring
coding
iammilind
источник
источник
Ответы:
Это явление очень распространено и не характерно для программистов. Всякий раз, когда вы выполняете интеллектуальную задачу, вы замечаете десятки мест, где вы могли бы стать лучше - после того, как вы прошли некоторое расстояние. Спросите любого мудрого () человека WO - кто когда - либо писал диссертацию, и они скажут вам одно: «Не смотрите на него Вы будете найти ошибку на первый взгляд.»
Есть в основном две вещи, чтобы избежать цикла рефакторинга:
источник
Непрерывный рефакторинг - это путь. Изменение рабочего кода не вызовет проблем, и его следует поощрять, если все сделано правильно. Если ваш код полностью модульно протестирован, вы можете с уверенностью пересмотреть его код.
Единственное, что вы можете предсказать в реальном производственном коде, это то, что это изменится. Не пытайтесь угадать, как это изменится, какие новые техники вы узнаете завтра. Короче говоря, не пытайтесь сделать ваш код "идеальным". Просто сделайте это так хорошо, как вы можете с вашими нынешними знаниями. Кроме того, убедитесь, что ваш код тщательно протестирован и расширяем.
Я трачу 20% -30% своего времени на рефакторинг существующего кода. Я работаю в технологической компании, и «менеджмент» никогда не жаловался на изменение существующего кода. Тем не менее, я понимаю, что это может быть проблемой в некоторых компаниях. У Мартина Фаулера даже есть раздел об этом в его книге по рефакторингу .
Таким образом, в моем опыте это обычное чувство, но оно не является негативным.
источник
Каждый модуль / функция рождается и развивается в мире приоритетов. Когда этого достаточно для достижения целей внешнего мира, его часто оставляют в стагнации. Все это в конечном итоге леса в служении высшей цели. Да, мы должны быть одержимы кодом, и да, это также может привести к стагнации. Возможно, для вас было бы хорошим шагом немного сместить фокус с самого кода и больше задуматься о процессах, которые происходят внутри вас, производителя кода.
источник
Это означает, что вы расширяете свои знания и взгляды.
Если у вас нет задач с более высоким приоритетом, вы всегда должны вернуться и улучшить свой код.
источник
Я всегда думал, что человек посещает урок математики, чтобы усилить свои навыки в предыдущем уроке. Алгебра казалась сложной, пока вы не взяли Алгебру II; Тогда навыки, которые вы узнали в алгебре, стали полезными. Это то же самое в программировании, письме, деревообработке или чем-то еще.
Пройдя курс программирования, вы узнали о If-then-else, которое делало много вещей, пока вы не узнали о переключателях. Когда вы изучаете что-то новое, вы проходите эту прогрессию, каждый делает.
источник
Я чувствую то же самое всякий раз, когда читаю большую часть кода, написанного мной в прошлом. Это хорошо, это означает, что ваши знания и стиль кодирования улучшились за эти годы.
Что касается изменения рабочего производственного кода, то это большая проблема, если вы не заметили очевидные ошибки. Не только потому, что это может быть пустой тратой времени, но и, что более важно, поскольку подавляющее большинство созданных программных ошибок относится к тому типу, который вводится при внесении изменений в выпущенные программы. Статистически вполне вероятно, что вы будете вводить непредвиденные ошибки. Если это не сломано, не исправляйте это.
источник
Разработка приложения означает его улучшение и улучшение; это непрерывный процесс, поэтому во время программирования вы получаете больше опыта и знаний. Это также означает, что вы тоже разрабатываете, поэтому, оглядываясь на старый код, вы можете обнаружить, что его можно улучшить.
Если у вас нет этого чувства, это означает одно из двух:
источник