你見過的代碼漂亮到什麼程度?

IT多巴胺


少即是多。最漂亮的代碼,往往並不是因為代碼多麼複雜或者實現了什麼強大的功能,而是在功能不變的前提下,無論改動或刪掉代碼裡的任何一句話,都只會讓代碼變蠢(比如引起效率、複用性或可讀性的下降)。

不但完成當前功能的代碼不能刪改簡化,甚至在可預見的未來要增加一些更復雜的功能時,對其也幾乎不需要什麼改動,這大概就是所謂的“人死代碼在”的最高境界。


晴月浩新雪


這樣漂亮嗎



白菜大叔傻乎乎


當年見到王垠的40行CPS代碼確實是被其優美所震撼:

另外,Scheme 作為 編程語言中的皇后,其代碼本身就是 極度漂亮了的,在加上 組合子的 邏輯,就可以得到極致優美的代碼:

附上組合子的測試代碼:

當然,那些基於《λ-演算》用於構造 計算機語言的代碼也是極度優美的,例如:

最後,Scheme 中 還有很多 堪稱經典的 優美代碼,有興趣大家可以自行百度,這裡就不一一枚舉了。


思考思考的動物


一個具有十多年經驗的老碼農來強答一下:


很多朋友發的答案看起來很酷炫,但那些都是逗樂的,並無實際應用價值、甚至在實際的項目是都是有百害而無一益的代碼。


各種語言的代碼觀感肯定是不一樣的,但我認為美的代碼的標準應該是共通的。漂亮的代碼應該是整潔乾淨、樸實易讀的,代碼不僅在命名、排版方面要做到最好,同時在健壯性上也應該毫不妥協,有能力處理各種異常情況,能經受住時間的考驗。


我個人見過實際生產代碼中最漂亮的應該是開源的 PostgreSQL 數據庫的源代碼,排版編寫上完全符合整潔、易讀的要求,同時作為數據庫系統,健壯性也是其存在價值的根本需求。


下面截取幾段給大家欣賞:




命叔炸機


直接看圖吧,學C/C++的標誌define

粘貼過來代碼比較凌亂:

//RGB 色彩轉換

#define RGB(r,g,b) (((r)&0xff)|(((g)&0xff)<<8)|(((b)&0xff)<<16))

//ARGB 色彩轉換

#define ARGB(a,r,g,b) (((r)&0xff)|(((g)&0xff)<<8)|(((b)&0xff)<<16)|(((a)&0xff)<<24))

#include

//三維座標轉二維座標X

#define D3TOD2X(x,y,z) (int)(x+y/2.0*cos(atan2(1.0,1.0)))

//三維座標轉二維座標Y

#define D3TOD2Y(x,y,z) (int)(z+y/2.0*sin(atan2(1.0,1.0)))

//三維座標轉換為二維座標X,Y

#define D3TOD2XY(x,y,z) (int)(x+y/2.0*cos(atan2(1.0,1.0))),(int)(z+y/2.0*sin(atan2(1.0,1.0)))

//獲取空間兩確定直線的向量

#define VECTORLINE(x1,y1,z1,x2,y2,z2) \t(int)(x2-x1), \t(int)(y2-y1), \t(int)(z2-z1)

//獲取空間平面的法向量

#define NORMALLINE(x1,y1,z1,x2,y2,z2) \t(int)(y1*z2 - y2*z1), (int)(x1*z2 - x2*z1), (int)(x1*y2 - x2*y1)

//獲取空間向量的夾角

#define VECTORCOS(x1,y1,z1,x2,y2,z2) \t((x1*x2 + y1*y2 + z1*z2)*1.0 /\t(sqrt(pow(x1, 2.0)+pow(y1, 2.0)+pow(z1, 2.0))*sqrt(pow(x2, 2.0)+pow(y2, 2.0)+ pow(z2, 2.0))))

//為類成員變量自動添加get和set方法

#define CLASSVALUE(ctype,vtype,name) \tctype vtype name; public: \tvoid set##name(vtype elem){this.##name=elem;} vtype get##name(){return this.##name;}



Ice2Faith


這是著名“心形線”java代碼

百歲山的廣告看過吧!可能很多人並沒有看懂。我來普及一下。

講的是52歲的笛卡爾和18歲的瑞典公主克里斯丁的忘年愛情故事。笛卡爾是克里斯丁的數學老師,他們在相處的過程中,慢慢產生了感情。公主的父親發現了以後大怒,將笛卡爾流放回法國。回國以後的笛卡爾每天給公主都寫信,但是一直沒有得到公主的回信。笛卡爾寫給公主的最後一封信只有一個公式。這就是數學界著名的“心形線”

r=a(1-sinθ)


阿邁達聊技術


這是一個心型代碼:

#include

#include

int main ()

{

float y , x , a ;

for ( x=-1.5f ; x<1.5f ; x+0.05f)

{

a=x*x+y*y-1;

putchar (a*a*a-x*x*y*y*y<=0.0f ?'*' ; '' );

}

putchar('\\n');

}

return 0 ;

}


唯美橘子君


Haskell的快排.



心如止水230574190


前言

軟件工程師之於代碼的審美,就好比於人之於美的定義。隨著閱歷的增加,人對美的觀點會發生變化。同樣,軟件工程師至於代碼的審美,也會隨著不同的成長階段而發生著變化。


下面我們從以下三個階段來看看代碼漂亮的定義標準:

1.零基礎

2.入門級

3.中高級


零基礎

零基礎在我們還未進入軟件行業時,軟件對於我們而言,充滿著神秘和好奇。對於零基礎階段的我們來說,能編寫並運行第一個程序,就是很大的一種滿足。因此,在零基礎階段,我們會認為能輸出一個Hello World就是一段最漂亮的代碼。


入門級

在經過零基礎的洗禮之後,我們便進階到入門級。在入門級中,我們會根據公司任務需求來進行開發。此時,對於入門級別的我們來說,能在規定時間內把公司分配的任務給完成,就是一種很大的成就感。所以,對於入門階段的我們來說,完成功能性需求的代碼就是一種美。


中高級

在經歷過入門級洗禮後,我們已足夠勝任自己手頭的工作。此時,我們的眼光便不再侷限於功能性的開發。取而代之,追求的是代碼的高內聚,低耦合和擴展性等標準,以此來更好適應未來業務的拓展需求。在此階段,我們認為:代碼的高內聚,低耦合以及易於擴展等標準就是一種美。


總結

以上就是我所認為的軟件工程師在不同階段對於代碼美的一種審讀標準。如果你有不同見解,歡迎在評論區留言評論。


如果你喜歡我的文章或觀點,記得點贊關注。不定期分享好玩科技知識,帶大家一起體會探索科技的那份獨有思考和樂趣。


drinkingcode


int main(int a,int b){

return 1;

}


分享到:


相關文章: