Должен ли я обновить приложение, когда используемая среда выпускает новую версию? - PullRequest
4 голосов
/ 19 марта 2010

У меня есть приложение, которое использует несколько библиотек и платформ. Должен ли я обновить свое приложение, чтобы использовать последнюю версию этих платформ, когда доступна новая стабильная версия?

Например, выполнить миграцию с python 2.x на python 3.x или с весны 2.5 до весны 3.0, но вопрос очень общий, а не специфический для языка.

Если я буду обновлять приложение, чтобы оно использовало последние версии стабильных фреймворков, у меня будут доступны новые функции, если они мне понадобятся.

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

Есть ли лучшая практика по этому поводу?

Ответы [ 7 ]

5 голосов
/ 19 марта 2010

Я бы. Вот почему Если вы этого не сделаете, то набор используемых вами библиотек устареет. На каком-то этапе вы должны обновить один (из-за исправления ошибки), и в этот момент вам нужно обновить несколько из-за совместимости. Таким образом, простое обновление библиотеки происходит каскадно.

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

2 голосов
/ 19 марта 2010

Основываясь на опыте, я предпочитаю очень консервативный подход к этому.

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

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

Единственный раз, когда вы должны немедленно обновить это, когда версия платформы, на которую вы полагаетесь, находится вне вашего контроля, и клиент, скорее всего,сделать обновление.Примером этого является Internet Explorer - если у меня есть некоторые функции, основанные на версии 7, но версия 8 была выпущена, и поведение этой функции изменилось, то мне нужно обновить немедленно, так как клиент будет обновляться в любое время.В качестве примера обратного, если у меня есть приложение, которое опирается на платформу .Net 2.0, я не должен перекомпилировать против фреймворка 3.5 только ради него, потому что две версии фреймворка счастливо живут бок о бок,поэтому обновление (теоретически) может привести к проблемам, которые мне не нужно было вводить.

1 голос
/ 19 марта 2010

Вы должны положить вещи в масштабе .....

1. -Вы получаете какие-либо преимущества

2. - это заставит вас страдать

3. - нарушит ли он рабочий процесс в вашей компании; сколько мертвого времени будет

для себя ... Мне нравятся новейшие технологии ... это означает меньше ошибок и больше обучения = P

0 голосов
/ 19 марта 2010

Как долго это кусок строки?

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

Крупные ИТ-отделы, как правило, не выпускают новейшую Windows сразу (я сомневаюсь, что многие компании в настоящее время используют Windows 7 по всем направлениям, а многие все еще используют XP (думаю, VIsta)). Они могут не совсем пропустить какое-то время релиза, но общее правило в Windows - ждать пакета обновления 1.

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

Otoh, новый выпуск, вероятно, будет иметь исправления ошибок - кажется, хорошо, но есть ли ошибки, о которых сообщают ваши пользователи? Если нет, зачем («исправляет нажатие кнопки« закрыть », а затем отменяет сбой при использовании Chzeck-версии фреймворка на болгарской версии Windows»). И с исправлениями ошибок в новом выпуске будут новые ошибки.

Риск / награда - какова ваша награда? Можете ли вы продать новую версию своего приложения и заработать больше денег? Каков твой риск? Потеря репутации, если в новой версии есть ошибки, время поддержки (и стоимость).

Как долго ваш кусок веревки?

0 голосов
/ 19 марта 2010

Если я буду обновлять приложение до использовать новейшие стабильные фреймворки версии, то у меня будут новые функции доступно, если они мне нужны.

В этом суть преждевременной оптимизации.

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

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

0 голосов
/ 19 марта 2010

Зависит от фреймворка / библиотеки. Если фреймворк популярен, хорошо поддерживается, хорошо документирован и довольно стабилен (например, Spring), я бы определенно обновил - вы получите все виды исправлений ошибок в существующей функциональности и некоторые новые функциональные возможности.

Фреймворки, которые не так популярны / ухожены, я был бы немного осторожнее.

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

0 голосов
/ 19 марта 2010

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

Однако, если более старая версия хорошо известна, как в случае с Python 2.x, вы продолжите получать поддержку в течение некоторого времени после выхода новой версии. Но не откладывайте неизбежное.

...