Изменения API

Изменения API
Atom
12/27/2012
VassilSanych


Вообще изменения существующего API в серьёзных проектах не приветствуются.
Но если они жизненно необходимы, то это делается так:
- устаревший метод/класс помечается атрибутом Obsolete ([System.Obsolete("use class B")]). При билде в Visual Studio это будет видно в warnings.
- содержимое устаревшего метода заменяется рабочей обёрткой над новым функционалом
- при выпуске мажорной версии (например 1.7 -> 2.0) устаревший код окончательно выбрасывается с указанием в описании релиза.
Вот как-то так.


< 1 2 3  >
Den

Avatar
Date: 1/14/2013
Reply


VassilSanych
Mikhail Sukhov
У вас вопрос был касательно ночных сборок. С ними даже в планах нет написания изменений. У ГВ я так понимаю проблема с переходом от версии к версии. Это все в топиках вида S# 4.1 бета.

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

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

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



Я тоже тратил время при переходе от версии к версии, и далеко не на каждый дот-дот перехожу, но

1. на самом деле API не просто от нечего делать меняется и изменения всегда оправданы и логичны.
2. парни практически сразу откликаются на ошибки, описанные на форуме, и быстро их устраняют!
3. дока очень даже неплохая и вкупе с примерами вполне себе дает разобраться в предмете.

библиотека бесплатна, требовать от разработчиков софтверных стандартов IBM странно было бы.

Но вот если бы разработчики при коммитах изменения API просто на форуме их озвучивали было бы здорово.
Например на странице с новостями про beta-версию просто создали бы и редактировали соответсвующий топик,
на данный момент 4.1.7.

Все равно при выкладывании версии эта информация собирается и публикуется, а так будет
сама аггрегироваться разными коммитерами в один топик по мере поступления.
Early announcement, так сказать...
Thanks: VassilSanych Alexander

Mikhail Sukhov

Avatar
Date: 1/14/2013
Reply


VassilSanych
Mikhail Sukhov
1. Чего?

- ошибка такая-то
- в какой версии?
- 4.1.7
- номер чекина на codeplex?
- а хрен его знает. Забыл.


Здесь без переводчика с русского на русский не обойтись. Я не понимаю что тут написано.

VassilSanych
Только отказаться от поддержки всех версий, кроме самой последней, а это контрпродуктивно.


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

VassilSanych

И так пользователей не то, чтобы легион.


А это плохо?[cool]

VassilSanych

(Как кстати дела с тестированием?)


Тестирование на истории или тестирование ПО?
Thanks:

VassilSanych

Avatar
Date: 1/14/2013
Reply


Mikhail Sukhov
Почему? Получилось очень даже продуктивно. Сразу стало больше времени на разработку, чего не было, когда приходилось поддерживать старый код.

Неисправленные ошибки, обнаруженные в старой версии, часто просто остаются незамеченными в новой. Особенно, если новой версией мало кто пользуется.
Mikhail Sukhov
А это плохо?[cool]
Решать только вам. Если у вас СЛИШКОМ много пользователей/клиентов, я только рад за вас.
Mikhail Sukhov
Тестирование на истории или тестирование ПО?
Тестирование ПО

Thanks:

Alexander

Avatar
Date: 1/14/2013
Reply


Den
Но вот если бы разработчики при коммитах изменения API просто на форуме их озвучивали было бы здорово.
Например на странице с новостями про beta-версию просто создали бы и редактировали соответсвующий топик,
на данный момент 4.1.7.

Все равно при выкладывании версии эта информация собирается и публикуется, а так будет
сама аггрегироваться разными коммитерами в один топик по мере поступления.
Early announcement, так сказать...


Хорошая идея, спасибо.
Thanks:

Mikhail Sukhov

Avatar
Date: 1/14/2013
Reply


VassilSanych

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


Через какое-то время начнут пользоваться ей, и мы поправим ошибки. В чем проблема то? Мы ж тут, практически 24x7 доступны из-за распределенности по земному шару[laugh]

VassilSanych

Решать только вам. Если у вас СЛИШКОМ много пользователей/клиентов, я только рад за вас.


