Версионность программного обеспечения: Software versioning / Хабр

Содержание

Семантическое Версионирование 2.0.0 | Semantic Versioning

Кратко

Учитывая номер версии МАЖОРНАЯ.МИНОРНАЯ.ПАТЧ, следует увеличивать:

  1. МАЖОРНУЮ версию, когда сделаны обратно несовместимые изменения API.
  2. МИНОРНУЮ версию, когда вы добавляете новую функциональность, не нарушая обратной совместимости.
  3. ПАТЧ-версию, когда вы делаете обратно совместимые исправления.

Дополнительные обозначения для предрелизных и билд-метаданных возможны как дополнения к МАЖОРНАЯ.МИНОРНАЯ.ПАТЧ формату.

Вступление

В мире управления процессом разработки есть понятие «ад зависимостей» (dependency hell). Чем больше растёт ваша система и чем больше библиотек вы интегрируете в ваш проект, тем больше вероятность оказаться в этой ситуации.

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

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

В качестве решения данной проблемы я предлагаю простой набор правил и требований, которые определяют, как назначаются и увеличиваются номера версий. Для того чтобы эта система работала, вам необходимо определить публичный API. Он может быть описан в документации или определяться самим кодом. Главное, чтобы этот API был ясным и точным. Однажды определив публичный API, вы сообщаете об изменениях в нём особым увеличением номера версий. Рассмотрим формат версий X.Y.Z (мажорная, минорная, патч). Баг-фиксы, не влияющие на API, увеличивают патч-версию, обратно совместимые добавления/изменения API увеличивают минорную версию и обратно несовместимые изменения API увеличивают мажорную версию.

Я называю эту систему «Семантическое Версионирование» (Semantic Versioning). По этой схеме номера версий и то, как они изменяются, передают смысл содержания исходного кода и что было модифицировано от одной версии к другой.

Спецификация Семантического Версионирования (SemVer)

Слова «ДОЛЖЕН» (MUST), «НЕ ДОЛЖЕН» (MUST NOT), «ОБЯЗАТЕЛЬНО» (REQUIRED), «СЛЕДУЕТ» (SHOULD), «НЕ СЛЕДУЕТ» (SHOULD NOT), «РЕКОМЕНДОВАННЫЙ» (RECOMMENDED), «МОЖЕТ» (MAY) и «НЕОБЯЗАТЕЛЬНЫЙ» (OPTIONAL) в этом документе должны быть интерпретированы в соответствии с RFC 2119.

  1. ПО, использующее Семантическое Версионирование, должно объявить публичный API. Этот API может быть объявлен самим кодом или существовать строго в документации. Как бы ни было это сделано, он должен быть точным и исчерпывающим.

  2. Обычный номер версии ДОЛЖЕН иметь формат X.Y.Z, где X, Y и Z — неотрицательные целые числа и НЕ ДОЛЖНЫ начинаться с нуля. X — мажорная версия, Y — минорная версия и Z — патч-версия. Каждый элемент ДОЛЖЕН увеличиваться численно. Например: 1.9.0 ->1.10.0 -> 1.11.0.

  3. После релиза новой версии пакета содержание этой версии НЕ ДОЛЖНО быть модифицировано. Любые изменения ДОЛЖНЫ быть выпущены как новая версия.

  4. Мажорная версия ноль (0.y.z) предназначена для начальной разработки. Всё может измениться в любой момент. Публичный API не должен рассматриваться как стабильный.

  5. Версия 1.0.0 определяет публичный API. После этого релиза номера версий увеличиваются в зависимости от того, как изменяется публичный API.

  6. Патч-версия Z (x.y.Z | x > 0) ДОЛЖНА быть увеличена только если содержит обратно совместимые баг-фиксы. Определ

Версионность программного обеспечения RULIS – RuLIS

В мире программного обеспечения практически каждая программа имеет свою версию. На слуху Windows XP, 7, 8 и т.д. Версия может быть как числовой (версия TeX 3.14159265), отражающей порядковый номер очередного релиза (или сборки программы (Windows 8.1)) или буквенный, символизирующий изменения (Windows NT (New Technology)) или популяризирующий определенные события (OpenSuse Leap) и персоналии (FreeBSD 9. 0-RELEASE (Dennis M. Ritchie)).

Версии RULIS имеют порядковый номер (текущая версия 2), однако есть ряд особенностей. Автоматизация любого бизнес-процесса, пусть даже однотипного, в разных учреждениях протекает по-разному. Например, в одной лаборатории есть отделение микробиологии, а в другой нет. Поэтому в первой лаборатории часть статистических запросов и выборок учитывают специфику микробиологического отделения вообще и конкретного подразделения в частности, в то время как во второй лаборатории этих отчетов может не быть вообще. В результате версии программы вроде бы одни и те же, но функционально они отличаются. То есть в RULIS версия имеет скорее номинальный характер и отражает существенные изменения ядра и базовых вариантов пользовательского интерфейса. Такая ситуация является отражением нашей программной философии: каждому клиенту по своей уникальной собственной версии. То что надо одному, часто совершенно противоречит с нуждами другого.

Очередная клиентская версия RULIS стартует от наиболее полного и правильного набора функций и модулей.

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

Преимуществом такого подхода является то, что клиент всегда получает только своё обновление. А это ограждает от ошибок в изменениях других клиентов, а также от побочных эффектов при параллельных изменениях у других клиентов. Однако, за это приходится платить увеличением количества однотипно существующих веток исходных проектов. Но, на наш взгляд, игра стоит свеч.

Карпов П.В.

Путеводитель по программам для сравнения данных

Бесплатные решения    

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

В путеводитель вошли 10 программ, которые можно назвать во многом универсальными: они не привязаны к определенному сервису или приложению, позволяют выполнять вышеназванные (и менее специализированные) задачи не только через графический интерфейс, но и в режиме командной строки.

Критерии сравнения выглядят следующим образом:

  • Интерфейс: поддержка режимов отображения, сохранение сессий, возможности настройки панели инструментов, колонок
  • Функциональность текстового редактора, работа с исходным кодом
  • Методы слияния и синхронизации, возможность трехстороннего сравнения
  • Экспорт отчетов, создание патчей (diff)
  • Дополнительные функции: интеграция со сторонними приложениями, поддержка расширений, протоколов и др.

SmartSynchronize

Домашняя страница: http://www.syntevo.com/smartsynchronize/

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

Режимы сравнения представлены в приветственном окне программы. Помимо диалога выбора файлов, здесь возможен просмотр истории и выбор сохраненного профиля. Также в настройках (Preferences) настраиваются фильтры: файловые — для отсеивания файлов по названию и расширению, и фильтры директорий — позволяют составить список исключений.

