云駐共創(chuàng)·】編程語言語法和風格是否應(yīng)該建立統(tǒng)一的標準?

      網(wǎng)友投稿 758 2025-04-01

      零.前言

      最近做學(xué)校的java項目的時候,對編碼規(guī)范問題進行了深入的思考理解,在當前環(huán)境下,各個語言的最權(quán)威的語法書均沒有給出編碼規(guī)范,那么編程語言語法和風格是否應(yīng)該建立統(tǒng)一的標準呢?

      1.大佬如是說

      在討論這個問題之前,我查閱了一些大佬們對于編碼規(guī)范的態(tài)度,有一些很有趣,還有一些很激進。

      羅馬帝國衰敗的主要原因之一是因為他們?nèi)鄙?,他們沒有辦法知道他們的C程序已經(jīng)成功的執(zhí)行完了。

      -- Robert Firth

      一個有過BASIC編程經(jīng)歷的人是很難學(xué)會好的編程習慣的。作為一個潛在的程序員,他們已經(jīng)被腦殘并且無法修復(fù)。

      -- Edsger Wybe Dijkstra, Dijkstra 算法發(fā)明者

      “優(yōu)良設(shè)計創(chuàng)造價值的速度,快于其增加成本的速度。 ”—托馬斯·C.蓋勒(Thomas C.Gale) 每名程序員都是作家。 ”—塞坎·雷勒克(Sercan Leylek)

      “寫代碼時,每次都要告訴自己:最后負責維護代碼的,會是一個知道你住在哪的變態(tài)暴力狂。 ”— 約翰 ·伍德(John Woods)

      讀代碼比寫代碼困難”---Joel Spolsky (StackOverflow合伙創(chuàng)始人)

      重構(gòu)早就成了軟件開發(fā)從業(yè)者本能的一部分,每個IDE都內(nèi)置了重構(gòu)功能,每個程序員都定期重構(gòu)自己的代碼。技能上通常不再是問題,但是相對于當年第1版的讀者,現(xiàn)在的程序員對于重構(gòu)這個思想從何而來以及各種細節(jié)反而更陌生,這時候就更值得重新讀一下這本書了。

      ——霍炬 , PRESS.one CTO

      其中有一句話最打動我,是塞坎 ·雷勒克這位文科畢業(yè)自學(xué)編程的專業(yè)程序員說的: "每一名程序員都是 一個作家。 "其實寫代碼和寫一篇文章沒有什么不同,而優(yōu)秀的編碼規(guī)范就像各種文章的固定格式一樣 (比如記敘文人物,地點環(huán)境;議論文三要素等等),在當前的環(huán)境下,一個項目的代碼不僅需要多人合作,而且還需要后來人維護。就像Joel Spolsky說的:"讀代碼比寫代碼困難"。具有一致的編碼規(guī)范習慣,可以使我們的代碼更加模式化,可讀性更高,能夠大幅度提高公司工作效率。因此我認為:為語言 建立編程語言語法和風格的統(tǒng)一標準是必要的。

      2.編碼規(guī)范使可讀性更高

      代碼的可讀性增高是最顯著的原因:

      記得我在剛剛寫技術(shù)博客的時候,曾經(jīng)在CSDN的熱榜第一看過一篇文章,是初學(xué)C語言的,小伙子一看就很用心,把代碼寫成了一個愛心的形狀。

      大概就是將這里的Love換成了int main(){int i=0;printf("%d",i);return 0}等等的一大堆。也許對于初學(xué)者來說這樣會很有趣,畢竟熱度都可以到達熱榜第一了(小男孩我就從來沒上過熱榜第一),但是這樣的代碼可以說是可讀性非常非常差的,基本要被公司開除了。編程所獲得的樂趣絕對不是改變代碼的形狀所獲得的。這是一個很惡劣的例子。

      再來舉一個大佬在開發(fā)過程中實際的例子,在前不久他們的公司接到了一個項目,源碼在1.3w行左右,他們團隊簡單地通過公司的質(zhì)量檢測工具得到了一個評估報告:

      API注釋: 35%

      代碼注釋覆蓋率: 10%

      不符合代碼規(guī)范問題: 1w+

      存在嚴重的阻斷: 100+

      無論是誰,拿到了這樣一份質(zhì)檢報告內(nèi)心都會是崩潰的,這等于這段代碼的源碼根本無法閱讀,基本不可能嘗試理解并維護。大佬的團隊不得不重新思考重寫整個項目的可行性,用了大半個月做可行性分析 (包括原維護部門的交流,原開發(fā)文檔的補全,測試部門的測試用例等等)。最后得到了需要進行重寫 的結(jié)論。接下來是對新環(huán)境的搭建,新測試用例的搬遷.....為此又花費支付了4個月左右的時間,前前后后加起來小半年,而這些時間有必要付出嗎?肯定是沒有必要。

      【云駐共創(chuàng)·】編程語言語法和風格是否應(yīng)該建立統(tǒng)一的標準?

      了解了他的這些情況后,我不由得慶幸自己遇到了一個好的高級語言程序設(shè)計的大學(xué)老師,在學(xué)習人生中第一門語言--C語言的數(shù)據(jù)結(jié)構(gòu)的時候,我們老師用C++STL的命名規(guī)范來要求我們書寫函數(shù)名。并給作業(yè)中無意義的變量名(比如a,b,c等)進行一定的扣分。由于實驗項目較小,而且基本都是一個人來完成的,因此當時并不在意。從了解了一些實際開發(fā)中的情況開始,我便開始注意了編程語言的編碼規(guī)范。盡量寫出不僅可以被自己閱讀,也可以被別人快速理解的代碼。

      3.降低學(xué)習成本

      目前的互聯(lián)網(wǎng)大廠基本都有自己的一套編碼規(guī)范,但是這些體系又各不相同,如果從一家公司換到另一家公司,就需要重新學(xué)習新的編碼體系,甚至可能會發(fā)生混淆造成不必要的后果。如果語言本身就帶有一定的編碼規(guī)則的話,不僅可以提高代碼的可繼承性,還可以降低程序員的學(xué)習成本, 使開發(fā)更加高效。看一份優(yōu)秀的,排版有規(guī)律可循的代碼和看一份雜亂無章的代碼,給人的感覺是不一樣的,就好比我們居住的房間,更加整潔才更適合人居住。各種東西拜訪的整整齊齊才給人一種舒服的感覺。才有繼續(xù)編寫或者維護的欲望。

      4.編碼規(guī)范的書籍

      這里還有兩本比較出名的講解編碼規(guī)范和重構(gòu)的書,說明早已有人重視到了這個問題。

      5.劣勢

      萬物都是相對的,規(guī)范編碼也會造成一定的問題,只不過這些問題相對于規(guī)范編碼的優(yōu)勢來說力量較弱,因此我仍然是支持規(guī)范編碼的。

      曾經(jīng)思考過這樣一個問題:拋開編碼,如果我們的文字也被要求規(guī)范了呢?書寫方式起筆落筆都有統(tǒng)一 的標準,大家都嚴格地去遵守。一旦這樣雖說我們可以更加方便地閱讀文字,但是就不存在所謂的行書草書的“行草之美”了。之前有幸看過蘇軾的真跡,蘇軾可謂是一位大書法家,他的文字灑脫飄逸,有超 凡之感,但如果必須按照楷書那樣一筆一劃地工工整整地完成呢?再如同李白工工整整規(guī)規(guī)矩矩地用印刷體書寫: “天生我材必有用,千金散盡還復(fù)來”,雖然方便了閱讀,但是意境已經(jīng)消失了。

      說的再直白一些,當你在追求如何精修文章,追求書法的時候,其實是淺薄的。你大可以花費時間去鉆研一些編程中更加深刻的問題,或許正是這些問題才導(dǎo)致了大牛們在設(shè)計語言的時候,并沒有專門花費時間去總結(jié)一套編碼規(guī)范吧。當有一天你發(fā)現(xiàn)了一個超高效的算法,但是卻因為定義一個變量的大小寫而被編譯器指責的時候,這會不會消磨了編程的興趣呢?

      雖然如此,但是在如今的環(huán)境下,大部分的程序員還是在做著中規(guī)中矩的任務(wù),并不具備創(chuàng)造一個新的算法或者語言的能力,試問李白杜甫能有幾人呢?因此相對于劣勢來說,規(guī)范編碼的優(yōu)勢還是更加明顯的。

      6.總結(jié)

      總而言之,我還是認為規(guī)范編碼會更加好一些,這只是我作為一個學(xué)生角度的思考。這個世界上沒有任何一件事情是完全正確或者錯誤的,只是在利和弊的相較之下才決定會不會去做這件事情。

      本文整理自華為云社區(qū)【內(nèi)容共創(chuàng)】活動第15期。

      https:// bbs.huaweicloud.com/blogs/345822

      任務(wù)35:編程語言語法和風格是否應(yīng)該建立統(tǒng)一的標準?

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:excel表做甘特圖(excel表甘特圖怎么變成圖片)
      下一篇:智能制造生產(chǎn)模式的變革是“制造業(yè)服務(wù)化行動計劃”的主戰(zhàn)場
      相關(guān)文章
      亚洲乱妇熟女爽到高潮的片| 久久91亚洲精品中文字幕| 亚洲综合久久夜AV | 亚洲夂夂婷婷色拍WW47| 亚洲av中文无码乱人伦在线咪咕 | 亚洲网站视频在线观看| 亚洲毛片αv无线播放一区| 国产成人99久久亚洲综合精品| 亚洲一区二区三区丝袜| 亚洲欧洲久久精品| 国产国拍亚洲精品mv在线观看 | 日韩欧美亚洲中文乱码| 国产精品亚洲mnbav网站| 蜜臀亚洲AV无码精品国产午夜.| 亚洲欧美黑人猛交群| 亚洲国产成人无码AV在线| 亚洲av无码专区国产不乱码 | 77777午夜亚洲| va天堂va亚洲va影视中文字幕 | 亚洲成aⅴ人片在线观| 亚洲伦理一二三四| 亚洲最大福利视频| 亚洲国产精品嫩草影院| 亚洲 无码 在线 专区| 亚洲伊人成无码综合网| 亚洲老妈激情一区二区三区| 国产∨亚洲V天堂无码久久久| 水蜜桃亚洲一二三四在线| 亚洲高清视频免费| 亚洲三级在线观看| MM1313亚洲国产精品| 亚洲乱亚洲乱少妇无码| 亚洲欧洲日产国码无码久久99| 亚洲AV无码一区东京热久久| 亚洲黄色片在线观看| 亚洲不卡在线观看| 在线看亚洲十八禁网站| 国产专区一va亚洲v天堂| 亚洲av无码成人黄网站在线观看 | 日韩精品电影一区亚洲| 国产国拍精品亚洲AV片|