2009-04-28 52 views
1

上個學期(2008年8月 - 12月)我和一些班級同學用C++編寫了一個應用程序。沒什麼特別的,它是Sqlite3的ORM。我們實現了一些像反射這樣的東西,使其工作並從醜陋的東西中釋放最終用戶。就我個人而言,我認爲我們做得很好,而且我們的ORM實際上可能對某人有用(即使它專門爲Sqlite3編寫,它適用於其他數據庫)。改進併發布應用程序。需要一些建議

因此,我得出的結論是它應該作爲開源項目在某處(sourceforge最有可能)發佈。但是,因爲這是一個術語項目,所以在做這件事之前需要加上一些東西。也就是說,它有一些應該修復的內存泄漏,並且代碼的某些部分可能會被重構,以便將來每個人的生活更輕鬆。

我想知道,在一些問題上有經驗的C++程序員的意見:

  • 是否值得重寫某些部分 應用新techonologies(例如, 提升)。
  • 我們的ORM應該適應最新的 C++標準嗎?這樣做對 有任何好處嗎?
  • 我們如何知道我們的代碼是何時準備發佈的? ?
  • 這個ORM 將被遺忘到互聯網的 的霧中有什麼機會? (即是值得 出版它超越個人的驕傲 作爲一個程序員?)

現在,我不能老是想到更多的問題,但我想類似的經歷讀。

編輯:我應該可能翻譯我的代碼+評論英語的權利? (自問)

在此先感謝。

回答

1

我想我對你的特定問題「更有經驗」。在Java或ASP之前的網頁設計初期,我共同開發了一個開源Web應用程序語言&,很像ColdFusion。如果你有興趣,你仍然可以在http://www.steelblue.com/看到它。它仍然在我開發時使用的公司使用,但我不認爲其他任何地方。

我發現的是,除非你已經很好地連接起來,並且人們正在看你在做什麼,讓人們使用你的開源代碼就像銷售somone你的閉源程序一樣困難。你真的需要爲你的項目提倡,並且它應該有一些獨特的銷售主張,以區分它與compitition。

所以,這是不請自來的建議。以下是對您所提問題的一些具體答案......當然,純粹是我的意見。

我不會重寫任何代碼,除非您有一個想要插入的功能。該功能可能與特定平臺或編譯器兼容。這可能是支持一個新的數據庫數據類型或更聰明的跡象或任何。如果您打算在應用程序中加入更多認真的工作,請考慮一下您在下一次迭代中可以實際完成的路線圖,以及在您的週期結束時,應用程序將「最好」。

只要可用於特定目的,任何目的,即可釋放代碼。兩個原因。首先,現在可能有人爲此目的而想要它。如果它不可用,他們會使用別的東西。另外,如果它是開源的,他們可能會回饋項目。其次,您越早發現有多少人想要使用該代碼,效果越好。要麼它會比你期望的更受歡迎,你可以爲繼續發展而感到興奮....或者你會發現沒有人甚至訪問你的網頁看看你有什麼。無論哪種情況,最好早日知道人們真正想要從項目中獲得什麼,以便在規劃新版本時考慮到這一點。

關於「忘記進入迷霧」。我認爲大部分項目都是。我不想成爲一個沮喪者,但是看維基百科,有5個C++ ORM工具足夠流行,可以被提及,它們都是開源的。正如我上面所說的,除非您可以將您的想法出售給人們,否則他們將會採用另一種經過驗證的開源解決方案。爲了讓別人選擇你,他們需要做三件事:1.他們需要你擁有的其他人不需要的功能。 2.他們找到你的項目網站,它證明了你的代碼的優越性。他們相信你的代碼足以讓它一炮打響。

另一方面,如果你是在這個長期的,並希望繼續發展thigh隨着時間的推移變得更容易。最終該項目將涵蓋所有基礎知識,並且您可以開始開發那些不在其他解決方案中的新特徵。而且,你積極開發的時間越長,項目看起來就越可信。最後,你會得到更多的經驗。從現在開始2年後,您將能夠更好地表達自己的努力將對改善項目產生最大影響。

一個最後的想法:如果你喜歡它,從中學習,並且不妨礙你將食物放在桌子上,那就很好地利用你的時間。

祝你好運!
-Al

1

關於開源部分:

如果你真的想成爲一個開源項目,你真的應該發佈,無論它的當前狀態 - 完全的工作和調試 - 或半工作和充滿內存泄漏。 只是,如果狀態不好,請確保記錄它,並給它一個合適的版本號(少於一個?)。那麼其他人可以查看你的代碼,建議改進,加入你的隊伍,等...

1

我 - 而隨機 - 對此事的想法(在順序,我認爲是最重要的):

  • 我們如何知道我們的代碼何時可以發佈?

Liran Orevi said:如果你打算早點開源發佈。把它合理地記錄下來,花點時間爲未來的改進提供計劃或希望的路線圖(這些是人們幫助你的邀請,所以請注意哪些人沒有人在爲他們工作)。

  • 是否值得重寫某些部件以應用新技術(例如boost)。
  • 我們的ORM應該適應最新的C++標準嗎?這樣做有什麼好處嗎?

SQLite依賴於相當有限的基礎。也許你不希望你的工具需要更重的環境。如果代碼目前不是糾纏不清的混亂,你可能想要避免提升和最新的裝飾。一旦你有一個穩定版本(1.0至少)可以在開始有關可用於版本2

  • 什麼是這個ORM會被遺忘到互聯網的薄霧的機會進行改進的想法? (即是值得出版它超越個人的驕傲,作爲一個程序員?)

大部分東西在大的/ dev最終在天空/空的,只有一個辦法,找出...如果它任何地方都可以,你贏了。如果不是這是一項適度的投資,也許你在學習過程中學到了一些東西。