1

前学期 (2008 年 8 月 - 12 月)、私と何人かのクラスメートは C++ でアプリケーションを書きました。これは Sqlite3 の ORM です。リフレクションなどを実装して機能させ、エンドユーザーを醜いものから解放しました。個人的には、私たちは素晴らしい仕事をしたと思います。私たちの ORM は実際に誰かにとって役立つ可能性があります (Sqlite3 用に特別に書かれているにもかかわらず、他のデータベースにも簡単に適応できます)。

その結果、オープン ソース プロジェクトとしてどこか (おそらく sourceforge) で公開する必要があるという結論に達しました。ただし、期間限定のプロジェクトなので、その前に解決しなければならないことがいくつかあります。つまり、修正が必要なメモリリークがいくつかあり、コードの一部をリファクタリングして、将来のすべての人の生活を楽にすることができます.

いくつかの問題について、経験豊富な C++ プログラマーの意見を知りたいです。

  • 新しい技術 (ブーストなど) を適用するためにいくつかの部分を書き直す価値はありますか?
  • ORM を最新の C++ 標準に適合させる必要がありますか? これを行うメリットはありますか?
  • コードのリリース準備が整ったことをどのように知ることができますか?
  • この ORM がインターネットの霧の中に忘れ去られる可能性はどれくらいですか? (つまり、プログラマーとしての個人的なプライドを超えて公開する価値はありますか?)

現時点ではこれ以上の質問は思いつきませんが、同様の経験について読みたいと思います。

編集:おそらくコードとコメントを英語に翻訳する必要がありますよね?(自問自答)

前もって感謝します。

4

3 に答える 3

1

オープンソース部分について:

本当にオープン ソース プロジェクトにしたい場合は、現在の状態 (完全に動作し、デバッグされているか) に関係なく、実際に公開する必要があります。状態が悪い場合は、必ず文書化し、適切なバージョン番号 (1 未満?) を付けてください。その後、他の人があなたのコードを表示したり、改善を提案したり、チームに参加したりできます...

于 2009-04-30T14:52:43.703 に答える
1

この問題に関する私の、むしろランダムな考え (最も重要だと思う順序で):

  • コードのリリース準備が整ったことをどのように知ることができますか?

Liran Orevi が言ったように : オープン ソースを早期にリリースする場合。それを適切に文書化し、将来の改善のために計画されている、または期待されているロードマップを提供するために時間を割いてください (これらはあなたを助ける人々への招待状であるため、どの問題に誰も取り組んでいないことに注意してください)。

  • 新しいテクノロジーを適用するためにいくつかの部分を書き直す価値がありますか (たとえば、ブースト)。
  • ORM を最新の C++ 標準に適合させる必要がありますか? これを行うメリットはありますか?

SQLite はかなり限られた基盤に依存しています。おそらく、ツールがより重い環境を要求することを望まないでしょう。現在、コードが絡み合っていて保守できないほど混乱していない場合は、ブーストや最新のフリルを避けた方がよいかもしれません。安定したリリース (少なくとも 1.0) を入手したら、バージョン 2 で行うことができる改善について考え始めることができます。

  • この ORM がインターネットの霧の中に忘れ去られる可能性はどれくらいですか? (つまり、プログラマーとしての個人的なプライドを超えて公開する価値はありますか?)

ほとんどのことは空の大きな /dev/null に行き着きます。それを見つける方法は 1 つしかありません。そうでない場合、それはささやかな投資であり、おそらくその過程で何かを学んだことになります。

于 2009-05-04T01:50:09.697 に答える
1

あなたの特定の質問に関して、私は「より経験豊富」だと思います。私は、Java や ASP が登場する前の Web デザインの初期に、ColdFusion によく似たオープン ソースの Web アプリケーション言語とテンプレート システムを共同開発しました。興味があれば、まだhttp://www.steelblue.com/で見ることができます。開発当時の会社では今でも使われていますが、他では考えられません。

私が見つけたのは、あなたがすでに十分につながっていて、人々があなたのしていることを見ているのでない限り、あなたのオープンソースコードを人々に使ってもらうことは、あなたのクローズドソースプログラムを誰かに売るのと同じくらい難しいということです. あなたは自分のプロジェクトを支持する必要があり、競合他社とは一線を画す、ある種のユニークな販売提案が必要です。

だから、それは求められていないアドバイスです。以下は、あなたが持っていた質問に対するいくつかの具体的な回答です... もちろん、すべて純粋に私の意見です.

入れたい機能がない限り、コードを書き直すことはありません。その機能は、特定のプラットフォームまたはコンパイラとの互換性である可能性があります。新しい db データ型やよりスマートなインデックスなどをサポートするためかもしれません。アプリケーションにさらに本格的な作業を加える場合は、次の反復で現実的に達成できることのロードマップと、サイクルの最後にアプリケーションを「最も優れた」ものにするための選択について考えてください。

特定の目的で使用できるようになったらすぐに、コードをリリースします。2つの理由。まず、そのために今欲しい人がいるかもしれません。利用できない場合は、別のものを使用します。また、オープン ソースの場合は、プロジェクトに貢献する可能性があります。第二に、コードをどれだけの人が使いたいかを知るのは早ければ早いほどよい。予想以上に人気があり、開発を続けることに興奮するか、または....あなたのウェブページにアクセスして、あなたが持っているものを見る人さえいないことに気付くでしょう。どちらの場合でも、新しいリリースを計画するときに考慮できるように、人々があなたのプロジェクトに本当に何を求めているかを遅かれ早かれ知ることをお勧めします。

「霧に忘れられた」について。ほとんどのプロジェクトはそうだと思います。がっかりしたくはありませんが、ウィキペディアを見ると、5 つの C++ ORM ツールがあり、言及されるほど人気が​​あり、それらはすべてオープン ソースでした。上で述べたように、自分のアイデアを人々に売り込めない限り、人々は実績のある別のオープン ソース ソリューションを採用することになります。誰かが彼らよりもあなたを選ぶには、次の 3 つのことが起こる必要があります。2. 彼らはあなたのプロジェクトの Web サイトを見つけ、あなたのコードの優位性を示します。3. 彼らはあなたのコードを十分に信頼して試してみます。

一方、これを長期にわたって続けて開発を続けたい場合は、時間の経過とともに問題が解決しやすくなります。最終的に、プロジェクトはすべての基本をカバーし、他のソリューションにはない新しい機能の開発を開始できます。また、アクティブな開発に長く携わっているほど、プロジェクトはより信頼できるように見えます。最後に、ニッチでより多くの経験を積むことができます。今から 2 年後には、あなたの努力がプロジェクトの改善に最も影響を与える場所を明確に示すことができるようになります。

最終的な考え: もしあなたがそれを楽しんでいて、そこから学んでいて、食卓に食べ物を置いておくのに邪魔にならないなら、それはあなたの時間を有効に使っている.

幸運を!
-アル

于 2009-04-28T02:52:02.330 に答える