2010-11-26 69 views
3

我有一個龐大而富有挑戰性的C++項目,我計劃進行,一個需要6-18個月才能完成第一個發佈。如果我將大部分時間用於投資,這是有道理的,我先詳細規劃一下。什麼軟件在設計/規劃大型新個人項目時有幫助?

但是,這也只是我的工作,所以瀑布設計工具通常的沼澤更可能比時間浪費時間浪費。在像我這樣的獨立項目中工作,哪些軟件(如果比紙和鉛筆更先進)對我最有幫助?

我知道這個問題有點主觀,但我指望SO的社區機制將最好的答案帶到頂端,對於沒有具體答案的問題得到某種民主答案,每個人都會同意。

+5

Bah,你唯一可以依靠的工具就是耳朵之間的一個。如果你不夠信任,那麼你不會在Q + A站點找到更好的。 – 2010-11-26 23:05:47

+0

這些類型的問題可能更好地問[程序員stackexchange](http://programmers.stackexchange.com/)。 – fredoverflow 2010-11-26 23:14:07

回答

6

當我自己開發時,我儘量保持簡單,同時還有一些結構。

我認爲喬爾測試的工具,捕捉部分最重要的事情:

  1. 你使用源代碼控制?
  2. 您可以一步完成構建嗎?
  3. 你有錯誤數據庫嗎?
  4. 在編寫新代碼之前是否修復了錯誤?

然後我想加上我自己的一些:

  1. 使用自動測試,並將儘可能測試驅動開發。
  2. 需要時重構,保持結構清潔。
  3. 編寫文檔時,閱讀描述比讀代碼要快得多,可能需要遵循幾個級別的功能代碼。我經常使用doxygen。

即使它只是你,你一定想要源代碼管理。能夠追蹤事情發生何種變化以及它們如何改變在修正錯誤方面是無價的。在構建環境中投入時間通常是值得的。你將會很多。我無法跟蹤我頭腦中的錯誤,Excel表格將會執行。

沒有適當的基本結構,您無法在需要時進行重構。無論您如何處理設計,重構那些第一次不成功的零件是維持良好設計的關鍵。如果你習慣於重構,那麼你就不必考慮太多的步驟,而是可以做一些現在可以工作的東西,然後在需要添加更多功能時重構它。

0

想想你該如何去開發軟件。因此,想想你將如何處理架構設計,以及如何深入挖掘具有功能的架構。一旦你瞭解了這些事情,你需要使用的軟件工具應該是不言而喻的。

不要讓軟件驅動進程;該過程應該驅動軟件。

1

對於獨立項目,最好的方法通常是在需求穩固的地方進行測試驅動開發,以便迴歸測試自動化/無痛化,並充分利用斷言來形式化編碼時的假設。

如果測試在啓動過程中作爲自檢執行,它將非常快速高效地突出顯示問題。在編寫各種編程語言的解釋器時,我已經成功地使用了這種方法。您的里程可能因應用程序而異。

獨立項目的測試驅動開發使得源代碼控制幾乎已經過時。如果你的測試足夠好,那麼他們足夠好地模擬需求。在添加新功能之前修復bug /測試,並且您的項目將滿足其需求,但幾乎沒有未解決的問題。

0

工作的大型項目始終是以工作的小型項目開始的。從Hello World開始,繼續刪除錯誤並添加功能。當某些事情開始吸引時,你會充分了解它在那個時候重構。