Он жестко закодирован, потому что вы выбрали его жестко. Обратите внимание, что существует переменная окружения под названием username
, в которой хранится имя пользователя, вошедшего в систему в данный момент. Доступ к переменным в пакетном файле можно получить по %
или !
, если включено отложенное расширение. Я не нахожу причин для использования отсроченного расширения, поэтому используйте только знаки процента:
xcopy "C:\%username%\OneDrive\TestFolder\Test_2018.accde" "C:\Test\Test_EXE\" /d
В наших командах мы активно управляем техническим долгом. Мы делаем Толпу, таким образом, мы порождаем техническую долговую карту или для текущего повторения или для следующего повторения в зависимости от оценки и нашей остающейся способности спринта, и они расположены по приоритетам точно так же, как функции и карты ошибки делают. Мы также справляемся больше, объекты долга перекрестной команды при наличии отставания перекрестной команды технического долга, который мы располагаем по приоритетам и вводим в каждую команду Толпы во время их планирования спринта.
Я думаю, что важно запланировать время для имеющего дело технического долга, при попытке восполнить старые грехи, но я также думаю, что Вы не должны делать это привычкой. Как только Вы разгребаете бардак, необходимо постараться не помещать проект в большее количество долга, если у Вас нет серьезных оснований для того, чтобы сделать так.
Активно управление, которое это как Mike предлагает, походит на самый разумный подход, но я думаю, что очень важно прояснить (Вашей команде), что Вы не должны планировать время или план относительно рефакторинга в конечном счете.
Рефакторинг должен быть естественной частью записи кода, и таким образом должен включаться в Ваши другие оценки и планы, и не рассматриваться как отдельный activity— если Вы не имеете к, т.е. по "историческим" причинам или потому что Вы сознательно решили реализовать что-то уступленный дорогу и затем повторно реализовать его позже.
То, что Вы делаете, , создают культуру , где технический долг не приемлем если в крайних случаях. Во многом как люди, которые только платят наличными и используют кредит только в качестве абсолютного последнего средства.
Это во многом зависит от продукта. Когда я работал в поле, где наш код должен был контролироваться внешней стороной, это была запланированная часть нашего спринта. PM просто спросил разработку, какой области был нужен рефакторинг, и это было помещено в план. Но это вовсе не значит Вы не зафиксировали бы код в области, Вы продолжали работать, но Вы не посвятите день перезаписи искаженного блока кода, который работал. Теперь я работаю в толпе, и разработчики просто делают это, как они работают. Мое впечатление - то, который о том же количестве времени входит в рефакторинг работы, так или иначе.
Я соглашаюсь с Anders. Если необходимо настроить системы для управления техническим долгом, который означает, что Вы все еще добавляете его. Прекратите входить в долг во-первых путем обновления определения "сделанных".
Это действительно означает, что "обязанные" модули будут более тверды работать через. Разработчики должны знать об этом и присваивать больше точек истории так, чтобы они оставили вещи "сделанными" по их следу.
Если Вы опаздываете в цикл выпуска, Вы не хотите изменять кодовую базу слишком много. Это означает, что всегда будет некоторый технический долг. Я обычно пишу FIXME:s для изменений, которые являются субоптимальными, и затем я забочусь о них, прежде чем я начну реализовать опции для следующего выпуска.
Один аспект управления техническим долгом находится в убеждении нетехнических менеджеров, что Вам требуется время, выделенное для рефакторинга и устранения ошибки.
Вот статья с определенными предложениями о том, как сделать это.
Если мне действительно нужно накопить технический долг, потому что мне нужно выпустить что-то СЕЙЧАС, я сообщаю об этом критическую ошибку, чтобы она получила высший приоритет. Но это только для экстремальных ситуаций (клиент прыгает вверх-вниз, жена ищет дингбата и т. Д.).
Java Posse недавно охватил управление Техническим долгом , что выглядит очень всеобъемлющим.