Пользователь != клиенту. Пользователи АПИ - это ко мне и еще нескольким товарищам. Клиенты (платные сервисы, в т.ч. и тех поддержка) - это к другим людям. Не все это знают, не все это понимают, но факт остается фактом. Поэтому у меня лично клиентов нет, но есть пользователи. Которых, конечно же, для меня одного слишком много. Радоваться тут особо не чему.

Mikhail Sukhov
Тестирование ПО


Собственными силами + через бета юзеров. К сожалению, бета дистрибутивы скачиваются не только бета юзерами, но всеми подряд (нет у нас закрытого раздела, и делать его так же нет ресурсов). И начинаются песнопения на форуме по поводу почему все перестало работать и как пользоваться новой версией. Скачал бета версию - следуй бета правилам. Вот и все дела.
Thanks:

VassilSanych

Avatar
Date: 1/14/2013
Reply


На Codeplex кстати есть неплохой трекер, завязанный на TFS. Причём разработчики этот трекер заполнять и отслеживать могут прямо в VS.
Но почему-то сейчас разработка идёт как-то мимо него.
И там кстати можно связывать описания ошибок, исправления, версии и чекины, но этого вообще никто не делал.
Причём, по опыту, TFS - на самом деле, очень удобная система управления проектом, а не только версионное хранилище.
Там можно в пару кликов делать хорошие отчёты со списками исправлений, velocity chart и т.п.
Thanks:

Mikhail Sukhov

Avatar
Date: 1/14/2013
Reply


VassilSanych
На Codeplex кстати есть неплохой трекер, завязанный на TFS. Причём разработчики этот трекер заполнять и отслеживать могут прямо в VS.
Но почему-то сейчас разработка идёт как-то мимо него.


Потому что у нас есть свой трекер, тоже на TFS, но в закрытом разделе.

VassilSanych

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


Делается регулярно.

VassilSanych

Причём, по опыту, TFS - на самом деле, очень удобная система управления проектом, а не только версионное хранилище.
Там можно в пару кликов делать хорошие отчёты со списками исправлений, velocity chart и т.п.


Именно поэтому и пользуемся.
Thanks:

VassilSanych

Avatar
Date: 1/14/2013
Reply


Mikhail Sukhov
Потому что у нас есть свой трекер, тоже на TFS, но в закрытом разделе.

Было бы удобно, если бы пользователи могли сами добавлять ошибки в трекер и отслеживать их статус, не задавая лишних вопросов на форуме, как, например, здесь Resharper Tracker (там, правда, другой трекер)
Thanks:

Mikhail Sukhov

Avatar
Date: 1/14/2013
Reply


VassilSanych
Mikhail Sukhov
Потому что у нас есть свой трекер, тоже на TFS, но в закрытом разделе.

Было бы удобно, если бы пользователи могли сами добавлять ошибки в трекер и отслеживать их статус, не задавая лишних вопросов на форуме, как, например, здесь Resharper Tracker (там, правда, jira)


Юзер не знает (не захочет узнавать) есть ли уже подобная ошибка в системе. Нужна модерация такого трекера, иначе будет неудобно разработчикам. Сплошь минусы. Поэтому у нас лучше решение - форум.
Thanks:

VassilSanych

Avatar
Date: 1/14/2013
Reply


Mikhail Sukhov
Юзер не знает (не захочет узнавать) есть ли уже подобная ошибка в системе. Нужна модерация такого трекера, иначе будет неудобно разработчикам. Сплошь минусы. Поэтому у нас лучше решение - форум.

Юзер создаёт неназначенные ошибки. Разработчик, как правило, создаёт ошибку, сразу записывая её на себя, или просто назначает на себя какую-то из неназначенных. TFS позволяет видеть список тех ошибок, которые касаются только вас лично, или список всех ошибок, назначенных на разработчиков. Ничего не нужно модерировать, когда можно просто игнорировать. Можно изредка пробегать по полному списку, проставляя реджекты или беря в разработу ошибки, а всё остальное время видеть только то, над чем работаешь.

Thanks:
< 1 2 3  >

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy