Лучшие практики для [закрытой] совместимости с прежними системами

" Дополнительные методы в JavaScript" через свойство прототипа.

Array.prototype.contains = function(value) {  
    for (var i = 0; i < this.length; i++) {  
        if (this[i] == value) return true;  
    }  
    return false;  
}

Это добавит contains метод ко всему Array объекты. Можно назвать этот метод с помощью этого синтаксиса

var stringArray = ["foo", "bar", "foobar"];
stringArray.contains("foobar");

5
задан 3 revs 30 November 2009 в 08:36
поделиться

3 ответа

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

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

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

5
ответ дан 14 December 2019 в 19:16
поделиться

Используйте XML в качестве основы для формата вашего файла и только добавляйте к спецификации DTD, а не удаляйте. Таким образом, ваши файлы должны быть обратно совместимы с более ранними версиями, что является плюсом.

0
ответ дан 14 December 2019 в 19:16
поделиться

Вот хороший пример: Использование мостов SLF4J для упрощения миграции с одного модуля ведения журнала на другой в Java.

0
ответ дан 14 December 2019 в 19:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: