chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

計(jì)算機(jī)編程里的美化和丑化概念

Linux閱碼場(chǎng) ? 來源:Linux閱碼場(chǎng) ? 作者:Linux閱碼場(chǎng) ? 2021-04-16 11:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

我們不提倡以貌取人,但是人確實(shí)有美丑之別,美人讓人賞心悅目,丑人讓人。。。不那么賞心悅目。

代碼也一樣。

計(jì)算機(jī)編程里有一組相關(guān)的概念,一個(gè)叫做Prettify(美化),一個(gè)叫做Uglify(丑化)。

Prettify的典型應(yīng)用是在JSON/XML/HTML這些數(shù)據(jù)的呈現(xiàn)上,對(duì)眼睛不友好的json,烏央烏央的一坨,讓人看起來很費(fèi)勁:

[{“name”:“Mac”,“l(fā)anguage”:“python”,“major”:“computer application”},{“name”:“Ava”,“l(fā)anguage”:“C++”},{“name”:“Ryan”,“l(fā)anguage”:“Java”}]

對(duì)眼睛友好的json,層次結(jié)構(gòu)清晰明了:

{

“name”: “Mac”,

“l(fā)anguage”: “python”,

“major”: “computer application”

},

{

“name”: “Ava”,

“l(fā)anguage”: “C++”

},

{

“name”: “Ryan”,

“l(fā)anguage”: “Java”

}

而Uglify(以及Obfuscate/混淆)的應(yīng)用場(chǎng)景,是在不改變代碼邏輯的情況下讓代碼很難理解,以減少代碼被剽竊抄襲的可能,起到保護(hù)代碼作用。比如,以下代碼很容易理解:

def get_user(username):

pass

username = ‘a(chǎn)va’

user = get_user(username)

以下代碼和以上代碼在功能上是同等的,但是非?!胺慈祟悺保?/p>

def a121(rw24__fdx):

pass

kwlekf_fw12q= ‘a(chǎn)va’

II11LL =a121(kwlekf_fw12q)

這個(gè)例子看似很蠢,但是它可以讓我們更直觀地看到代碼可讀性(Readability)的重要性,從而引起一些反思:自己寫的代碼可能是不是也像是被“丑化”過,讓人看得視力下降,血壓上升,怒從心頭起,惡向膽邊生?

代碼能正確工作,這僅僅是寫代碼的基本要求,高質(zhì)量的代碼,一定具有良好的可讀性。

在某種程度上來說,寫代碼是一種社交行為,其溝通的對(duì)象不僅包括計(jì)算機(jī)(使之可以被執(zhí)行),也包括人。

這其中牽涉到人的環(huán)節(jié)很多,包括評(píng)審代碼和后續(xù)的代碼維護(hù)(修復(fù)缺陷、重構(gòu)改進(jìn))等等,進(jìn)行這些操作有一個(gè)基本前提:理解代碼邏輯!用更直白的話講,就是能看懂。

如何才能讓人更容易看懂?

遵循KISS原則: Keep It Simple and Stupid!簡單直白,一目了然!

我們不妨來賞析兩段詩詞:

“長橋臥波,未云何龍?復(fù)道行空,不霽何虹?高低冥迷,不知西東”,出自杜牧的《阿房宮賦》,描寫了阿房宮的氣勢(shì)。

“不敢高聲語,恐驚天上人”,出自李白的《夜宿山寺》,描寫了山寺高樓。

這兩段詩詞具有一定的可比性:

都是描寫建筑

作者年代相近(事實(shí)上,杜牧比李白晚生了一個(gè)世紀(jì),離我們的年代更近)

都是傳世名篇。

但是,他們的風(fēng)格顯然不一樣。

《阿房宮賦》引經(jīng)據(jù)典,辭藻華麗,但是不容易看懂,讓人望而生畏?!兑顾奚剿隆酚迷~簡單卻絲毫不犧牲詩意的表達(dá),所以老少咸宜,販夫走卒皆可傳誦。

假如,《阿房宮賦》問世之后,我們發(fā)現(xiàn)阿房宮其實(shí)還有一處奇特的噴泉景觀沒有被寫進(jìn)去。如果讓我在原文基礎(chǔ)上加上相應(yīng)的內(nèi)容,我會(huì)很惶恐,因?yàn)檫B原文都沒看懂,談何修改和擴(kuò)展?不敢,不敢!

但是,如果讓我來擴(kuò)展《夜宿山寺》,雖然水平和詩仙有云泥之別,但是因?yàn)檫@首詩良好的可讀性,愚笨如我也讀懂了,或許,我可以斗膽以狗尾續(xù)貂。。。

代碼需要讓計(jì)算機(jī)明白我們想讓它做什么,同時(shí)也需要讓人(其他程序員)可以很容易地明白其中的意圖和思路。詩詞的可讀性影響詩詞的傳承,代碼的可讀性影響代碼的傳承(可維護(hù)性),在這個(gè)方面,詩詞和代碼是相通的。

