c++如何做設計?或者推薦一些比較簡單的開源項目,適合新手練手的。

接觸C++一年了,看過的書有《C++對象模型》、《C++編程思想》、《DE》、《effective c++》(大概翻了下),現在在看《TCPL》,覺得這些書更多的停留在語言層面,有沒有一些書籍是講一個項目如何從0開始設計,在這個過程中有神馬經驗和雷區。求推薦,或者推薦一些小型的開源項目,適合新手練手的。拜謝!


題主你這麼想就不對。簡單的軟體有什麼好設計的,複雜了才需要設計。簡單的怎麼寫舒服就怎麼寫,所以你去找簡單的軟體的源代碼是學不到設計的。只有去找複雜的項目才能學到設計。

再說了。C++新手想設計反正也是設計不好的,你還不如先把常用的語法掌握了,演算法搞清楚,設計模式背誦下來,然後再說。


既然是軟體開發過程,那和語言真的沒關係。

大的軟體一般不是從0開始的,而是站在巨人的肩膀上。如果要做一個網站,沒有人會從解析HTTP協議開始,而是用現有的框架,直接開始編寫業務邏輯。當然這是企業的做法,為了節約成本,他們盡量使用現成的庫。自己學習的話還是盡量往底層靠,知道底層的原理往往能事半功倍。

如果要做一個計算器應用,光知道C++是做不出來的,你還要知道圖形界面API(拖控制項除外),還要知道一點數據結構,用來計算表達式。如果要做一個瀏覽器,光知道C++完全不夠,你還要知道HTTP協議、HTML、css、javascript等等。

所以你不僅僅要學C++,還要學與C++相關的技術。具體要學哪些技術,你可以參考招聘信息中的職位描述。前提是你已經想好自己將來的發展方向了。


你說的沒錯,你看的這些書,大多關注於語言層面,而很少涉及設計層面

而談到設計,不得不看的一本書是

《設計模式》

其他更多的,我就不再具體推薦了,你可以到圖書館翻翻看,凡是跟面向對象設計,架構相關的書,都可以找來看看


Jeff Dean的leveldb,國內的有陳碩的muduo網路庫。都是屬於代碼量不大但是寫得很棒的開源C++代碼。


不知道你之前是否有軟體開發經驗,但我個人認為,你提到的這些書對於初學者並不合適,建議讀C++ Primer 之類,做做習題,慢慢起步。


我覺得你可以學學qt或者mfc先做個小軟體,做個文本編輯器啥的練練手。不斷添加功能,比如支持語法高亮,支持正則查找等等。


謝謝邀請,對這個問題而言我個人沒有太多的親身體會,所以只能靠印象和感覺推薦一個

肯定不簡單的開源項目——ACE,這個項目跨平台,方便搭建調試環境。

另外還有相關的2本中文書,貌似有新老兩種,我只看過馬維達翻譯的老版。

http://book.douban.com/subject/1165791/

http://book.douban.com/subject/1141548/

亞馬遜上有同名的新書。

為什麼想到這個並不一定適合新手的東西,主要還是問題中提到的如何做設計。

同時這個項目還能擴展網路方面的知識,最少也該了解一下。

其實要說如何做設計?是不是應該從面向對象分析做起呢?


推薦閱讀:

單精度浮點數中的「單」和「浮點」是什麼意思?
你為什麼喜歡編程?
Concept 對 C++ 有什麼影響,它和 Rust 的泛型 Bound 和 Trait 有點類似?
有哪些鍛煉編程能力的 C++ 項目?

TAG:軟體開發 | 開源項目 | C |