Для сравнения файлов используется двухпанельный режим side-by-side с синхронной прокруткой содержимого обеих панелей. Условных обозначений в SmartSynchronize немного, но, благодаря соединительным линиям (linking lines), операции сравнения и слияния очень интуитивны. SmartSynchronize указывает, куда и в каком направлении будет добавлен участок из одного файла в другой. Вставка текста производится одним кликом, позволяя обойтись без контекстного меню.

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

В целом, SmartSynchronize гибко настраивается, но все настройки распределены по разным разделам меню, что требует некоторого привыкания. Не хватает режимов отображения, настроек панели инструментов.

В режиме сравнения директорий выводится список файлов и статус для каждого из них, в нижней части окна доступен предосмотр. Метод сравнения — по содержимому или только по размеру и времени — определяется в настройках Edit → Preferences. Количество информационных колонок (тип файла, дата) нельзя увеличить, хотя отключить имеющиеся можно.

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

Помимо вышеупомянутых, имеется дополнительный, трехсторонний метод слияния — 3-Way-Merge, который позволяет объединить различия между несколькими версиями файлов, причем каждый из трех документов можно редактировать независимо друг от друга.

Функции сравнения, несомненно, востребованы программистами при контроле версий. Поэтому в заключение стоит сослаться на альтернативное решение этой же компании — SmartCVS. Программа представляет собой CVS-клиент с интегрированным инструментарием SmartSynchronize.

Резюме. SmartSynchronize предлагает неплохой инструментарий для работы с файлами и директориями, местами не поддающийся настройке и не выходящий за рамки базовых возможностей.

[+] Трехстороннее слияние
[+] Удобный текстовый редактор
[−] Отсутствие документации
[−] Невозможность синхронизации удаленных каталогов и архивов

WinMerge

Домашняя страница: http://winmerge.org/

WinMerge — программа для сравнения и объединения файлов и каталогов в ОС Windows. Ее можно использовать как отдельный инструмент либо в связке с проектами. В WinMerge встроен текстовый редактор с поддержкой языков программирования, подсветкой и нумерацией строк.

Имеется два режима работы с данными, объединенных в диалог выбора файлов и папок. При сравнении доступны фильтры двух типов: фильтры файлов и строковые. Это позволяет использовать различные надстройки и оперировать регулярными выражениями, отсеивая необходимые типы данных при сравнении.

В режиме сравнения файлов в окне отображаются оба файла, в левой и правой части. Для удобной навигации по содержимому предусмотрена карта («Местоположения»). Строки, которые имеют различия, отмечены цветом, также с ними можно ознакомиться в панели «Отличия». Основные операции слияния доступны в разделе «Объединение».

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

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

WinMerge позволяет выполнять одни и те же задачи разными способами — в том числе, с помощью перетаскивания или через контекстное меню Проводника. Можно создавать проекты для быстрого доступа к данным и настройкам. WinMerge работает в режиме командной строки, также программу можно использовать в связке с системами контроля версий (TortoiseSVN, Visual Studio, Rational ClearCase и т. п.).

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

[+] Поддержка расширений
[+] Функциональный редактор
[+] Интеграция со сторонними приложениями
[−] Нет трехстороннего сравнения

Meld

Домашняя страница: http://meldmerge.org/

Meld — кроссплатформенная программа (OS X, Linux, Windows) для синхронизации файлов и директорий. С ее помощью осуществляется как двух-, так и трехстороннее сравнение. Прежде всего, инструментарий Meld будет полезен разработчикам, так как возможна интеграция с системами управления версиями: Git, Bazaar, Mercurial, Subversion и прочими.

Несмотря на поддержку нескольких платформ, приложение далеко не стабильно функционирует в Windows. Скажем, вкладки и окна не всегда открываются и закрываются корректно. Возможно, проблемы связаны с библиотекой PyGTK, входящей в инсталлятор. Запустить программу получилось не сразу и только от имени администратора. Ошибки возникают постоянно, в подтверждение — перечень текущих проблем.

В процессе сравнения файлов можно задействовать текстовый фильтр или поиск (поддерживается синтаксис regex). Предусмотрены подсветка синтаксиса (используется библиотека gtksourceview), нумерация строк, учет пробелов и другие опции, которые нужно активировать через настройки, так как по умолчанию они отключены. Вставки, изменения и конфликты в документе подсвечиваются, возможна быстрая навигация по списку изменений и экспорт в формате diff. Связь между файлами легко отследить с помощью соединительных линий и одним кликом произвести слияние нужных участков.

Сканирование файлов директорий работает очень медленно. Это связано с тем, что сравнение осуществляется по содержимому, а не по размеру и временно́й отметке. Проблема решается установкой флажка напротив соответствующей опции в настройках. Набор доступных колонок весьма ограничен: размер, дата модификации и разрешения. Хотя и можно воспользоваться файловым фильтром, просмотр длинного списка файлов все равно превращается в рутинный процесс: нельзя мгновенно остановить сканирование, свернуть дерево файлов, быстро переместиться к нужным элементам.

Разработчикам будет интересен третий режим работы приложения — Version Control View. Meld поддерживает интерфейс командной строки, поэтому предусмотрена интеграция со средами Git, Bazaar, Mercurial, Subversion и многим другими.

Резюме. Программа Meld зарекомендовала себя с хорошей стороны в среде Linux, чего нельзя сказать о функционировании в Windows. Нестабильная работа и неудобный интерфейс, отсутствие сессий, недостаточная гибкость настройки… С другой стороны, инструментарий программы неплох, а качественная адаптация Meld для Windows, возможно, лишь вопрос времени.

[+] Трехстороннее сравнение
[+] Поддержка систем контроля версий
[−] Медленная и нестабильная работа в Windows
[−] Неудобный и неинформативный интерфейс

Diffuse

Домашняя страница: http://diffuse.sourceforge.net

Diffuse —кроссплатформенный продукт для ОС Windows, OS X, Linux и BSD, по интерфейсу напоминающий Meld (в основе — библиотека PyGTK), но имеющий функциональные отличия. Заявлена интеграция с Bazaar, CVS, Darcs, Git, Mercurial, Monotone, RCS, Subversion и другими средами.

Продолжая сравнение с Meld: Diffuse характеризуется стабильностью, здесь нет внезапных зависаний. Доступна подробная документация, интерфейс переведен на русский язык. Однако сравнение директорий не входит в инструментарий, в программу заложены только функции сравнения файлов и их редактирования. В Diffuse можно обнаружить несколько режимов слияния: — двух-, трех- и многостороннее. Таким образом, источников сравнения может быть сколько угодно, вопрос лишь в быстродействии и удобстве. Касательно второго аспекта можно лишь сказать, что сессий здесь нет — соответственно, работа с большими проектами в Diffuse под вопросом.

Различия отмечаются цветом, сводка (Comparison Summary) доступна возле полосы прокрутки, для навигации по списку изменений предназначены кнопки на панели управления. Нумерация строк и подсветка синтаксиса с возможностью ручного переключения включены по умолчанию. В отличие от других подобных редакторов, в Diffuse нельзя сразу выделить произвольный участок текста, для этого необходимо дважды кликнуть по содержимому. В ином случае можно выделять текст и производить другие действия только построчно.

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

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

Резюме. Функциональность такого рода востребована при слиянии нескольких текстовых документов. Программа лишена недостатков, присущих ближайшему аналогу Diffuse — Meld. Но, к сожалению, сравнение директорий и отчетность остались за бортом.

[+] Удобная работа со строками
[+] Интеграция с CVS
[+] Многооконное слияние
[−] Отсутствие сессий
[−] Маркировка изменений не интуитивна

Perforce P4 Merge

Домашняя страница: http://www. perforce.com/product/components/perforce-visual-merge-and-diff-tools

P4Merge нечасто упоминается среди других бесплатных продуктов (например, по сравнению с WinMerge). К тому же отыскать эту программу среди других компонентов комплекса Perforce непросто. Perforce — это коммерческая кроссплатформенная система управления версиями, обладающая широкой сферой применения, не в последнюю очередь за счет плагинов и интеграции с различными продуктами (IntelliJ IDEA, Autodesk 3D Studio Max, Maya, Adobe Photoshop, Microsoft Office, Eclipse, emacs и др.). Впрочем, P4 Merge может работать автономно от сервера Perforce, достаточно скачать программу с сайта разработчика для ее бесплатного использования.

Основные операции — это сравнение файлов (Diff) и слияние (Merge). Редактор документов предельно прост: есть нумерация, но нет подсветки синтаксиса. Редактировать файлы в двух панелях «на лету» нельзя, нужно выбрать одну из панелей, включить режим редактирования и затем сохранить изменения. Различия маркируются, для перехода между ними предназначены кнопки навигации. Ориентироваться по изменениям проще всего с помощью соединительных линий. В целом, интерфейс P4 Merge недостаточно удобен: в нем нет сводки по различиям, статистика по изменениям представлена суммарной цифрой, без детализации, для просмотра изменений нужно использовать ручное обновление.

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

Резюме. Конечно, в P4 Merge множество функциональных ограничений, особенно если сравнивать с платными продуктами. Приложение можно рассматривать сугубо как дополнение к серверу Perforce. Возможно, в поисках нужного инструментария следует обратить внимание и на другие компоненты, доступные на сайте разработчика.

[+] Диаграмма слияния в режиме Merge
[−] Слабая функциональность
[−] Невозможность редактирования на лету
[−] Отсутствие команд слияния

Управление версиями и библиотеки .NET | Документы Microsoft

  • 4 минуты на чтение

В этой статье

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

Основные изменения

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

Номера версий

В библиотеке .NET есть много способов указать версию. Эти версии самые важные:

Пакет NuGet версии

Версия пакета NuGet отображается на NuGet.org, диспетчере пакетов NuGet Visual Studio, и добавляется в исходный код при использовании пакета.Версия пакета NuGet — это номер версии, который пользователи обычно видят, и они будут ссылаться на него, когда будут говорить о версии библиотеки, которую они используют. Версия пакета NuGet используется NuGet и не влияет на поведение во время выполнения.

   1.0.0-alpha1 
  

Идентификатор пакета NuGet в сочетании с версией пакета NuGet используется для идентификации пакета в NuGet. Например, Newtonsoft.Json + 11.0,2 . Пакет с суффиксом является предварительным пакетом и имеет особое поведение, которое делает его идеальным для тестирования. Для получения дополнительной информации см. Предварительные пакеты.

Поскольку версия пакета NuGet является наиболее заметной для разработчиков версией, рекомендуется обновить ее с помощью семантического управления версиями (SemVer). SemVer указывает на важность изменений между выпусками и помогает разработчикам принять обоснованное решение при выборе версии для использования. Например, переход от 1.0 к 2.0 указывает на потенциально критические изменения.

✔️ РАССМАТРИВАЙТЕ использование SemVer 2.0.0 для версии вашего пакета NuGet.

✔️ ОБЯЗАТЕЛЬНО используйте версию пакета NuGet в общедоступной документации, так как это номер версии, который обычно видят пользователи.

✔️ НЕОБХОДИМО включать суффикс предварительного выпуска при выпуске нестабильного пакета.

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

Монтажная версия

Версия сборки — это то, что среда CLR использует во время выполнения для выбора версии сборки для загрузки. Выбор сборки с использованием управления версиями применяется только к сборкам со строгим именем.

   1.0.0.0 
  

.NET Framework CLR требует точного совпадения для загрузки сборки со строгим именем. Например, Libary1, Version = 1.0.0.0 был скомпилирован со ссылкой на Newtonsoft.Json, Version = 11.0.0.0 . .NET Framework загрузит только эту точную версию 11.0.0.0 . Чтобы загрузить другую версию во время выполнения, необходимо добавить перенаправление привязки в.Файл конфигурации приложения .NET.

Строгое именование в сочетании с версией сборки обеспечивает строгую загрузку версии сборки. Хотя строгое именование библиотеки имеет ряд преимуществ, оно часто приводит к исключениям во время выполнения, когда сборка не может быть найдена, и требует исправления перенаправления привязки в app.config или web.config . В .NET Core загрузка сборок более расслаблена. Среда выполнения .NET Core автоматически загружает сборки с более высокой версией во время выполнения.

✔️ РАССМАТРИВАЙТЕ включение только основной версии в AssemblyVersion.

например Библиотека 1.0 и библиотека 1.0.1 имеют AssemblyVersion 1.0.0.0 , а Library 2.0 — AssemblyVersion 2.0.0.0 . Когда версия сборки меняется реже, уменьшается количество перенаправлений привязки.

✔️ РАССМАТРИВАЙТЕ синхронизацию основного номера версии AssemblyVersion и версии пакета NuGet.

AssemblyVersion включается в некоторые информационные сообщения, отображаемые для пользователя, например имя сборки и имена типов сборки в сообщениях об исключениях.Поддержание взаимосвязи между версиями дает разработчикам больше информации о том, какую версию они используют.

❌ НЕ ИМЕЙТЕ фиксированной версии AssemblyVersion.

Хотя неизменяемая версия AssemblyVersion позволяет избежать перенаправления привязки, это означает, что в глобальном кэше сборок (GAC) может быть установлена ​​только одна версия сборки. Кроме того, приложения, которые ссылаются на сборку в GAC, сломаются, если другое приложение обновит сборку GAC с критическими изменениями.

Версия файла сборки

