Улучшение и публикация приложения. Нужен совет - PullRequest
1 голос
/ 28 апреля 2009

Последний семестр (август - декабрь 2008) я и несколько одноклассников написали приложение на C ++. Ничего впечатляющего, это ORM для Sqlite3. Мы реализовали некоторые вещи, такие как отражение, чтобы заставить его работать и освободить конечного пользователя от уродливых вещей. Лично я думаю, что мы проделали отличную работу и что наш ORM действительно может быть кому-то полезен (хотя он написан специально для Sqlite3, его легко адаптировать для других баз данных).

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

Хотелось бы узнать мнение опытных программистов на С ++ по некоторым вопросам:

  • Стоит ли переписывать некоторые части в применять новые технологии (например, увеличить).
  • Если наш ORM будет адаптирован к последним Стандарт C ++? Есть ли польза в делать это?
  • Как мы узнаем, когда наш код готов к выпуску?
  • Каковы шансы, что это ORM будут забыты в тумане интернет? (т.е. стоит ли опубликовать его за пределы личной гордости как программист?)

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

РЕДАКТИРОВАТЬ: я должен, вероятно, перевести мой код + комментарии на английский язык правильно? (вопрос о себе)

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 30 апреля 2009

Относительно части с открытым исходным кодом:

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

1 голос
/ 04 мая 2009

Мои - довольно случайные - мысли по этому вопросу (в том порядке, который я считаю наиболее важным):

  • Как мы узнаем, когда наш код будет готов к выпуску?

Как и Лиран Ореви сказал : если вы собираетесь выпустить open source рано. Хорошо документируйте это и найдите время, чтобы предоставить дорожную карту запланированных или ожидаемых улучшений (это приглашение для людей, чтобы помочь вам, поэтому обратите внимание, на каких из них никто не работает).

  • Стоит ли переписывать некоторые части для применения новых технологий (например, boost).
  • Должен ли наш ORM быть адаптирован к последнему стандарту C ++? Есть ли польза в этом?

SQLite опирается на довольно ограниченную базу. Может быть, вы не хотите, чтобы ваш инструмент требовал более тяжелой среды. Если код в настоящее время не запутанный и не поддерживаемый беспорядок, вы можете избежать повышения и новейших наворотов. Когда у вас будет стабильный выпуск (по крайней мере 1.0), вы можете начать думать об улучшениях, которые могут быть сделаны для версии 2.

  • Каковы шансы, что этот ORM будет забыт в тумане Интернета? (то есть стоит ли публиковать это вне личной гордости программиста?)

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

1 голос
/ 28 апреля 2009

Полагаю, я "более опытен" в отношении вашего конкретного вопроса. Я участвовал в разработке системы языка и шаблонов веб-приложений с открытым исходным кодом, очень похожей на ColdFusion, еще в первые дни веб-дизайна, до появления Java или ASP. Вы все еще можете увидеть его на http://www.steelblue.com/, если вы заинтересованы. Он все еще используется в компании, в которой я был, когда разрабатывался, но больше нигде не думаю.

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

Итак, это незапрошенный совет. Вот некоторые конкретные ответы на вопросы, которые у вас были ... все, конечно, мое мнение.

Я бы не стал переписывать какой-либо код, если у вас нет функции, которую вы хотите добавить. Это может быть совместимость с конкретными платформами или компиляторами. Это может быть поддержка нового типа БД или более умных указателей или чего-то еще. Если вы собираетесь добавить в приложение более серьезную работу, подумайте о дорожной карте того, чего вы реально сможете достичь в следующей итерации, и какие варианты сделают приложение «самым лучшим» в конце цикла.

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

О "забытых в тумане". Я думаю, что большинство проектов. Я не хочу быть унылым, но, глядя на Википедию, было 5 инструментов C ++ ORM, достаточно популярных для упоминания, и все они были с открытым исходным кодом. Как я уже говорил выше, если вы не сможете продать свою идею людям, они пойдут с другим проверенным решением с открытым исходным кодом. Чтобы кто-то выбрал вас из-за них, должны произойти три вещи: 1. Им нужна особенность, которая есть у вас, а у других нет. 2. Они находят ваш веб-сайт проекта, и это демонстрирует превосходство вашего кода. 3. Они доверяют вашему коду достаточно, чтобы дать ему шанс.

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

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

Удачи!
-Аль

...