Какие факторы определяют успех проекта с открытым исходным кодом? [закрытый]

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

Обновление: Объявление функции, которое вы указали, показывает, что m_cRedundencyManager ожидает, что функция вида: void yourCallbackFunction(int, void *). Поэтому функции-члены неприемлемы как обратные вызовы в этом случае. Статическая функция-член может работать, но если это неприемлемо в вашем случае, будет работать и следующий код. Обратите внимание, что он использует злое действие из void *.


// in your CLoggersInfra constructor:
m_cRedundencyManager->Init(myRedundencyManagerCallBackHandler, this);

// in your CLoggersInfra header:
void myRedundencyManagerCallBackHandler(int i, void * CLoggersInfraPtr);

// in your CLoggersInfra source file:
void myRedundencyManagerCallBackHandler(int i, void * CLoggersInfraPtr)
{
    ((CLoggersInfra *)CLoggersInfraPtr)->RedundencyManagerCallBack(i);
}
6
задан durron597 24 June 2015 в 16:35
поделиться

10 ответов

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

  • Рынок - Должен быть рынок для Вашего проекта с открытым исходным кодом. Если Ваш проект является оранжевой соковыжималкой в пространстве, я сомневаюсь, что Вы будете очень успешны. Необходимо удостовериться, что проект получает большое принятие среди пользователей и разработчиков. Это вдвое более вероятно успешно выполниться, если можно заставить другие корпорации принимать его также.
  • Документация - Как Вы коснулись более ранней документации, является ключевой. Среди этой документации прокомментирован код, архитектурные решения и примечания API. Даже если Ваша документация содержит ошибки или ошибки о Вашем программном обеспечении, это в порядке. Помните, прозрачность является ключевой.
  • Свобода - необходимо позволить коду быть "бесплатным" - этим я имею в виду свободный как в речи, не как в пиве. Если у Вас есть чувство, что Ваш рынок является библиотекой для других корпораций, лицензия BSD оптимальна. Если Ваша часть программного обеспечения собирается работать на рабочих столах затем, GPL является Вашим выбором.
  • Прозрачность - необходимо записать программное обеспечение в прозрачной среде. После того как Вы идете открытый исходный код, там не скрытые секреты. Необходимо объяснить все, что Вы делаете, и что Вы делаете. Это взбесит разработчиков как никто другой
  • Сообщество разработчиков - сильное сообщество разработчиков требуется. Это должно быть существующим. Только приблизительно 5% пользователей способствуют назад проекту. Если кто-то замечает, что не было никаких выпусков в течение года они, привычка думает, "Что, Ничего себе, эта часть программного обеспечения сделана", они будут думать, что "разработчики должны выведенных он". Сохраните своих разработчиков, работающих над ним, даже если это означает, что они стоят Вам денег.
  • Связь - необходимо удостовериться, что Вы общественный можете связаться. Они должны смочь зарегистрировать ошибки, обсудить обходные решения и опубликовать патчи. Без обратной связи это бессмысленно к открытому исходному коду проект
  • Доступность - Создание Вашего кода, легкого добираться, необходимо, даже если это означает бесить адвокатов. Необходимо удостовериться, что проект легко загрузить, и использовать. Вы не хотите, чтобы пользователь должен был перейти через 18 экранов ворчания и подписать контракт, чтобы сделать это. Необходимо сделать вещи простыми, и чистыми
5
ответ дан 10 December 2019 в 00:46
поделиться

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

1
ответ дан 10 December 2019 в 00:46
поделиться

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

1
ответ дан 10 December 2019 в 00:46
поделиться

В рассмотрении этих проблем Вы могли бы интересоваться проверкой интерактивной версии курса об открытом исходном коде в Беркли UC, названном Разработкой С открытым исходным кодом и Распределением Цифровой информации: Технические, Экономические, Социальные, и Легальные Перспективы. Это - co-taught Mitch Kapur (основатель Lotus) и Paula Samuelson, преподаватель юридической школы. Я имею длинную поездку на работу и поместил аудио курса о моем iPod в прошлом году – они говорят много о том, какие работы, что не делает и почему от очень широкого (хотя очевидно академический) перспектива.

1
ответ дан 10 December 2019 в 00:46
поделиться

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

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

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

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

Конечно, я говорю это все на основе опыта. Я - один из основных разработчиков на x264 (в настоящее время самый активный), один из самых популярных видео кодеров. У нас есть два основных разработчика, различные младшие разработчики в сообществе, которые вносят патчи и корпоративное спонсорство от Joost (Gabriel Bouvigne, который поддерживает ratecontrol алгоритмы), от Avail Media (на кого я работаю иногда по контракту и кто в настоящее время нанимает кодеры по контракту для добавления MBAFF, чередующего поддержку), и от немногих других то всплывающее окно время от времени.

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

1
ответ дан 10 December 2019 в 00:46
поделиться

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

Выборка:

Много пропускной способности было потрачено впустую, споря по отсутствию удобства использования в программном обеспечении/бесплатном программном обеспечении с открытым исходным кодом (впредь “OSS”). Дебаты продолжаются в данный момент на блогах, форумах и потоках комментария Slashdot. Некоторые люди говорят, что плохое удобство использования является местным для всего мира OSS, в то время как другие говорят, что удобство использования OSS является большим, но что настоящей проблемой являются консервативные пользователи, которые ожидают, что каждая программа клонирует Microsoft. Некоторые люди утверждают, что проблемами UI является временная болезнь роста, в то время как другие говорят, что модель разработки OSS систематически производит плохой UI. Некоторые люди даже утверждают, что GPL косвенно вознаграждает программное обеспечение, которое это трудно использовать! (Для записи я не соглашаюсь.)

http://humanized.com/weblog/2007/10/05/make_oss_humane/

0
ответ дан 10 December 2019 в 00:46
поделиться

Книги были записаны на предмете. На самом деле можно найти бесплатную книгу здесь: создание программного обеспечения с открытым исходным кодом

1
ответ дан 10 December 2019 в 00:46
поделиться

Действительно, я думаю, что ответ, 'как Вы выполняете проект'.

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

Сравните и контрастируйте (историю не трудно разыскать!) управление разработкой Класса:: DBI и DBIx:: Класс в Perl.

0
ответ дан 10 December 2019 в 00:46
поделиться

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

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

0
ответ дан 10 December 2019 в 00:46
поделиться

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

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

0
ответ дан 10 December 2019 в 00:46
поделиться
Другие вопросы по тегам:

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