<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          如何選擇適合你的代碼風(fēng)格?

          共 4947字,需瀏覽 10分鐘

           ·

          2021-04-25 10:09

          點(diǎn)擊上方藍(lán)色字體,選擇“標(biāo)星公眾號(hào)”

          優(yōu)質(zhì)文章,第一時(shí)間送達(dá)

            作者 |  MushRain

          來源 |  urlify.cn/fABVzu

          76套java從入門到精通實(shí)戰(zhàn)課程分享

          代碼風(fēng)格

          • 聲明:代碼風(fēng)格是幫助開發(fā)者更加高效的開發(fā)以及后期維修更新迭代的基礎(chǔ),良好的代碼風(fēng)格可以提升團(tuán)隊(duì)的開發(fā)效率,產(chǎn)品不同功能,在清晰簡(jiǎn)潔的代碼風(fēng)格下更加高效的被開發(fā)出來。

          一,為什么需要管理代碼風(fēng)格?

          • 試著想一下,一個(gè)程序員寫一個(gè)程序,commitcommit到團(tuán)隊(duì)的程序管理庫里面,如果團(tuán)隊(duì)中的其他開發(fā)者需要這個(gè)功能,那么他就會(huì)去閱讀這個(gè)源碼,正所謂一千個(gè)讀者,一千個(gè)哈姆雷特。就算是代碼這樣對(duì)于計(jì)算機(jī)來說非常嚴(yán)格的語言,而在我們?nèi)祟惪磥斫^對(duì)無法拋開我們固有的邏輯思維,而像計(jì)算機(jī)一樣去思考,像程序編譯器一樣去理解這段程序,我們可以做到的就是閱讀源碼,梳理出自己的一套邏輯,然后理解這段程序的作用是干什么。

          • 簡(jiǎn)而言之,代碼風(fēng)格是一個(gè)團(tuán)隊(duì)中必須統(tǒng)一的標(biāo)準(zhǔn),不統(tǒng)一就會(huì)導(dǎo)致不同程序間的接口調(diào)用凌亂,團(tuán)隊(duì)成員對(duì)于整個(gè)程序的框架理解也不會(huì)更加清晰。

          二,代碼風(fēng)格細(xì)節(jié)

          • 為了了解如何規(guī)定一個(gè)好的代碼風(fēng)格,我們先來了解一下代碼到底由哪些部分組成。

          代碼組成部分

          • 影響自己的代碼組成部分

          一, IDE:(集成開發(fā)環(huán)境),正對(duì)于不同的語言,不論是前端還是后端,都有各自的代碼風(fēng)格,選擇不同的集成式開發(fā)環(huán)境可以幫助你理解你們所正在開發(fā)的項(xiàng)目里面的一些層級(jí)結(jié)構(gòu),比如做Python,web開發(fā)的Django框架使用Pycharm是這樣的:

          • 左側(cè)是項(xiàng)目的文件結(jié)構(gòu),右側(cè)是代碼的展示,不同文件夾采取不同的顏色加以區(qū)分,幫助更好的理解以及管理項(xiàng)目。

          二, 編程字體:正如一個(gè)人的字體一樣,不同的字體反映到嚴(yán)格的代碼上面,反映自然大不相同,甚至走向相背離的極端,下面舉兩個(gè)具體的字體例子:

          • Magneto字體

          • Cascadia Code?。校套煮w

          • 相比于Magneto那更具藝術(shù)的字體,可以很清楚的發(fā)現(xiàn)Cascadia Code字體對(duì)于代碼的展示更具優(yōu)勢(shì),不同單詞之間,不同字母數(shù)字之間區(qū)分更加的明顯,方便程序員閱讀以及理解代碼的原始意義,就好像是閱讀一個(gè)不僅僅聰明而且謙虛的人寫的作文,字體優(yōu)美簡(jiǎn)潔,同時(shí)在這種情況下,項(xiàng)目的共同構(gòu)建者也更容易發(fā)現(xiàn)你的問題,提出意見,一起讓整個(gè)程序更加的完善,魯棒性更好

          • 代碼高亮(這一點(diǎn)非常重要)舉一個(gè)非常直觀的例子這是一張字母圖,需要你去找到所有的V字符也許你覺得很簡(jiǎn)單,


          • 但是相比于下面這種呈現(xiàn)方式,


          • V一下子就找到了,是不是非常容易,你幾乎不需要?jiǎng)幽X筋,聯(lián)想到我們?nèi)祟惱斫饪陀^事物的規(guī)律,一件事物從越是多的方面去理解,自然理解的也就越深,這一點(diǎn)同樣適用于我們編寫代碼的過程,不同的高亮讓你一下子通過視覺一下子就理解了這個(gè)區(qū)域到底是什么功能。

          #include <stdio.h>
          #include <time.h>

          void bubbleSort_1(int array[], int length);

          void print(int array[], int length);

          void bubbleSort_2(int array[], int length);

          int main() {
              clock_t begin = clock();
              int array[] = {10, 1, 10, 0, 111, 121, 147, 0, 1, 3, 265, 111, 10, -156, 1315, 0001, 1518, 88, 131};
              int length = 19;
              bubbleSort_1(array, length);
              print(array, length);
              clock_t end = clock();
              printf("程序總運(yùn)行時(shí)長為:%ldms", end - begin);
          }
          #include <stdio.h>
          #include <time.h>

          void bubbleSort_1(int array[], int length);

          void print(int array[], int length);

          void bubbleSort_2(int array[], int length);

          int main() {
              clock_t begin = clock();
              int array[] = {10, 1, 10, 0, 111, 121, 147, 0, 1, 3, 265, 111, 10, -156, 1315, 0001, 1518, 88, 131};
              int length = 19;
              bubbleSort_1(array, length);
              print(array, length);
              clock_t end = clock();
              printf("程序總運(yùn)行時(shí)長為:%ldms", end - begin);
          }
          • 稍微高亮一下就產(chǎn)生了完全不一樣的效果。

          更何況還可以正對(duì)于每一個(gè)代碼細(xì)節(jié)進(jìn)行高亮

          • 影響別人觀感的部分

          • 首先先來看一個(gè)極端的例子:

          • 這是一個(gè)網(wǎng)頁的JS,雜亂無章的排列,雖然由關(guān)鍵字高亮,雖然有行號(hào),雖然有優(yōu)秀的變量聲明,但是說實(shí)在的正常人都不一定可以讀懂這個(gè)代碼的實(shí)際意義到底是什么,那么如果規(guī)范化之后呢?

          • 瞬間就舒暢了,該縮進(jìn)的縮進(jìn),該有的分號(hào)出現(xiàn)在該有的位置上,簡(jiǎn)潔的命名出現(xiàn)在該出現(xiàn)的地方,誰遇上這樣的代碼不喜歡呢?

          總結(jié)

          • 影響自己的

          • IDE選擇

          • 代碼字體

          • 代碼高亮

          • 影響別人的:

          • 代碼縮進(jìn)

          • 同時(shí)影響的:

          • 代碼命名

          • 代碼注釋

          三, 代碼風(fēng)格選擇:

          • 這里著重介紹兩種已經(jīng)被很多程序開發(fā)者所接受的代碼風(fēng)格

          • K&RK&R

          • MicroSoft代碼風(fēng)格

          K&R

          K&R是一個(gè)歷史相當(dāng)悠久的代碼風(fēng)格,最開始就是由于伴隨著C語言圣經(jīng)Kernighan和Ritchie的《 C Programming Language 》的出版而逐漸被程序開發(fā)者們所接受的

          具體細(xì)節(jié)

          #include <stdio.h>

          int main(int argc, char *argv[]) {  
                 int a = rand() % 100;  
                 if (a > 25) {  
                         call_a_function();  
                         call_another_function();  
                 } else {  
                         call_b_function();  
                 } // end if  
          } // end main  

          1、8個(gè)字符的TAB鍵,列數(shù)限制在80列。

          • 這在一定程度上要求程序開發(fā)這者必須精簡(jiǎn),否則一不小心就會(huì)超出列數(shù)限制。

          2、左花括號(hào)寫在一行的末端,然而右花括號(hào)獨(dú)立一行。

          • 節(jié)省空間,整個(gè)程序排版緊湊,連續(xù)。

          3、命名法:

          • 以精簡(jiǎn)為主:所有變量以小寫字母為主,單詞考慮縮寫, 長單詞考慮使用下劃線風(fēng)格。

          • int result

          • char user_name

          • char[] user_pwd

          MicroSoft代碼風(fēng)格

          MicroSoft風(fēng)

          微軟使用一個(gè)名為匈牙利編碼規(guī)范,他使用在微軟任何產(chǎn)品內(nèi),如果你要使用微軟的API,或者你也需要一套類似的編碼規(guī)范,那么學(xué)習(xí)一下總是沒有錯(cuò)的。

          變量命名

          int *lpiData //32位int指針

          char *g_size // 全局變量指針,使用g作為前綴

          縮進(jìn):

          class CVector 
          {
           public:
              CVector() {}
              .
              .
              .
              private:
              int x, y, z;
          }
          • 左括號(hào)與右括號(hào)獨(dú)占一行






          粉絲福利:Java從入門到入土學(xué)習(xí)路線圖

          ??????

          ??長按上方微信二維碼 2 秒


          感謝點(diǎn)贊支持下哈 

          瀏覽 57
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩免费片 | 老司机精品无码 | 大鸡吧操小穴视频 | 91九九热 | 五月天成人在线观看视频 |