Страницы

Поиск по вопросам

вторник, 26 ноября 2019 г.

Как мне улучшать свою программу без потери того что я уже сделал


У меня есть программа, она работает, но теперь я хочу её улучшить. Но возможно тако
что при попытке её улучшить, она перестанет работать, и я не смогу вернуться к тому что было в начале. Чтобы сохранить рабочую версию мне каждый раз нужно делать копию проекта или есть что-нибудь попроще?
    


Ответы

Ответ 1



Использовать TFS или Git. Применять для улучшений ветвление исходного кода Можно так же использовать и ваш метод с копированием, но это анахронизм.

Ответ 2



Вы можете сделать одну из простых вещей это организовать репозиторий у себя на локальном диске. Например под Windows удобная вещь как TortoiseSVN С помощью него в процессе написания кода вы можете постоянно сохранять промежуточные результаты. И в случае неудачи всегда можно откатиться на любую сохраненную версию. Также может использовать любой другой репозиторий. Популярны сейчас GIT и Mercurial.

Ответ 3



Данная задача давным-давно решена и её решение носит название "система контроля версий (или "система управления версиями"). Она позволяет сохранять снимки дерева исходнико проекта. В нужный момент программист указывает системе сделать снимок исходников (та называемый "коммит") и система сохраняет каким-либо образом в своём специальном каталоге данные, благодаря которым программист в любой момент времени сможет вернуться к этому коммиту. Можно возвращаться к любому коммиту, создавать новые ответвления, сливать ветки и т.п. Более подробную информацию можно получить из документации к конкретной системе. Примеры систем контроля версий: Git, SVN, Mercurial, Bazaar и т.д. P.S. Конечно, дело вкуса, но я бы порекомендовал Git.

Ответ 4



Много было сказано про систему контроля версий, но мало про: юнит тесты рефакторинг На всякий случай, скажу мое скромное понимание: Юнит тесты содержат код для проверки коректоности работы Ваших функций. После внесени изменений (рефакторинга) тесты менять не надо, они так же должны проходить (получать зачет). Рефакторинг - изменение кода малыми порциями, маленькими шажками, пока код не стане чистым, понятным. Между этими шажками хорошо запускать юнит-тесты, чтоб проверить, что при изменениях не было внесено ошибок. Юнит тесты в идеале должны быть подробными. Юнит тест одного метода должен покрыват все возможные варианты (ветки) прохождения по этому методу в зависимости от входных данных. Про это много написано в интернете. Хотя, во многих случаях (особенно, если имет ввиду малые пректы), игра не стоит свеч, то есть, не стоит того, чтобы замарачиваться с тестами и изучением подходов к рефакторингу. По просьбе, привожу простой пример юнит теста. Есть класс, который проверяет корректность формата телефонного номера public class PhoneValidator { public bool IsValid(string phone) { return UseSomeRegExToTestPhone(phone); } } Для этого класса надо сделать такой юнит тест, чтобы проверить все возможные категори входных строк. Как верные так и неверные. Но в примере напишу только две входные строки, т.к. все варианты - много... public void TestPhoneValidator() { string goodPhone = "+7 (910) 555 12 12"; string badPhone = "555 12" PhoneValidator validator = new PhoneValidator(); Assert.IsTrue(validator.IsValid(goodPhone)); Assert.IsFalse(validator.IsValid(badPhone)); //и т.д. } Assert - сама проверка. Значение слова Assert - утверждать. Если утверждение не верно, то кидается Exception и тест не проходит. Класс Assert - часть фреймворка тестирования. P.S. Для C# и Visual Studio можно закачать здоровскую нугетовскую (Nuget) библиотеку FluentAssertions, чтобы было удобно делать асёрты.

Ответ 5



Могу предложить использование бесплатной программы sourceTree (git). Она имеет удобны интерфейс на русском языке. По истечении месяца предлагается бесплатная регистрация. Можно хранить данные локально либо на удаленном репозитории (например github). При создании нового хранилища указывается корневая папка проекта (как вариант), эт значит что все что вложено в нее будет автоматически фиксироваться программой. Когд вы делаете изменения в файле (например улучшили ваш код), программа автоматически показывает изменения и предлагает их зафиксировать и прокомментировать, естественно к каждому изменению можно будет вернуться в любой момент времени. для поиска просто вбейте в гугл atlassian sourcetree.

Комментариев нет:

Отправить комментарий