寫到這里,我的心情突然緊張起來了。我總是教訓(xùn)徐小胖寫作文天馬行空離題萬里,沒想到,我自己的毛病也沒有改過來。為了打造嚴(yán)肅的軟件編程技術(shù)公眾號(hào),我以后要爭(zhēng)取做到扣題。

原文標(biāo)題:漫談代碼可讀性

文章出處:【微信公眾號(hào):Linuxer】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 源代碼
    +關(guān)注

    關(guān)注

    96

    文章

    2953

    瀏覽量

    68378

原文標(biāo)題:漫談代碼可讀性

文章出處:【微信號(hào):LinuxDev,微信公眾號(hào):Linux閱碼場(chǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Quantinuum“Reimei”量子計(jì)算機(jī)在RIKEN正式運(yùn)行

    )成功安裝并全面投入運(yùn)行。 此次合作中,RIKEN為“Reimei”量子計(jì)算機(jī)提供了世界級(jí)的基礎(chǔ)設(shè)施,包括為其量身定制的設(shè)計(jì)、準(zhǔn)備及交付工作。這一程碑式的成就不僅標(biāo)志著Quantinuum在量子計(jì)算領(lǐng)域的持續(xù)突破,也預(yù)示著未來
    的頭像 發(fā)表于 02-17 10:21 ?464次閱讀

    云端超級(jí)計(jì)算機(jī)使用教程

    云端超級(jí)計(jì)算機(jī)是一種基于云計(jì)算的高性能計(jì)算服務(wù),它將大量計(jì)算資源和存儲(chǔ)資源集中在一起,通過網(wǎng)絡(luò)向用戶提供按需的計(jì)算服務(wù)。下面,AI部落小編為
    的頭像 發(fā)表于 12-17 10:19 ?550次閱讀

    虛擬內(nèi)存對(duì)計(jì)算機(jī)性能的影響

    在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,內(nèi)存管理是確保系統(tǒng)高效運(yùn)行的關(guān)鍵因素之一。虛擬內(nèi)存技術(shù)作為內(nèi)存管理的核心組成部分,對(duì)于提升計(jì)算機(jī)性能和用戶體驗(yàn)起著至關(guān)重要的作用。 一、虛擬內(nèi)存的概念 虛擬內(nèi)存是一種內(nèi)存管理技術(shù)
    的頭像 發(fā)表于 12-04 09:17 ?3483次閱讀

    工業(yè)中使用哪種計(jì)算機(jī)?

    在工業(yè)環(huán)境中,工控機(jī)被廣泛使用。這些計(jì)算機(jī)的設(shè)計(jì)可承受極端溫度、灰塵和振動(dòng)等惡劣條件。它們比標(biāo)準(zhǔn)消費(fèi)類計(jì)算機(jī)更耐用、更可靠。工業(yè)計(jì)算機(jī)可控制機(jī)器、監(jiān)控流程并實(shí)時(shí)收集數(shù)據(jù)。其堅(jiān)固的結(jié)構(gòu)和專業(yè)功能
    的頭像 發(fā)表于 11-29 14:07 ?708次閱讀
    工業(yè)中使用哪種<b class='flag-5'>計(jì)算機(jī)</b>?

    量子計(jì)算機(jī)與普通計(jì)算機(jī)工作原理的區(qū)別

    ? 本文介紹了量子計(jì)算機(jī)與普通計(jì)算機(jī)工作原理的區(qū)別。 量子計(jì)算是一個(gè)新興的研究領(lǐng)域,科學(xué)家們利用量子力學(xué),制造出具有革命性能力的計(jì)算機(jī)。雖然現(xiàn)在的量子
    的頭像 發(fā)表于 11-24 11:00 ?1481次閱讀
    量子<b class='flag-5'>計(jì)算機(jī)</b>與普通<b class='flag-5'>計(jì)算機(jī)</b>工作原理的區(qū)別

    ROM對(duì)計(jì)算機(jī)性能的影響

    只讀存儲(chǔ)器(ROM)是計(jì)算機(jī)硬件中的一個(gè)重要組成部分,它負(fù)責(zé)存儲(chǔ)計(jì)算機(jī)啟動(dòng)時(shí)必需的固件和基本輸入輸出系統(tǒng)(BIOS)。ROM的性能和質(zhì)量對(duì)計(jì)算機(jī)的整體性能有著深遠(yuǎn)的影響。 ROM的基本概念
    的頭像 發(fā)表于 11-04 10:31 ?1217次閱讀

    計(jì)算機(jī)接口位于什么之間

    計(jì)算機(jī)接口是計(jì)算機(jī)硬件和軟件之間、計(jì)算機(jī)與外部設(shè)備之間以及計(jì)算機(jī)各部件之間傳輸數(shù)據(jù)、控制信息和狀態(tài)信息的硬件設(shè)備和軟件程序。它在計(jì)算機(jī)系統(tǒng)中
    的頭像 發(fā)表于 10-14 14:02 ?1309次閱讀

    信號(hào)繼電器在計(jì)算機(jī)系統(tǒng)中的應(yīng)用

    信號(hào)繼電器在計(jì)算機(jī)系統(tǒng)中的應(yīng)用是一個(gè)重要且復(fù)雜的領(lǐng)域,它作為電氣控制的關(guān)鍵元件,在計(jì)算機(jī)系統(tǒng)中發(fā)揮著信號(hào)轉(zhuǎn)換、隔離、放大以及控制等多種作用。以下將從信號(hào)繼電器的基本概念、工作原理、特性、在計(jì)算
    的頭像 發(fā)表于 09-27 16:29 ?938次閱讀

    計(jì)算機(jī)存儲(chǔ)系統(tǒng)的構(gòu)成

    計(jì)算機(jī)存儲(chǔ)系統(tǒng)是計(jì)算機(jī)中用于存放程序和數(shù)據(jù)的設(shè)備或部件的集合,它構(gòu)成了計(jì)算機(jī)信息處理的基礎(chǔ)。一個(gè)完整的計(jì)算機(jī)存儲(chǔ)系統(tǒng)通常包括多個(gè)層次的存儲(chǔ)器,從高速緩存(Cache)到主存儲(chǔ)器(Mai
    的頭像 發(fā)表于 09-26 15:25 ?2537次閱讀

    計(jì)算機(jī)的內(nèi)存容量有什么作用

    計(jì)算機(jī)的內(nèi)存容量,作為一個(gè)核心概念,在計(jì)算機(jī)科學(xué)、信息技術(shù)以及日常使用中扮演著至關(guān)重要的角色。它不僅直接關(guān)系到計(jì)算機(jī)處理數(shù)據(jù)的能力,還影響著用戶體驗(yàn)、系統(tǒng)性能以及多任務(wù)處理的效率。在深
    的頭像 發(fā)表于 09-10 14:47 ?2516次閱讀

    簡述計(jì)算機(jī)總線的分類

    計(jì)算機(jī)總線作為計(jì)算機(jī)系統(tǒng)中連接各個(gè)功能部件的公共通信干線,其結(jié)構(gòu)和分類對(duì)于理解計(jì)算機(jī)硬件系統(tǒng)的工作原理至關(guān)重要。以下是對(duì)計(jì)算機(jī)總線結(jié)構(gòu)和分類的詳細(xì)闡述,內(nèi)容將涵蓋總線的基本
    的頭像 發(fā)表于 08-26 16:23 ?5183次閱讀

    晶體管計(jì)算機(jī)和電子管計(jì)算機(jī)有什么區(qū)別

    晶體管計(jì)算機(jī)和電子管計(jì)算機(jī)作為計(jì)算機(jī)發(fā)展史上的兩個(gè)重要階段,它們?cè)诙鄠€(gè)方面存在顯著的區(qū)別。以下是對(duì)這兩類計(jì)算機(jī)在硬件、性能、應(yīng)用以及技術(shù)發(fā)展等方面區(qū)別的詳細(xì)闡述。
    的頭像 發(fā)表于 08-23 15:28 ?3610次閱讀

    晶體管計(jì)算機(jī)的誕生和特點(diǎn)

    晶體管計(jì)算機(jī)的誕生標(biāo)志著計(jì)算機(jī)技術(shù)的一個(gè)重要里程碑,它不僅推動(dòng)了計(jì)算機(jī)硬件的革新,還促進(jìn)了計(jì)算機(jī)軟件技術(shù)的發(fā)展。以下是對(duì)晶體管計(jì)算機(jī)誕生及其
    的頭像 發(fā)表于 08-23 15:06 ?4238次閱讀

    計(jì)算機(jī)系統(tǒng)的組成和功能

    計(jì)算機(jī)系統(tǒng)是一個(gè)復(fù)雜而龐大的概念,它涵蓋了計(jì)算機(jī)硬件、軟件以及它們之間相互作用的所有元素。為了全面而深入地探討計(jì)算機(jī)系統(tǒng),本文將從定義、組成、功能、發(fā)展歷程以及未來趨勢(shì)等方面進(jìn)行詳細(xì)闡
    的頭像 發(fā)表于 07-24 17:41 ?2405次閱讀

    DRAM在計(jì)算機(jī)中的應(yīng)用

    DRAM(Dynamic Random Access Memory,動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)在計(jì)算機(jī)系統(tǒng)中扮演著至關(guān)重要的角色。它是一種半導(dǎo)體存儲(chǔ)器,用于存儲(chǔ)和快速訪問數(shù)據(jù),是計(jì)算機(jī)主內(nèi)存的主要組成部分。以下是對(duì)DRAM在計(jì)算機(jī)中的
    的頭像 發(fā)表于 07-24 17:04 ?3006次閱讀