女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

計算機編程里的美化和丑化概念

Linux閱碼場 ? 來源:Linux閱碼場 ? 作者:Linux閱碼場 ? 2021-04-16 11:46 ? 次閱讀

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

代碼也一樣。

計算機編程里有一組相關的概念,一個叫做Prettify(美化),一個叫做Uglify(丑化)。

Prettify的典型應用是在JSON/XML/HTML這些數據的呈現上,對眼睛不友好的json,烏央烏央的一坨,讓人看起來很費勁:

[{“name”:“Mac”,“language”:“python”,“major”:“computer application”},{“name”:“Ava”,“language”:“C++”},{“name”:“Ryan”,“language”:“Java”}]

對眼睛友好的json,層次結構清晰明了:

{

“name”: “Mac”,

“language”: “python”,

“major”: “computer application”

},

{

“name”: “Ava”,

“language”: “C++”

},

{

“name”: “Ryan”,

“language”: “Java”

}

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

def get_user(username):

pass

username = ‘ava’

user = get_user(username)

以下代碼和以上代碼在功能上是同等的,但是非常“反人類”:

def a121(rw24__fdx):

pass

kwlekf_fw12q= ‘ava’

II11LL =a121(kwlekf_fw12q)

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

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

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

這其中牽涉到人的環節很多,包括評審代碼和后續的代碼維護(修復缺陷、重構改進)等等,進行這些操作有一個基本前提:理解代碼邏輯!用更直白的話講,就是能看懂。

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

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

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

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

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

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

都是描寫建筑

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

都是傳世名篇。

但是,他們的風格顯然不一樣。

《阿房宮賦》引經據典,辭藻華麗,但是不容易看懂,讓人望而生畏。《夜宿山寺》用詞簡單卻絲毫不犧牲詩意的表達,所以老少咸宜,販夫走卒皆可傳誦。

假如,《阿房宮賦》問世之后,我們發現阿房宮其實還有一處奇特的噴泉景觀沒有被寫進去。如果讓我在原文基礎上加上相應的內容,我會很惶恐,因為連原文都沒看懂,談何修改和擴展?不敢,不敢!

但是,如果讓我來擴展《夜宿山寺》,雖然水平和詩仙有云泥之別,但是因為這首詩良好的可讀性,愚笨如我也讀懂了,或許,我可以斗膽以狗尾續貂。。。

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

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

原文標題:漫談代碼可讀性

文章出處:【微信公眾號:Linuxer】歡迎添加關注!文章轉載請注明出處。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 源代碼
    +關注

    關注

    96

    文章

    2950

    瀏覽量

    67881

原文標題:漫談代碼可讀性

文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    云端超級計算機使用教程

    云端超級計算機是一種基于云計算的高性能計算服務,它將大量計算資源和存儲資源集中在一起,通過網絡向用戶提供按需的計算服務。下面,AI部落小編為
    的頭像 發表于 12-17 10:19 ?488次閱讀

    虛擬內存對計算機性能的影響

    在現代計算機系統中,內存管理是確保系統高效運行的關鍵因素之一。虛擬內存技術作為內存管理的核心組成部分,對于提升計算機性能和用戶體驗起著至關重要的作用。 一、虛擬內存的概念 虛擬內存是一種內存管理技術
    的頭像 發表于 12-04 09:17 ?3210次閱讀

    工業中使用哪種計算機

    在工業環境中,工控機被廣泛使用。這些計算機的設計可承受極端溫度、灰塵和振動等惡劣條件。它們比標準消費類計算機更耐用、更可靠。工業計算機可控制機器、監控流程并實時收集數據。其堅固的結構和專業功能
    的頭像 發表于 11-29 14:07 ?610次閱讀
    工業中使用哪種<b class='flag-5'>計算機</b>?

    量子計算機與普通計算機工作原理的區別

    ? 本文介紹了量子計算機與普通計算機工作原理的區別。 量子計算是一個新興的研究領域,科學家們利用量子力學,制造出具有革命性能力的計算機。雖然現在的量子
    的頭像 發表于 11-24 11:00 ?1269次閱讀
    量子<b class='flag-5'>計算機</b>與普通<b class='flag-5'>計算機</b>工作原理的區別

    ROM對計算機性能的影響

    只讀存儲器(ROM)是計算機硬件中的一個重要組成部分,它負責存儲計算機啟動時必需的固件和基本輸入輸出系統(BIOS)。ROM的性能和質量對計算機的整體性能有著深遠的影響。 ROM的基本概念
    的頭像 發表于 11-04 10:31 ?1083次閱讀

    計算機接口位于什么之間

    計算機接口是計算機硬件和軟件之間、計算機與外部設備之間以及計算機各部件之間傳輸數據、控制信息和狀態信息的硬件設備和軟件程序。它在計算機系統中
    的頭像 發表于 10-14 14:02 ?1086次閱讀

    信號繼電器在計算機系統中的應用

    信號繼電器在計算機系統中的應用是一個重要且復雜的領域,它作為電氣控制的關鍵元件,在計算機系統中發揮著信號轉換、隔離、放大以及控制等多種作用。以下將從信號繼電器的基本概念、工作原理、特性、在計算
    的頭像 發表于 09-27 16:29 ?829次閱讀

    計算機的內存容量有什么作用

    計算機的內存容量,作為一個核心概念,在計算機科學、信息技術以及日常使用中扮演著至關重要的角色。它不僅直接關系到計算機處理數據的能力,還影響著用戶體驗、系統性能以及多任務處理的效率。在深
    的頭像 發表于 09-10 14:47 ?2225次閱讀

    簡述計算機總線的分類

    計算機總線作為計算機系統中連接各個功能部件的公共通信干線,其結構和分類對于理解計算機硬件系統的工作原理至關重要。以下是對計算機總線結構和分類的詳細闡述,內容將涵蓋總線的基本
    的頭像 發表于 08-26 16:23 ?4809次閱讀

    晶體管計算機和電子管計算機有什么區別

    晶體管計算機和電子管計算機作為計算機發展史上的兩個重要階段,它們在多個方面存在顯著的區別。以下是對這兩類計算機在硬件、性能、應用以及技術發展等方面區別的詳細闡述。
    的頭像 發表于 08-23 15:28 ?3361次閱讀

    計算機系統的組成和功能

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

    計算機視覺與智能感知是干嘛的

    感知(Intelligent Perception)則是計算機視覺的一個分支,它強調計算機在處理視覺信息時的智能性和自適應性。 隨著計算機技術的發展,計算機視覺與智能感知在各個領域得到
    的頭像 發表于 07-09 09:23 ?1642次閱讀

    計算機視覺和圖像處理的區別和聯系

    計算機視覺和圖像處理是兩個密切相關但又有明顯區別的領域。 1. 基本概念 1.1 計算機視覺 計算機視覺是一門研究如何使計算機能夠理解和解釋
    的頭像 發表于 07-09 09:16 ?2103次閱讀

    計算機視覺屬于人工智能嗎

    和解釋視覺信息,從而實現對圖像和視頻的自動分析和處理。 計算機視覺的基本概念 2.1 計算機視覺的定義 計算機視覺是一門研究如何使計算機具有
    的頭像 發表于 07-09 09:11 ?1980次閱讀

    工業控制計算機與普通個人計算機相比有何區別?

    引言 隨著科技的不斷發展,計算機在各個領域的應用越來越廣泛。在眾多計算機類型中,工業控制計算機和普通個人計算機是兩種常見的計算機。盡管它們在
    的頭像 發表于 06-11 10:45 ?1455次閱讀