Это обычная проблема с началом работы с людьми. Всякий раз, когда вы обновляете элементы пользовательского интерфейса из потока, отличного от основного потока, вам нужно использовать:
this.Dispatcher.Invoke(() =>
{
...// your code here.
});
Вы также можете использовать control.Dispatcher.CheckAccess()
, чтобы проверить, является ли текущий поток владеет контролем. Если он действительно владеет, ваш код выглядит нормально. В противном случае используйте шаблон выше.
Важно включать время рефакторинга в Ваши первоначальные оценки. Движение к Вашему боссу после поставки продукта и затем сообщения ему, что Вы на самом деле не сделаны, лжет о том, чтобы быть сделанным. Вы на самом деле не сделали поставляемый крайний срок. Это похоже на хирурга, делающего хирургию и затем не удостоверяющегося, что он поместил все, поддерживают способ, которым это, как предполагалось, было.
важно включать все части разработки (например, рефакторинг, исследование удобства использования, тестирование, QA, изменения) в Ваших исходных расписаниях. В конечном счете это не так проблема управления как проблема программиста.
, однако, при наследовании путаницы тогда необходимо будет объяснить боссу, что последняя группа программистов в стремлении получить проект снаружи углы сокращения и что это хромало вперед. Вы можете лейкопластырь проблема некоторое время (как они, вероятно, сделали), но каждый лейкопластырь просто задерживает проблему и в конечном счете делает проблему что намного более дорогой для фиксации.
Быть честным с Вашим боссом и понять, что проект не сделан, пока он не сделан.
Босс должен доверять dev для принятия корректных технических решений (включая то, когда осуществить рефакторинг).
Устанавливают то доверие или заменяют босса или заменяют dev.
По-моему, самый простой случай для создания для рефакторинга фиксирует чрезмерно сложный код. Измерьте McCabe цикломатическая сложность рассматриваемого исходного кода (Исходный Монитор является превосходным инструментом для такой проблемы). Исходный код с высокой цикломатической сложностью имеет сильную корреляцию, дезертирует и плохо фиксирует. Что это означает, простыми словами то, что сложный код более трудно зафиксировать, и более вероятно иметь плохо фиксирует. То, что это значит для менеджера, - то, что качество продукта, вероятно, будет хуже, и ошибки тяжелее для фиксации, и расписание для проекта, в конечном счете хуже. Однако в рефакторинге сложности, Вы улучшаете прозрачность кода, уменьшая вероятность неясных / трудные ошибки, и облегчая поддерживать (например, у программиста обслуживания может быть больший объем обслуживания из-за этого).
Кроме того, можно изложить доводы (если это не мертвый продукт в цикл техобслуживания), что уменьшение сложности подает заявку, легче расширяться, когда новые требования добавляются к проекту.
Редко найти босса, который даст Вам, время для рефакторинга... просто делает это, как Вы продвигаетесь.
Если Ваш босс не понимает потребность осуществить рефакторинг или очистить код, то необходимо задаться вопросом, есть ли у него достаточно технического знания, чтобы быть техническим руководителем.
Я думаю, что необходимо только начать работать над ним, не говоря боссу. Это действительно, как я сделал свою лучшую работу. Я просто не говорю моему боссу, что я делаю и медленно заменяю плохой / унаследованный код, когда у меня есть время.
Это acutally сохранило мою задницу больше чем в одном случае.
.... просто не идите получают новое задание в месте, которым это находится больше в синхронизации с Вами.
Иногда, пора просто получить новое задание. Существуют certian poeple, кто просто хочет, чтобы Вы "сделали его". Если Вы находитесь когда-нибудь в одной из тех ситуаций, и я был там, то просто уезжают.
, Но да, все, что другой материал о будущих затратах и таком является хорошей идеей. Я просто думаю, что большинство боссов лжет себе, потому что они хотят то, что они хотят, когда они хотят его, и они просто не в состоянии видеть то, что собирается произойти в будущем.
Так, удача с Вашим боссом. Hpefully он разумен.
Мне нравится ответ, данный в "Рефакторинге" Martin Fowler. Скажите Вашему боссу, что Вы собираетесь разработать программное обеспечение самый быстрый способ, которым Вы знаете как. Это происходит, который в большинстве случаев состоит в том, чтобы осуществить рефакторинг самый быстрый способ разработать программное обеспечение, когда Вы идете.
другая вещь сказать Вашему боссу является Вами, уменьшают стоимость для создания будущих улучшений.
В одной из недавних книг Robert Glass (я должен буду искать ссылку) он упомянул исследование стоимости хорошо сохраняемого кода. То, что они нашли, - то, что хорошо сохраняемый код редактировался чаще, чем плохо сохраняемый код. Это звучит как интуитивный счетчик, но когда они вырыли глубже обнаруженный причина:
Хорошо сохраняемый код имеет больше опций, добавленных к нему в тот же период времени, чем плохо сохраняемый код.
Вашему Боссу нравятся функции? Несомненно, они все делают. Больше при улучшении пригодности для обслуживания кода, больше функций, Вы будете в состоянии поставить с тем ограниченным бюджетом.
Рефакторинг Вас должен сделать все время...., таким образом, Вам не придется выровнять по ширине его.
Чистка большой путаницы / Модернизация может включать рефакторинг, чтобы получить контроль над ним, однако не "Рефакторинг"
, Рефакторинг должен быть вопросом моментов... или если у Вас нет поддержки инструмента, минуты.
Скажите ему, что 80% затрат, связанных с проектом программного обеспечения, прибывают в этап технического обслуживания жизненного цикла. Любой рефакторинг, сделанный теперь, чтобы облегчить будущие проблемы и иметь некоторые примеры, будет сетевые существенные экономические выгоды позже, когда потребность возникнет к поддержанию того кода.
Это предполагает, что Вы осуществляете рефакторинг по причине а не по тщеславию программиста.
Лгать. Скажите ему, что это - исследование новой технологии. Затем скажите ему, что Вы решили, что стоимость не выровняла по ширине преимущества. Он будет думать, что Вы сделали отличную работу.
lol люди вниз модификация / маркировка наступления.
Действительно, если это - пенсовый босс зажимания, который не понимает хорошее программное обеспечение из дешевого программного обеспечения, что он не знает, в конечном счете сделает его более счастливым. если бы это был я, то я покинул бы компанию и пошел бы куда-нибудь, где они уважают свою способность разработчиков написать хороший код. Но с другой стороны, это - то, почему я нахожусь на руководящем посту.
Просто сделайте это и запланируйте его в свой нормальный процесс. Оценочное время рефакторинга в запуск нового изменения или в окончание изменения (идеал). Я всегда осуществляю рефакторинг, в то время как я первоначально исследую новый код (извлекающий методы, и т.д.).
Говорите на языке, который он может понять.
Рефакторинг оплачивает долг дизайна.
Спрашивают Вашего босса, почему он оплачивает счет кредитной карты компании каждый месяц по сравнению с не оплатой его, пока нет уведомление наборов. Скажите ему, что рефакторинг похож на осуществление Вашего ежемесячного платежа.
Меньше денег теперь для меня для рефакторинга...
или более денег позже для фиксации независимо от того, что идет не так, как надо и для меня для рефакторинга.