在編碼時禁止使用goto語句;
進行物件導向程式設計時要盡可能的物件導向,最好引入各種設計模式;
設計關聯式資料庫時要遵從正規化;
多執行緒程式可以提高程式效能;
c語言的效率要比c++效率高;
......
請問這些條率款正確嗎?要我回答:對,也不對,彷彿又要扯上辯證法了!(本人打心眼裡反感辯證法,感覺辯證法就是某個**團體忽悠大眾來給自己開脫的,有篇文章挺有意思,大家可以看看
《辯證法與放屁》)準確解釋下我對以上條款的認識,首先當你要準確理其含義,然後分析其優劣,然後再看看這些條款是否正確,究竟適用在何種場景下,又在何種場景下不適用。
先說goto語句,感覺goto語句是個冤大頭,被很多程式設計書籍給妖魔化了,二話不說,附上鏈結
我反正在寫相關有複雜邏輯的程式時就直接上goto,但也總有那麼幾個人會大義凜然的過來給你指出錯誤,說:不要用goto;答:為什麼不讓用? 說:書上說的,別人都這麼說;答:.......。 心裡暗想「尼瑪你自己也先理解下啊,尼瑪你看看linux kernel 有多少goto,尼瑪老子就不改氣死你。」
「進行物件導向程式設計時要盡可能的物件導向,最好引入各種設計模式;」我相信很多看過設計模式的人都會養成這麼乙個習慣,在做程式設計時怎麼才能盡可能多的用上各種設計模式,最後走上過度抽象,過度設計的不歸路。請看酷殼博主陳皓老師的
《如此理解物件導向程式設計》,請看我曾經的一篇文章
《怎樣去平衡c++專案的設計?》
正規化是關聯式資料庫的理論基礎,所以我們在進行關聯式資料庫設計時常常被要求要遵從各種正規化,但是在很多場景下完全使用正規化倒是不合理的,特別是海量資料的應用中,冗餘資料的使用,為了效能進行一些反正規化設計是必須的。但是話說回來,物極必反,現在又有一種說法叫做」乙個dba是否有足夠的設計能力,就看他有多大的能力做反正規化設計就可以了。「請看看這位「光芊源」朋友的反駁「雖然現在因為磁碟廉價,所以大家都提倡反正規化,但是不明白為什麼要反,為什麼不能問為什麼?不搞清楚,跟著瞎反,到後面會發現資料庫效能超級差。可以反正規化,但是一定要明白為什麼反,很多時候反是為了增加效能,假如不能增加效能,反而會減弱效能那為什麼要反呢」;
「多執行緒程式可以提高程式效能」;我想很多人把執行緒當做了提高效能的萬金油,這起乙個,那起乙個,刷刷起多個。拜託你先看看你的cpu有幾個核好嗎?你先處理掉資料同步的問題好嗎?你處理掉資料同步的問題你看看你那各種鎖究竟是提高了程式效能還是不但讓程式效能降低,還增加了編碼,除錯,維護的難度。請看看我的一點薄見
《談談多執行緒程式設計》
「c語言的效率要比c++效率高」;語言大戰在程式猿這個原始世界裡就沒停息過,還是那句老話,各種語言有各種語言的適用場景,鄙人薄見
《存在即合理-開發語言》,話說回來,談起效能,從執行效率來說c語言確實要比c++語言要快一些。但是效率也分兩種:執行效率和開發效率(c++快點沒反對意見吧)。再說了你也得分析你的效能損耗在哪些地方吧,你要是在io上,在網路上,你選擇機器碼程式設計也白搭。推薦書籍
《提高c++程式設計效能的程式設計技術》
我覺得類似的條款還有很多,比如
《sql反模式》裡的各種反模式。還有論壇上一些技術學院派和實用派的爭論,總之我們看見乙個條款,盡量多問幾個為什麼?盡量多聯絡實際考察其是否合適?結果只有乙個:我們只用合適的技術。
yaocoder
兼聽則明,偏信則暗
在編碼時禁止使用goto語句 進行物件導向程式設計時要盡可能的物件導向,最好引入各種設計模式 設計關聯式資料庫時要遵從正規化 多執行緒程式可以提高程式效能 c語言的效率要比c 效率高 辯證法與放屁 準確解釋下我對以上條款的認識,首先當你要準確理其含義,然後分析其優劣,然後再看看這些條款是否正確,究竟...
兼聽則明,偏信則暗
在編碼時禁止使用goto語句 進行物件導向程式設計時要盡可能的物件導向,最好引入各種設計模式 設計關聯式資料庫時要遵從正規化 多執行緒程式可以提高程式效能 c語言的效率要比c 效率高 辯證法與放屁 準確解釋下我對以上條款的認識,首先當你要準確理其含義,然後分析其優劣,然後再看看這些條款是否正確,究竟...
精彩不容錯過 兼聽則明,偏信則暗
置頂 何凱文談知識學習 青年提問韓永進 文字太枯燥時如何才能堅持讀完一本書?韓永進表示讀書要找準興趣,積少成多,專業性書籍要下硬功夫,死功夫,笨功夫 摘抄。video 於丹 用誠意書寫人生 關於宇宙,最震撼的事實 steve jobs在2005年對stanford畢業生的演講 2017清華畢業生演講...