| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 807 人关注过本帖, 1 人收藏
标题:优秀程序员的18大法则
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
學任何編程語言,都是培養這些思想的過程。你不可能學會所有的語言,但祗要在學會一門語言的過程中養成了這些思想,那麼將來學任何語言都是輕而易舉,因為這些指導你學語言時哪些是好的、哪些是不好的、應如何學。

授人以渔,不授人以鱼。
2015-10-12 11:33
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
KISS(Keep it simple, stupid!)原则

 简单性(避免复杂性)应该永远当作是一个重要的目标。写简单的代码,不但花费的时间少,错误少,而且修改起来也容易。


KISS原則,stupid是“笨”、“愚蠢”的意思,文中並沒有把這個翻譯出來。那句英文的意思,是“保持簡單和愚蠢”,所謂大巧若拙,即是此意。我也經常說“寫直接代碼”,其實“直接代碼”並非我的獨特說法,很多編程規範和建議上都是這麼說的,也是這個意思。

之所以特意挑這個出來說,是因為據我觀察,這裡太多人熱衷於玩技巧了,熱衷寫簡短代碼而不是直接代碼,以技巧高深為榮,能夠直白說出的事情非要繞個圈子說,以別人不懂為能。最典型的例子,是那種用移位代替乘除法的,以及用異或算符交換變量値的,很多人(包括某些“大拿”)都熱衷於推介和使用這類技巧,明明是乘除法不用,非要放棄直接邏輯寫移位代碼叫讀者花費時間思考到底這段代碼的邏輯是真移位還是在做乘除運算(讓讀者遲疑也屬於編碼大忌),他們覺得人家直接寫乘除法就沒技術含量了,殊不知移位算法受限於數據類型是有符號還是無符號,不是萬用的,而異或交換,除了不直接,也祗適用於整型,到別的數據類型,還得老老實實地用中間變量交換,如此則屬於“何必異類”範圍。諸如此類的例子,都正犯KISS原則。學編程以學出那些屠龍術為能,那是走火入魔了。

最後,附送1樓沒有提到兩條箴言給大家:

1.對於那些快速算法,我們總是可以拿一些速度差不多但是更容易理解的算法來替代它們。
2.當你為了加速,把一頁代碼變成幾條簡單的指令時,請不要忘了增加注釋,以使源碼的行數保持為一個常量。(代碼規模守恆定律)

[ 本帖最后由 TonyDeng 于 2015-10-12 16:09 编辑 ]

授人以渔,不授人以鱼。
2015-10-12 15:52
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
看看這個人最新的問題,跟他以前所問的問題連起來看,就明白我所謂的“偏”是怎麼回事了。

图片附件: 游客没有浏览图片的权限,请 登录注册

授人以渔,不授人以鱼。
2015-10-12 16:14
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
再送幾句:

1.如果還沒想清楚,就用蠻力算法吧。
2.代碼寫得越急,程序跑得越慢。
3.你用英語都寫不出來的東西就別指望用代碼寫了。
4.注意細節。
5.如果代碼和注釋不一致,那很可能兩者都錯了。
6.如果你發現特殊情況太多,那你肯定用錯方法了。
7.先把數據結構搞清楚,程序的其餘部分自現。

授人以渔,不授人以鱼。
2015-10-13 22:14
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
接15樓再來幾個:

1.測試祗能證明程序有錯誤,而不能證明程序沒有錯誤。
2.東西沒壞,就不要亂修。
3.修正程序錯誤的第一步是要先重現這個錯誤。
4.【程序優化第一法則】不要優化。
5.【程序優化第二法則——僅對專家適用】還是不要優化。
6.如果程序員自己模擬實現一個構造比編譯器本身實現那個構造還要快,那編譯器的作者也太失敗了。
7.Lisp程序員知道所有東西的値,卻不知道那些東西的計算成本。
8.那些用手做就已經很快了的事情,就不要用計算機去做了。
9.那些能用計算機迅速解決的問題,就別用手做了。
10.拼命幹活無法取代理解。

我這裡特意摘出來的這些,是有針對性的!比如,這裡第7條,表面上說是Lisp,但實際上對SQL也適用。

授人以渔,不授人以鱼。
2015-10-13 22:38
SkyApple001
Rank: 4
来 自:Crab Sea
等 级:业余侠客
威 望:2
帖 子:120
专家分:201
注 册:2015-10-7
收藏
得分:0 
怎么成为伟大的程序员?

Crab! Crab! Crab! Do you want to be a crab? Follow me!
2015-10-15 02:27
快速回复:优秀程序员的18大法则
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017745 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved