Posted on 2008-11-15 00:55
S.l.e!ep.¢% 閱讀(2411)
評(píng)論(3) 編輯 收藏 引用 所屬分類:
C++
1. AutoLock
??? 在我的代碼中存在著許多
??? {
?????????? CAutoLock? lock(&sessionlock);
?????????? // do something
??? }
??? AutoLock固然方便,但代碼中很多這樣的括號(hào),讓我真的很無(wú)語(yǔ),有空要看下其它人是怎么寫(xiě)的。
2. std::string, CString, char[]
??? 代碼需要在 win, unix 下都可以編譯,于是
??? windows非MFC人員: "用 char[], 如果用 std::string, 調(diào)用API, 要加上 .c_str()"
??? windowsMFC人員:?? "用CString, std::string 沒(méi)有 Format, 到處得加上 .c_str(), unicode 用CString 也方便"
??? unix人員:???????? "用 std::string 或 char[]"
??? 結(jié)果, 這三類人寫(xiě)出了同一模塊, 寫(xiě)出了三樣代碼, 唉~~~
Feedback
有很多括號(hào)?從博主提供的代碼里看到這么一對(duì)括號(hào)啊,不算什么壞味吧?
第二個(gè)問(wèn)題確實(shí)是個(gè)問(wèn)題,整理統(tǒng)一起來(lái)也很麻煩啊...
呵呵,AutoLock這種構(gòu)造時(shí)lock,析構(gòu)時(shí)unlock的方法其實(shí)很好么,boost::scoped_lock就是這樣的。個(gè)人覺(jué)得括號(hào)其實(shí)無(wú)所謂,至少這種方法比手動(dòng)lock,unlock要優(yōu)雅很多,在異常安全方面也有保證。
第一種本身就是語(yǔ)言機(jī)制的靈活運(yùn)用.
個(gè)人認(rèn)為這樣很好。當(dāng)然如果覺(jué)得不妥,可以將其放到一個(gè)獨(dú)立的過(guò)程當(dāng)中去。
第二個(gè)問(wèn)題就要看開(kāi)發(fā)的靈活機(jī)動(dòng)了。
一般來(lái)說(shuō)會(huì)為一個(gè)軟件制作一個(gè)基礎(chǔ)庫(kù),他不必是全面的,或者跨平臺(tái)的。等到了具體模塊的編碼時(shí),所見(jiàn)到的只是必須用的那個(gè)抽象。對(duì)于字符串處理這種完全可以根據(jù)自己的需求寫(xiě)一個(gè)string類。至于他是用std::sring還是CString來(lái)實(shí)現(xiàn),這些并不重要,必要時(shí)對(duì)其進(jìn)行擴(kuò)展就是了。這總好過(guò)在后期對(duì)所有模塊代碼的整理和規(guī)范。