Версия файла сборки используется для отображения версии файла в Windows и не влияет на поведение во время выполнения. Установка этой версии не является обязательной. Он отображается в диалоговом окне «Свойства файла» в проводнике Windows:

   11.0.2.21924 
  

✔️ РАССМАТРИВАЙТЕ включение номера сборки непрерывной интеграции в качестве версии AssemblyFileVersion.

Например, вы строите версию 1.0.0 вашего проекта, а номер сборки непрерывной интеграции — 99, поэтому ваш AssemblyFileVersion — 1.0.0.99.

✔️ Используйте формат Major.Minor.Build.Revision для версии файла.

Хотя версия файла никогда не используется .NET, Windows ожидает, что версия файла будет в формате Major. Minor.Build.Revision . Если версия не соответствует этому формату, появляется предупреждение.

Сборочная информационная версия

Информационная версия сборки используется для записи дополнительной информации о версии и не влияет на поведение во время выполнения.Установка этой версии не является обязательной. Если вы используете Source Link, эта версия будет установлена ​​при сборке с версией пакета NuGet и версией системы управления версиями. Например, 1.0.0-beta1 + 204ff0a включает хеш фиксации исходного кода, из которого была создана сборка. Для получения дополнительной информации см. Ссылка на источник.

   Быстрая коричневая лисица перепрыгнула через ленивую собаку. 
  

Примечание

Более старые версии Visual Studio выдают предупреждение о сборке, если эта версия не соответствует формату Major.Minor.Build.Revision . Предупреждение можно проигнорировать.

❌ ИЗБЕГАЙТЕ самостоятельной установки информационной версии сборки.

Разрешить SourceLink автоматически создавать версию, содержащую метаданные NuGet и системы управления версиями.

Версионирование

