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

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

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

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

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

代碼也一樣。

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

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

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

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

{

“name”: “Mac”,

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

“major”: “computer application”

},

{

“name”: “Ava”,

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

},

{

“name”: “Ryan”,

“l(fā)anguage”: “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)的重要性,從而引起一些反思:自己寫的代碼可能是不是也像是被“丑化”過,讓人看得視力下降,血壓上升,怒從心頭起,惡向膽邊生?

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

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

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

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

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

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

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

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

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

都是描寫建筑

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

都是傳世名篇。

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

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

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

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

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

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

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

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

責任編輯:haq

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

    關注

    96

    文章

    2953

    瀏覽量

    69919

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    工控機與普通計算機的核心差異解析

    在工業(yè)自動化和智能制造領域,計算機設備作為核心控制單元,其選擇直接影響整個系統(tǒng)的穩(wěn)定性與可靠性。工控機與普通計算機雖同屬計算設備,但其設計目標、性能側重和應用場景存在根本性差異。準確理解這些差異,是進行正確設備選型的基礎。
    的頭像 發(fā)表于 11-25 14:45 ?1630次閱讀
    工控機與普通<b class='flag-5'>計算機</b>的核心差異解析

    龍架構計算機系統(tǒng)能力核心課程教學研討會圓滿舉行

    2025年11月8日,由教育部計算機類專業(yè)系統(tǒng)能力課程群虛擬教研室指導、北京航空航天大學計算機學院主辦的龍架構計算機系統(tǒng)能力核心課程教學研討會在京舉行。
    的頭像 發(fā)表于 11-14 13:52 ?564次閱讀

    貿澤電子開售全新Arduino UNO Q單板計算機

    貿澤電子開售全新Arduino UNO Q單板計算機。Arduino UNO Q單板計算機(SBC)將高性能計算與實時控制結合,提供理想的創(chuàng)新平臺。
    的頭像 發(fā)表于 11-08 09:50 ?1219次閱讀

    【作品合集】賽昉科技VisionFive 2單板計算機開發(fā)板測評

    賽昉科技VisionFive 2單板計算機開發(fā)板測評作品合集 產品介紹: 昉·星光 2是全球首款集成了3D GPU的高性能量產RISC-V單板計算機,搭載昉·驚鴻-7110(型號:JH-7110
    發(fā)表于 09-04 09:08

    工業(yè)計算機的重要性

    工業(yè)計算機對某些行業(yè)至關重要。我們將在下面詳細解釋這些行業(yè)中的工業(yè)計算機應用。1.制造與工業(yè)自動化工業(yè)級計算機非常適合制造工廠,特別是那些想要自動化裝配過程的工廠。在這樣的環(huán)境中,工業(yè)計算機
    的頭像 發(fā)表于 07-28 16:07 ?479次閱讀
    工業(yè)<b class='flag-5'>計算機</b>的重要性

    自動化計算機經過加固后有什么好處?

    讓我們討論一下部署堅固的自動化計算機的一些好處。1.溫度范圍寬自動化計算機經過工程設計,配備了支持寬溫度范圍的組件,使自動化計算解決方案能夠在各種不同的極端環(huán)境中運行。自動化計算機能夠
    的頭像 發(fā)表于 07-21 16:44 ?534次閱讀
    自動化<b class='flag-5'>計算機</b>經過加固后有什么好處?

    自動化計算機的功能與用途

    工業(yè)自動化是指利用自動化計算機來控制工業(yè)環(huán)境中的流程、機器人和機械,以制造產品或其部件。工業(yè)自動化的目的是提高生產率、增加靈活性,并提升制造過程的質量。工業(yè)自動化在汽車制造中體現(xiàn)得最為明顯,其中許多
    的頭像 發(fā)表于 07-15 16:32 ?639次閱讀
    自動化<b class='flag-5'>計算機</b>的功能與用途

    工業(yè)計算機與商用計算機的區(qū)別有哪些

    工業(yè)計算機是一種專為工廠和工業(yè)環(huán)境設計的計算系統(tǒng),具有高可靠性和穩(wěn)定性,能夠應對惡劣環(huán)境下的自動化、制造和機器人操作。其特點包括無風扇散熱技術、無電纜連接和防塵防水設計,使其在各種工業(yè)自動化場景中
    的頭像 發(fā)表于 07-10 16:36 ?622次閱讀
    工業(yè)<b class='flag-5'>計算機</b>與商用<b class='flag-5'>計算機</b>的區(qū)別有哪些

    Blue Lion超級計算機將在NVIDIA Vera Rubin上運行

    德國萊布尼茨超算中心(LRZ)將迎來全新超級計算機 Blue Lion,其算力比該中心現(xiàn)有的 SuperMUC-NG 高性能計算機提升了約 30 倍。這臺新的超級計算機將在 NVIDIA Vera Rubin 架構上運行。
    的頭像 發(fā)表于 06-12 15:39 ?995次閱讀

    工業(yè)計算機如何設計用于沖擊和振動

    工業(yè)計算機是為挑戰(zhàn)消費級系統(tǒng)耐用性的環(huán)境而構建的。在制造業(yè)、運輸業(yè)、國防和采礦業(yè)等領域,計算機面臨著持續(xù)的沖擊、振動和其他物理壓力。設計這些系統(tǒng)以在這種條件下保持可靠需要卓越的工程和創(chuàng)新技術。本文
    的頭像 發(fā)表于 05-19 15:27 ?425次閱讀
    工業(yè)<b class='flag-5'>計算機</b>如何設計用于沖擊和振動

    一文帶你了解工業(yè)計算機尺寸

    工業(yè)計算機是現(xiàn)代自動化、人工智能(AI)和邊緣計算的支柱。這些堅固耐用的系統(tǒng)旨在承受惡劣的環(huán)境,同時為關鍵應用提供可靠的性能。然而,由于有這么多可用的外形尺寸,為您的工業(yè)計算機選擇合適的尺寸可能是
    的頭像 發(fā)表于 04-24 13:35 ?913次閱讀
    一文帶你了解工業(yè)<b class='flag-5'>計算機</b>尺寸

    計算機網(wǎng)絡入門指南

    計算機網(wǎng)絡是指將地理位置不同且具有獨立功能的多臺計算機及其外部設備,通過通信線路連接起來,在網(wǎng)絡操作系統(tǒng)、網(wǎng)絡管理軟件及網(wǎng)絡通信協(xié)議的管理和協(xié)調下,實現(xiàn)資源共享和信息傳遞的計算機系統(tǒng)。
    的頭像 發(fā)表于 04-22 14:29 ?2013次閱讀
    <b class='flag-5'>計算機</b>網(wǎng)絡入門指南

    NVIDIA 宣布推出 DGX Spark 個人 AI 計算機

    臺式超級計算機由 NVIDIA Grace Blackwell 驅動,為開發(fā)者、研究人員和數(shù)據(jù)科學家提供加速 AI 功能;系統(tǒng)由頭部計算機制造商(包括華碩、Dell Technologies、HP
    發(fā)表于 03-19 09:59 ?557次閱讀
       NVIDIA 宣布推出 DGX Spark 個人 AI <b class='flag-5'>計算機</b>

    Quantinuum“Reimei”量子計算機在RIKEN正式運行

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

    BU-67121W實驗室航空電子接口計算機North Hills

    可以在BU-67121W上輕松創(chuàng)建嵌入式軟件,實現(xiàn)MIL-STD-1553、ARINC 429和以太網(wǎng)接口之間的數(shù)據(jù)自動轉發(fā)。獨立模式:允許BU-67121W作為用戶可編程計算機系統(tǒng)獨立運行。
    發(fā)表于 02-11 09:26