в системе, управляемой событиями, Грег Янг

  • Домой
  • Мои книги
  • Обзор ▾
    • Рекомендации
    • Награды Choice Awards
    • Жанры
    • Подарки
    • Списки
    • Изучите
    • Gen News & Interviews
    • Gen News & Interviews
      76
    • Бизнес
    • Детский
    • Кристиан
    • Классика
    • Комиксы
    • Электронные книги
    • Фэнтези
    • Художественная литература
    • Графические романы
    • Историческая музыка Художественная литература
    • Историческая музыка История
    • Тайна
    • Поэзия
    • Психология
    • Романтика
    • Наука
    • Научная фантастика
    • Самопомощь
    • Спорт
    • Молодежь
    • Путешествия
    • 011
    • Сообщество ▾
      • Группы
      • Обсуждения
      • Цитаты
      • Спросить автора
    • Войти
    • Присоединиться
    Зарегистрироваться
    • Профиль
    • Посмотреть профиль
    • Друзья
    • Группы
    • Обсуждения
    • Комментарии
    • Задание по чтению
    • Kindle Notes & Highlights
    • Цитаты
    • Любимые жанры
    • Настройки учетной записи
    • Помощь
    • 1
    • Мои книги
    • Обзор ▾
      • Рекомендации
      • Choice Awards
      • Жанры
      • Подарки
      • Новые выпуски
      • Списки
      • Новости и интервью

      Бизнес

    • 15 Искусство

    Бизнес 2515 06

  • Детская
  • Христианская
  • Классика
  • Комиксы
  • Поваренные книги
  • Электронные книги
  • Фэнтези
  • Художественная литература
  • Графические романы
  • Историческая фантастика
  • История Ужасы Политика управления версиями

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

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

    Группа глобальных разработчиков PostgreSQL поддерживает основную версию в течение 5 лет. после его первоначального выпуска.После пятилетнего юбилея основная версия будет иметь последний второстепенный выпуск, содержащий какие-либо исправления, и будет считаться с окончанием срока службы (EOL) и больше не поддерживается.

    Нумерация версий

    Начиная с PostgreSQL 10, основная версия обозначается увеличением первая часть версии, например 10–11. До PostgreSQL 10 основная версия обозначается увеличением либо первой, либо второй части версии число, например 9,5–9,6.

    Незначительные выпуски нумеруются путем увеличения последней части номера версии.Начиная с PostgreSQL 10, это вторая часть номера версии, например От 10,0 до 10,1; для более старых версий это третья часть версии число, например С 9. 5.3 по 9.5.4.

    Обновление

    Мы всегда рекомендуем всем пользователям запускать последнюю доступную дополнительную версию релиз для любой основной версии, которая используется.

    Основные версии обычно меняют внутренний формат системных таблиц и данных файлы. Эти изменения часто бывают сложными, поэтому мы не поддерживаем обратное совместимость всех хранимых данных.Дамп / перезагрузка базы данных или использование требуется модуль pg_upgrade для крупных обновлений. Мы также рекомендуем прочитать модернизация раздела основного версия, до которой вы планируете перейти.

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

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

    Релизы

    Версия Текущий несовершеннолетний Поддерживается Первый выпуск Заключительный выпуск
    13 13.1 Есть 24 сентября 2020 13 ноября 2025 г.
    12 12,5 Есть 3 октября, 2019 14 ноября 2024 г.
    11 11,10 Есть 18 октября 2018 9 ноября 2023 г.
    10 10,15 Есть 5 октября 2017 г. 10 ноября 2022 г.
    9.6 9. 6.20 Есть 29 сентября 2016 11 ноября 2021 г.
    9,5 9.5.24 Есть 7 января 2016 11 февраля 2021 г.
    9,4 9.4.26 18 декабря 2014 г. 13 февраля 2020
    9.3 9.3.25 9 сентября 2013 г. 8 ноября 2018
    9,2 9.2.24 10 сентября 2012 г. 9 ноября 2017
    9,1 9.1.24 12 сентября 2011 г. 27 октября 2016 г.
    9.0 9.0.23 20 сентября 2010 г. 8 октября 2015 г.
    8,4 8.4.22 1 июля 2009 г. 24 июля 2014 г.
    8,3 8.3.23 4 февраля 2008 г. 7 февраля 2013 г.
    8,2 8.2,23 5 декабря 2006 г. 5 декабря 2011 г.
    8,1 8.1.23 8 ноября 2005 г. 8 ноября 2010 г.
    8,0 8.0.26 19 января 2005 г. 1 октября 2010 г.
    7,4 7.4.30 17 ноября 2003 г. 1 октября 2010 г.
    7.3 7.3.21 27 ноября 2002 г. 27 ноября 2007 г.
    7,2 7.2.8 4 февраля 2002 г. 4 февраля 2007 г.
    7,1 7.1.3 13 апреля 2001 г. 13 апреля 2006 г.
    7,0 7.0,3 8 мая 2000 г. 8 мая 2005 г.
    6,5 6.5.3 9 июня 1999 г. 9 июня 2004 г.
    6,4 6.4.2 30 октября 1998 г. 30 октября 2003 г.
    6,3 6.3.2 1 марта 1998 г. 1 марта 2003 г.

    Управление версиями данных | Стэнфордские библиотеки

    Определение

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

    Именование версий

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

    • Добавьте номер версии, например «v1», «v2» или «v2.1».
    • Включите информацию о статусе файла, например "draft" или "final", если вы не введете в заблуждение такие имена, как "final2" или "final_revised".
    • Включите информацию о том, какие изменения были внесены, например "обрезано" или "нормализовано".

    Простое управление версиями файлов

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

    • Не нужно держать много разных версий.
    • Над файлами работает только один человек.
    • Доступ к файлам всегда осуществляется из одного места.

    В каталоге ниже показаны несколько версий макета веб-страницы под названием DMSSiteHome. jpg. Обратите внимание на использование v1, v2 и т. Д. Для обозначения версий. Обозначения «FISH» и «SandC» обозначают различные изображения, которые были заменены местами в некоторых версиях, то есть основные изменения, которые были сделаны.

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

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

    Простые опции программного обеспечения

    Каждый в Стэнфорде имеет доступ к двум облачным сервисам, которые предлагают функции контроля версий: Google Drive и Box.

    Google Диск
    Программное обеспечение для обработки текстов, таблиц и презентаций

    Drive автоматически создает версии по мере редактирования.

    • Каждый раз, когда вы редактируете файлы, созданные на Google Диске, новые версии сохраняются по мере использования.
    • Информация о версии включает информацию о том, кто редактировал файл, а также дату и время создания новой версии.
    • Вы также можете увидеть, какие изменения были внесены от одной версии к другой (или между текущей версией и любой более старой версией), и вернуться к предыдущей версии в любое время.

    Плюсы: Функция редактирования в реальном времени означает, что Google Диск отлично подходит для совместной работы над файлами с несколькими людьми. А поскольку файлы находятся на Google Диске, они доступны откуда угодно.

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

    Подробнее: Узнайте больше об использовании Google Диска для Стэнфорда.

    Стэнфордский бокс

    Stanford Box создает и отслеживает версии ваших файлов за вас.

    • С помощью Box можно хранить и управлять версиями любых документов.
    • Функция комментариев позволяет указать изменения, внесенные между версиями.
    • Документами можно поделиться с другими, и Box будет отслеживать, кто и когда загружал или обновлял каждый файл.

    Плюсы: Box позволяет автоматически синхронизировать папки на рабочем столе с вашей учетной записью Box. Файлы Microsoft Excel, Word и PowerPoint, а также документы и электронные таблицы Google можно редактировать непосредственно в интерфейсе Box.

    Минусы: Нет редактирования в реальном времени, как Google Drive.

    Надстройка: Надстройка Box Edit позволяет запускать локальное редактирование любого типа файла из вашей учетной записи Box.При сохранении файла автоматически создается новая версия в вашей учетной записи Box.

    Подробнее: Узнайте больше об использовании Stanford Box.

    Расширенные возможности ПО

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

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

    Умный способ продавать информацию

    Вкратце об идее

    В 1986 году Nynex выпустила первую электронную телефонную книгу - компакт-диск, содержащий все телефонные списки для района Нью-Йорка. По цене 10 000 долларов за копию компания продала компакт-диски ФБР, IRS и другим крупным коммерческим и правительственным организациям. Почувствовав прекрасную возможность для бизнеса, руководитель проекта Nynex Джеймс Брайант ушел, чтобы основать свою собственную компанию Pro CD.Его целью было создание электронного каталога, охватывающего все Соединенные Штаты.

    Телефонные компании, опасаясь атаки на свои прибыльные желтые страницы, отказались лицензировать цифровые копии своих списков на Pro CD. Но это не остановило Брайанта. Он поехал в Пекин и нанял китайских рабочих - за 3,50 доллара в день - чтобы они набирали на компьютерах все записи из каждой телефонной книги США. Полученная база данных, содержащая более 70 миллионов телефонных номеров, была использована для создания мастер-диска, который, в свою очередь, был использован для создания сотен тысяч копий.Компакт-диски, производство которых стоило меньше доллара каждый, продавались за сотни долларов, что приносило Pro CD неплохую прибыль.

    Но бум CD-телефонных книг был недолгим. Привлеченные, казалось бы, сильным потенциалом прибыли, такие конкуренты, как Digital Directory Assistance и American Business Information, поспешили выпустить на рынок конкурирующие продукты, содержащие, по сути, ту же информацию. Поскольку их продукты были неотличимы друг от друга, компании были вынуждены конкурировать только по цене. Неудивительно, что цены упали.Вскоре каталоги для компакт-дисков стали продаваться со скидкой в ​​ящиках с программным обеспечением по несколько долларов. Дорогой и высокоприбыльный продукт всего за несколько месяцев до этого, телефонная книга на компакт-дисках превратилась в дешевый товар.

    Быстрый рост и даже более быстрое падение телефонных справочников на компакт-дисках является предостережением для поставщиков информационных продуктов, особенно тех, которые продаются в цифровой форме. Это показывает, что так называемая новая экономика все еще подчиняется старым законам экономики. На свободном рынке, когда несколько компаний понесли затраты, необходимые для создания недифференцированного продукта, конкурентные силы обычно приводят цену продукта к его предельной стоимости - стоимости производства дополнительной копии.А поскольку предельные затраты на воспроизведение информации, как правило, очень низкие, цена информационного продукта, если его оставить на рынке, также будет низкой. То, что делает информационные продукты экономически привлекательными, - их низкая стоимость воспроизведения, - также делает их экономически опасными.

    Многие производители информации совершают ошибку, полагая, что их продукты не подпадают под действие экономических законов, регулирующих более материальные товары. Но, как выяснил Pro CD, это не так.Хотя информационные товары имеют необычную экономику производства, они, тем не менее, подвержены влиянию тех же рыночных и конкурентных сил, которые определяют судьбу любого продукта. И их успех также зависит от традиционных навыков управления продуктами: четкого понимания потребностей клиентов, достижения подлинной дифференциации, а также разработки и реализации проницательной стратегии позиционирования и ценообразования.

    Опасная экономика информации

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

    Резкий перекос в сторону постоянных затрат - не единственное, что отличает структуру затрат на информационные товары. Постоянные затраты и сами переменные затраты имеют необычные характеристики. В постоянных затратах, как правило, преобладают невозвратные затраты - затраты, которые невозможно возместить в случае остановки производства. Если вы инвестируете в новое офисное здание или фабрику, а позже решите, что они вам не нужны, вы можете возместить часть своих постоянных затрат, продав здание. Но если ваш фильм провалится, вы, вероятно, не сможете продать сценарий или декорации, а если ваш компакт-диск окажется бесполезным, он окажется в стойках для вырезок по цене 4,95 доллара.

    Переменные затраты на производство информации также имеют уникальную особенность: удельные затраты на создание дополнительной копии информационного продукта обычно не увеличиваются, даже если делается очень много копий. Другими словами, у производителей информации мало ограничений по мощности, что сильно отличается от ситуации, с которой сталкивается большинство производителей.Если, например, продажи микрочипов вырастут, Intel в какой-то момент потребуется построить новое дорогостоящее производственное предприятие, чтобы удовлетворить дополнительный спрос. А если продажи самолетов увеличатся, Boeing придется вложить значительные средства в новые заводы, оборудование и людей. Когда эти и другие традиционные производители достигают предела своей существующей мощности, стоимость производства дополнительной единицы возрастает. Этого не происходит с большинством информационных продуктов, которые можно воспроизводить с высокой степенью автоматизации по очень низкой цене.Если вы можете сделать одну копию, вы можете сделать миллион копий или десять миллионов копий примерно по той же цене за единицу.

    Из-за своей структуры затрат информационные продукты предлагают огромную экономию на масштабе: чем больше вы производите, тем ниже ваши средние издержки производства. Вот почему Microsoft, доминирующая в сфере операционных систем для персональных компьютеров и бизнес-приложений, имеет валовую прибыль в размере 92%. Но у структуры затрат есть и обратная сторона. Поскольку фиксированные затраты являются одновременно большими и невозвратными, компании, не занимающие доминирующего положения на рынке, могут оказаться вовлеченными в разрушительную ценовую войну.Если конкуренция вынуждает компанию снизить цены до уровня, близкого к предельным издержкам производства - как это было в случае с издателями телефонных книг на компакт-дисках, - эта компания никогда не сможет окупить свои большие авансовые инвестиции. Со временем его ждет экономическая гибель. То, что экономисты называют абсолютно конкурентным рынком, представляет собой сценарий катастрофы для производителей информации.

    Опасности, присущие экономике производства информации, становятся еще более очевидными, когда информация производится в цифровом виде.Копии информации в цифровой форме, такие как компакт-диски или цифровые видеодиски, намного дешевле воспроизводить, чем аналоговые или печатные копии. Подумайте об энциклопедиях. Печать набора энциклопедии может стоить более ста долларов. Изготовление CD-ROM из того же набора стоит копейки. За счет снижения переменных затрат цифровое воспроизведение еще больше усиливает перекос в сторону постоянных затрат.

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

    Многие комментаторы удивились количеству бесплатной информации в Интернете, но для таких экономистов, как мы, это не удивительно. Общая информация, протекающая через киберпространство - номера телефонов, новости, цены на акции, карты и т. Д. - просто продается по предельной цене: нулю. (См. Вставку «Логика бесплатной версии.”)

    Связывание цены со значением

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

    Но какой клиент? Ценность информации может сильно различаться от одного человека к другому.Спекулянт на фондовом рынке будет гораздо больше ценить котировки акций, чем долгосрочный инвестор, который покупает и держит. «Опытный пользователь» компьютера будет ценить последнее обновление операционной системы гораздо больше, чем средний домашний пользователь. И руководитель фармацевтической компании, вероятно, будет больше ценить текст последних постановлений FDA, чем фармацевт, который, в свою очередь, будет ценить его больше, чем студент с подготовкой. Информация никогда не имеет одинаковой ценности для каждого потенциального клиента.

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

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

    С помощью управления версиями клиенты раскрывают ценность информации и то, сколько они готовы за нее платить.

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

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

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

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

    Множество версий управления версиями

    В прошлом версии информационных продуктов обычно основывались на сроках или, точнее, на задержке. Для почти любого типа информации одни люди всегда будут более стремиться заполучить ее, чем другие.Вот почему нужно выпускать книги в твердом переплете перед выпуском книг в мягкой обложке и показывать фильмы в кинотеатрах перед записью на пленку. Задержка также часто является хорошей основой для версий цифровой информации. PAWWS Financial Network, например, предлагает две версии своей системы учета портфеля, одну за 8,95 долларов в месяц, а другую за 50,00 долларов. Какая разница? Недорогой сервис использует котировки акций с задержкой на 20 минут для расчета стоимости портфеля, тогда как премиальный сервис использует котировки в реальном времени.Эти 20 минут очень ценны для одной группы клиентов компании.

    Но с цифровой информацией задержка - только одно из многих возможных измерений управления версиями. Просто подумайте о большом разнообразии способов дифференциации цифровых продуктов сегодня:

    Удобство.

    Ограничение времени или места, в котором клиент может получить доступ к информации, или ограничение продолжительности доступа, часто является хорошим способом заставить покупателей раскрыть ценность, которую они придают информации.Чем больше потребителю нужна информация, тем больше свободы он хочет получить. America Online, например, предлагает различные ежемесячные планы членства в зависимости от удобства. Стандартный план с неограниченным доступом стоит 21,95 доллара. Альтернативный план стоит 4,95 доллара США, но позволяет использовать только три часа времени подключения - если вы используете больше, вы платите высокую почасовую надбавку. Предлагая более дешевую версию, AOL может привлечь клиентов, у которых есть лишь ограниченная потребность в ее услугах - они могут использовать ее, например, только для электронной почты, - при этом поддерживая гораздо более высокие цены для клиентов, которые больше от нее зависят.Аналогичным образом, некоторые компании, работающие с базами данных в Интернете, предлагают подписку со скидкой для пользователей, которые соглашаются входить в систему только в нерабочее время.

    Полнота.

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

    Многие газеты и журналы используют полноту в качестве основы для создания версий своих онлайн-продуктов. Например, New York Times и BusinessWeek, раздают содержание своих текущих выпусков в Интернете, но они продают доступ к своим обширным архивам. Поскольку в Интернете так много источников новостей, эти публикации знают, что единственный способ привлечь читателей - и, в свою очередь, рекламодателей - это поделиться своим самым свежим содержанием.Но они могут взимать плату за свои прошлые статьи, потому что сегмент клиентов, которые ценят эти статьи, - писатели, исследователи и т.п. - не имеют для них другого практического источника.

    Манипуляции.

    Еще одним важным параметром, который может лечь в основу управления версиями, является способность пользователя хранить, дублировать, печатать или иным образом манипулировать информацией. Еще во времена программного обеспечения, защищенного от копирования, такие компании, как Borland, продавали две версии своих программ: одна была недорогой и ее нельзя было скопировать, а другая - дорогой и могла.Многие поставщики информации сегодня используют аналогичные ограничения на манипулирование информацией, чтобы различать свои продукты. Lexis-Nexis, например, взимает дополнительную плату с пользователей, которые хотят распечатать или загрузить информацию, а не просто просмотреть ее на экране.

    Сообщество.

    Чаты и доски объявлений, переполняющие Интернет, демонстрируют, что многие люди ценят возможность обсудить информацию с другими людьми, имеющими схожие интересы. Ограничивая возможность пользователей присоединяться к онлайн-сообществу, провайдеры могут выявлять клиентов, которые ценят сообщество в дополнение к информации.

    Silicon Investor, популярный веб-сайт для инвесторов в высокотехнологичные отрасли, предлагает сотни форумов по отдельным компаниям. Это позволяет любому бесплатно читать сообщения, размещенные на досках. Но если вы хотите отправить сообщение - или отправить личное электронное письмо другому члену - вы должны заплатить ежегодный членский взнос в размере 100 долларов или пожизненный взнос в размере 200 долларов. Предоставляя бесплатный доступ к информации на сайте, Silicon Investor привлекает больше людей к посещению сайта, что позволяет ему взимать больше за рекламу.Взимая дополнительную плату за размещение сообщений, он зарабатывает деньги на клиентах, которые хотят больше, чем читать.

    Раздражение.

    Люди, которые платят членский взнос Silicon Investor, также получают дополнительное преимущество: у них есть возможность отключить рекламу, размещаемую на сайте. Некоторые пользователи Интернета ценят возможность избежать раздражения от рекламы в Интернете, и они готовы доплачивать за это.

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

    Скорость.

    Распространенная стратегия производителей программного обеспечения - продавать версии своих программ, которые работают с разной скоростью. Наиболее серьезные пользователи, естественно, тянутся к более быстрым версиям, даже если им приходится платить за них намного больше; большая эффективность перевешивает более высокую стоимость. Например, компания Wolfram Research продавала две версии Mathematica - программы для выполнения символьной, графической и числовой математики.В дорогой профессиональной версии для ускорения вычислений использовался компьютерный процессор с плавающей запятой. Более дешевая студенческая версия отключила процессор, что значительно замедлило вычисления.

    Интересно, что Вольфраму пришлось написать больше кода, чтобы версия для студентов работала без процессора с плавающей запятой. Таким образом, недорогая версия стоит дороже, чем премиум-версия. Но предложение низкоскоростной версии имело экономический смысл, поскольку она расширяла общую сеть пользователей, делая профессиональный продукт еще более ценным для опытных пользователей, таких как профессора, которые хотели делиться файлами со своими учениками.(См. Вставку «Версии с вычетом стоимости».)

    Обработка данных.

    Различные возможности обработки данных часто могут быть встроены в информационный продукт, что позволяет некоторым пользователям выполнять сложные задачи. Например, H&R Block предлагает стандартную версию своего программного обеспечения Kiplinger’s TaxCut людям, которым просто нужен автоматический способ заполнения налоговых форм. Но он также предлагает более дорогую премиальную версию TaxCut Deluxe, которая включает в себя ряд других инструментов - например, в ней есть функция аудита, которая проверяет вашу декларацию и выделяет записи, которые могут привлечь внимание агентов IRS.

    Пользовательский интерфейс.

    Изменение способа доступа клиентов к информации может быть особенно хорошей основой для управления версиями. Искушенные пользователи часто будут готовы потратить время на изучение сложного интерфейса, который предлагает, например, мощные возможности поиска. (А их предварительные затраты времени уменьшат вероятность перехода на конкурирующий продукт позже.) Более случайным пользователям потребуется более простой и интуитивно понятный интерфейс, даже если его возможности являются элементарными.Программное обеспечение Adobe Photoshop для обработки фотографических изображений за 600 долларов имеет сложный интерфейс, предназначенный для профессиональных дизайнеров. Но компания также продает более дешевый продукт PhotoDeluxe за 50 долларов, который имеет урезанный интерфейс, предназначенный для домашних пользователей. С PhotoDeluxe вы не можете так много сделать, но вам также не нужно тратить много времени на изучение того, как им пользоваться.

    Разрешение изображения.

    Многие цифровые продукты содержат изображения, и разные пользователи по-разному оценивают качество изображений.Магазин стоковых фотографий PhotoDisk, например, предлагает свои фотографии в Интернете в различных разрешениях. Профессиональные дизайнеры, создающие глянцевые брошюры, покупают изображения с высоким разрешением по 49,95 доллара за штуку, но производители информационных бюллетеней соглашаются на изображения с более низким разрешением по 19,95 доллара. Мириады порнографии сайты в Интернете часто предлагают некачественные «эскизы» своих фотографий бесплатно, но плату за способность к копии с высоким разрешением просмотра и загрузки для.

    Поддержка.

    Некоторые поставщики информации предлагают разные уровни технической поддержки по разным ценам.Вы можете, например, бесплатно загрузить веб-браузер Netscape через Интернет или за 40 долларов стать подписчиком и получить не только программное обеспечение, но и руководство по эксплуатации, а также один бесплатный телефонный звонок специалисту службы поддержки. Однако использование технической поддержки в качестве основы для управления версиями может быть непросто. Выделение дополнительных преимуществ поддержки может вызвать у клиентов вопросы о надежности продукта. А невыполнение обещаний о поддержке может превратиться в кошмар по связям с общественностью.

    Помимо использования по отдельности, можно также комбинировать различные аспекты управления версиями. Dialog, крупный поставщик информации в режиме онлайн, создает версии своей базы данных, доступной через Интернет, изменяя как свой пользовательский интерфейс, так и его полноту. Версия высокого класса DialogWeb предназначена для корпоративных исследователей и других специалистов в области информации. Он имеет мощный, но сложный интерфейс, позволяющий выполнять сложный поиск и предлагающий доступ ко всему диапазону контента Dialog.Другой продукт, DataStar, намного дешевле и менее мощный, предлагая подмножество полной базы данных Dialog с упрощенным интерфейсом. DataStar хорошо подходит для обычных пользователей, но из-за своих ограничений он не отвлекает профессиональных пользователей от DialogWeb.

    Механика управления версиями

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

    Kurzweil Applied Intelligence, например, предлагает множество версий своего программного обеспечения для распознавания голоса. Курцвейл понимает, что распознавание голоса имеет множество различных приложений и что они сильно различаются по ценности, которую они предоставляют пользователям.Студентов колледжа привлечет простой продукт, который позволит им создавать документы, разговаривая в свои компьютеры. Но с учетом их ограниченного бюджета они купят такой товар только в том случае, если его цена невысока. Врачи же будут привлечены к очень сложному продукту, способному понимать специализированную лексику, а поскольку такой продукт сэкономит им много времени, они будут хорошо за него платить.

    Чтобы уловить различные уровни ценности для клиентов, Kurzweil предлагает семь различных версий своего программного обеспечения, которые различаются, главным образом, размером и специализацией распознаваемых словарей.Лучшая версия VoicePad Pro стоимостью 8000 долларов для хирургов в 100 раз дороже, чем продукт начального уровня для студентов VoicePad Pro за 79 долларов. Между этими крайностями находятся версии, предназначенные для домашних пользователей, бизнес-пользователей и юристов, все по разной цене. Поскольку потребности каждого сегмента уникальны, маловероятно, что покупатели будут сбиты с толку различными вариантами. Кроме того, маловероятно, что клиенты, ориентированные на дорогие версии, выберут более дешевые версии.Например, версия, не способная распознавать юридические термины, не будет иметь большой ценности для поверенного. То, как покупатели определяют ценность продукта, фиксирует их в предполагаемом сегменте. (См. Таблицу «Один продукт, много версий».)

    Один продукт, множество версий Признавая, что ее программное обеспечение для распознавания голоса можно использовать по-разному, Kurzweil Applied Intelligence предлагает широкий спектр версий по очень разным ценам.

    Для других компаний более ограниченный набор возможностей имеет смысл.Intuit, например, предлагает только две версии своего популярного программного обеспечения Quicken для управления личными финансами. В отличие от продукта Курцвейла, Quicken не имеет большого разнообразия приложений - юрист балансирует свою чековую книжку почти так же, как врач, поэтому необходимость выбирать из широкого диапазона версий просто сбивает с толку клиентов. Ограничивая количество версий, Intuit получает и другие преимущества. Поддержка клиентов остается простой, и пользователи могут обмениваться файлами с меньшим риском несовместимости.

    Но, предлагая только один продукт высокого уровня и одну версию низкого уровня, Intuit, как и многие информационные компании, может упустить важную возможность. Стратегия, состоящая из двух вариантов, хотя и заманчива своей простотой, игнорирует психологический феномен, известный как «отвращение к крайностям». Покупая товары, потребители обычно стараются избегать крайнего выбора: они опасаются, что заплатят слишком много, если выберут самую дорогую версию, и опасаются, что получат слишком мало, если выберут самую дешевую.Вместо этого они склоняются к компромиссному выбору - версии в середине линейки продуктов. Как и Златовласка, им не нужны «слишком большие» или «слишком маленькие» - им нужен продукт, который «в самый раз».

    Предлагая три версии продукта, компании могут увести покупателей от продукта начального уровня к более дорогому среднему предложению. Эффект может быть весьма драматичным. В одном эксперименте исследователи предлагали покупателям разные наборы микроволновых печей. Когда выбор стоял между духовкой без излишеств по 109 долларов.99 и модель среднего уровня по цене 179,99 долларов, клиенты выбирали духовку среднего уровня в 45% случаев. Когда к набору выбора была добавлена ​​высококлассная духовка за 199,99 долларов, люди выбирали духовку среднего класса в 60% случаев. Существование этого явления является причиной того, что McDonald’s предлагает свои напитки трех размеров, а не только двух.

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

    Оптимальное количество предлагаемых версий, как мы видели, редко бывает однозначным.Лучший способ принять решение - это часто метод проб и ошибок. Поскольку создание новых версий информационного продукта обычно обходится недорого, компания может проводить множество экспериментов. Недавно, например, компания Information America, предоставляющая публичные записи банкам, правительственным учреждениям и юридическим бюро, пыталась решить, предлагать ли свои услуги пользователям, работающим дома. Компания считала, что спрос будет достаточно высоким, чтобы оправдать выход на новый рынок, но опасалась, что цена, достаточно низкая для привлечения домашних пользователей, может свести на нет ее продажи профессионалам.Чтобы разобраться в проблеме, компания создала дочернюю компанию KnowX, чтобы предложить домашним пользователям доступ к подмножеству своих баз данных через Интернет. Оказалось, что предложение с ограниченным доступом было очень популярным - и не привлекало профессионалов высокого класса. Благодаря современным мощным технологиям распространения информации все больше и больше компаний, таких как Information America, находят легким исследовать сегменты рынка, которые раньше были недоступны.

    Старые идеи, новые приложения

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

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

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

    Простое управление версиями 0,1

    Простое управление версиями 0,1

    Сводка

    Учитывая номер версии MAJOR.MINOR, увеличьте:
    1. ОСНОВНАЯ версия при внесении несовместимых изменений API.
    2. MINOR версии, когда вы вносите обратно совместимые изменения.

    Введение

    Во-первых, я хочу поблагодарить Semantic Versioning за то, что он дал миру инструмент для управления совместимостью в зависимостях программного обеспечения.

    SemVer рассматривает выпуски с новыми функциями отдельно от выпусков с исправлениями ошибок. Для управления зависимостями это различие не важно: важно только обратная совместимость. «Исправлена ​​ошибка» и «Добавлена ​​функция» оба являются примерами «улучшения программного обеспечения» при условии, что вы ничего не сломали.

    Простая спецификация управления версиями (SimVer)

    SimVer - это тот же SemVer, но со следующими модификациями:

    1. Обычный номер версии ДОЛЖЕН иметь форму X.Y. X - это основная версия, а Y - дополнительная версия.
    2. Младшая версия ДОЛЖНА быть увеличена для любого выпуска, который поддерживает обратную совместимость с общедоступным API.
    3. Основная версия ДОЛЖНА быть увеличена, если в общедоступный API вносятся какие-либо обратно несовместимые изменения.
    4. Когда требуется совместимость с инструментарием SemVer, допустимо добавить версию патча '.0', например 2.1.0, но обычно этого следует избегать.

    Контекст

    SimVer работает лучше всего, когда ошибки относительно редки, когда вы выпускаете быстро / легко / безопасно и когда вы не поддерживаете много выпущенных веток.

    FAQ

    Как пользователь API, как я могу максимально использовать SimVer?

    • Всегда принимайте второстепенные выпуски (например, укажите «2. *»)
    • Обновляйте рано и часто.
    • Когда вы видите предупреждения об устаревании, обновите свой код соответствующим образом.

    Какие изменения подходят для точечных выпусков?

    • Исправления ошибок.
    • Новый функционал.
    • Пометка старых функций как устаревших.

    Если даже самые крошечные обратно несовместимые изменения в общедоступном API потребуют повышения основной версии, разве я не перейду к версии 42.0 очень быстро?

    Может быть. Почему это проблема?

    А как насчет устранения проблем с безопасностью?

    Я склонен сказать, что исправления безопасности могут быть второстепенными выпусками, даже если они нарушают совместимость. Мысли?

    Около

    Автором спецификации Simple Versioning является Джей Базузи.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Theme: Overlay by Kaira Extra Text
Cape Town, South Africa