一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

編程代碼的書寫規(guī)則

Q4MP_gh_c472c21 ? 來源:嵌入式ARM ? 作者:嵌入式ARM ? 2020-11-12 18:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

為大家搜集到編程代碼的書寫規(guī)則,小伙伴們千萬要記住這些規(guī)則。

如果對現(xiàn)在的工作不滿意,掌握這些技巧也是可以順利離職的小竅門哦~

01 以一種代碼已經(jīng)被混淆的方式命名變量 如果我們鍵入的東西越少,那么就有越多的時(shí)間去思考代碼邏輯等問題。Good

let a = 42;Bad

let age = 42; 02 變量/函數(shù)混合命名風(fēng)格 為不同慶祝一下。Good

let wWidth = 640;let w_height = 480;Bad

let windowWidth = 640;let windowHeight = 480; 03 不要寫注釋 反正沒人會(huì)讀你的代碼,看開點(diǎn):Good

const cdr = 700;Bad 更多時(shí)候,評論應(yīng)該包含一些“為什么”,而不是一些“是什么”。如果“什么”在代碼中不清楚,那么代碼可能太混亂了。

// 700ms的數(shù)量是根據(jù)UX A/B測試結(jié)果進(jìn)行經(jīng)驗(yàn)計(jì)算的。// @查看: <詳細(xì)解釋700的一個(gè)鏈接>const callbackDebounceRate = 700;(向右滑動(dòng)查看完整代碼) 04 使用母語寫注釋 如果您違反了“無注釋”原則,那么至少嘗試用一種不同于您用來編寫代碼的語言來編寫注釋。如果你的母語是英語,你可能會(huì)違反這個(gè)原則。Good

// Закрива?мо модальне в?конечко при виникненн? помилки.toggleModal(false);(向右滑動(dòng)查看完整代碼)Bad

// 隱藏錯(cuò)誤彈窗toggleModal(false); 05 盡可能混合不同的格式 為不同慶祝一下。Good

let i = ['tomato', 'onion', 'mushrooms'];let d = [ "ketchup", "mayonnaise" ];Bad

let ingredients = ['tomato', 'onion', 'mushrooms'];let dressings = ['ketchup', 'mayonnaise'];

(向右滑動(dòng)查看完整代碼)

06 盡可能把代碼寫成一行

刪繁就簡三秋樹。

Good

document.location.search.replace(/(^?)/,'').split('&').reduce(function(o,n){n=n.split('=');o[n[0]]=n[1];return o},{})(向右滑動(dòng)查看完整代碼)Bad

document.location.search .replace(/(^?)/, '') .split('&') .reduce((searchParams, keyValuePair) => { keyValuePair = keyValuePair.split('='); searchParams[keyValuePair[0]] = keyValuePair[1]; return searchParams; }, {})(向右滑動(dòng)查看完整代碼) 07 不要處理錯(cuò)誤 無論何時(shí)發(fā)現(xiàn)錯(cuò)誤,都沒有必要讓任何人知道它。沒有日志,沒有錯(cuò)誤彈框。Good

try { // 意料之外的情況。} catch (error) { // tss... }Bad

try { // 意料之外的情況。} catch (error) { setErrorMessage(error.message); // and/or logError(error);} 08 廣泛使用全局變量 全球化的原則。Good

let x = 5; function square() { x = x ** 2;} square(); // 現(xiàn)在x是25Bad

let x = 5; function square(num) { return num ** 2;} x = square(x); // 現(xiàn)在x是25 09 創(chuàng)建你不會(huì)使用的變量 以防萬一。Good

function sum(a, b, c) { const timeout = 1300; const result = a + b; return a + b;}Bad

function sum(a, b) { return a + b;} 010 如果語言允許,不要指定類型和/或不執(zhí)行類型檢查。

Good

function sum(a, b) { return a + b;} // 在這里享受沒有注釋的快樂const guessWhat = sum([], {}); // -> "[object Object]"const guessWhatAgain = sum({}, []); // -> 0(向右滑動(dòng)查看完整代碼)Bad

function sum(a: number, b: number): ?number { // 當(dāng)我們在JS中不做置換和/或流類型檢查時(shí),覆蓋這種情況。 if (typeof a !== 'number' && typeof b !== 'number') { return undefined; } return a + b;} // 這個(gè)應(yīng)該在轉(zhuǎn)換/編譯期間失敗。const guessWhat = sum([], {}); // -> undefined(向右滑動(dòng)查看完整代碼) 011 你應(yīng)該有不能到達(dá)的代碼 記?。哼@是你的 "Plan B"。Good

function square(num) { if (typeof num === 'undefined') { return undefined; } else { return num ** 2; } return null; // 這就是我的"Plan B".}(向右滑動(dòng)查看完整代碼)Bad

function square(num) { if (typeof num === 'undefined') { return undefined; } return num ** 2;}(向右滑動(dòng)查看完整代碼) 012 三角法則 就像鳥巢,鳥巢,鳥巢。這是藝術(shù)。Good

function someFunction() { if (condition1) { if (condition2) { asyncFunction(params, (result) => { if (result) { for (;;) { if (condition3) { } } } }) } }}(向右滑動(dòng)查看完整代碼)Bad

async function someFunction() { if (!condition1 || !condition2) { return; } const result = await asyncFunction(params); if (!result) { return; } for (;;) { if (condition3) { } }}(向右滑動(dòng)查看完整代碼) 013 混合縮進(jìn) 避免縮進(jìn),因?yàn)樗鼈儠?huì)使復(fù)雜的代碼在編輯器中占用更多的空間。如果你不喜歡回避他們,那就和他們搗亂。Good

const fruits = ['apple', 'orange', 'grape', 'pineapple']; const toppings = ['syrup', 'cream', 'jam', 'chocolate'];const desserts = [];fruits.forEach(fruit => {toppings.forEach(topping => { desserts.push([fruit,topping]); });})(向右滑動(dòng)查看完整代碼)Bad

const fruits = ['apple', 'orange', 'grape', 'pineapple'];const toppings = ['syrup', 'cream', 'jam', 'chocolate'];const desserts = []; fruits.forEach(fruit => { toppings.forEach(topping => { desserts.push([fruit, topping]); });})(向右滑動(dòng)查看完整代碼) 014 不要鎖住你的依賴項(xiàng) 以非受控方式更新每個(gè)新安裝的依賴項(xiàng)。為什么堅(jiān)持使用過去的版本,讓我們使用最先進(jìn)的庫版本。Good

$ ls -la package.jsonBad

$ ls -la package.jsonpackage-lock.json 015 函數(shù)長的比短的好 不要把程序邏輯分成可讀的部分。如果IDE的搜索停止,而您無法找到所需的文件或函數(shù),該怎么辦?

一個(gè)文件中10000行代碼是OK的。

一個(gè)函數(shù)體1000行代碼是OK的。

處理許多服務(wù)(第三方和內(nèi)部,也有一些工具、數(shù)據(jù)庫手寫ORM和jQuery滑塊)在一個(gè)' service.js ' ,這是OK的。

016 不要測試你的代碼 這是重復(fù)的并且不需要的工作。 017 避免代碼風(fēng)格統(tǒng)一 編寫你想要的代碼,特別是在一個(gè)團(tuán)隊(duì)中有多個(gè)開發(fā)人員的情況下。 這是一個(gè)“自由”的原則。 018 構(gòu)建新項(xiàng)目不需要 README 文檔 一開始我們就應(yīng)該保持。 019 保存不必要的代碼 不要?jiǎng)h除不用的代碼,最多是注釋掉。 以上就是全部總結(jié),大家可千萬不要再犯哦。(別打我,網(wǎng)線不夠粗,手伸不過來)

責(zé)任編輯:xj

原文標(biāo)題:這樣寫的代碼,都是垃圾......

文章出處:【微信公眾號:嵌入式ARM】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

    關(guān)注

    88

    文章

    3689

    瀏覽量

    95253
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70743
  • 程序員
    +關(guān)注

    關(guān)注

    4

    文章

    954

    瀏覽量

    30412

原文標(biāo)題:這樣寫的代碼,都是垃圾......

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    HarmonyOS AI輔助編程工具(CodeGenie)代碼續(xù)寫

    利用AI大模型分析并理解開發(fā)者在代碼編輯區(qū)的上下文信息或自然語言描述信息,智能生成符合上下文的ArkTS或C++代碼片段。 一、使用約束 建議在編輯區(qū)內(nèi)已有較豐富上下文,能夠使模型對編程場景有一定
    發(fā)表于 07-15 16:15

    上傳示例代碼后,CYPD3171不再可編程是怎么回事?

    我有一個(gè)使用 CYPD3171 芯片的定制板,用于定制移動(dòng)電源應(yīng)用。在第一個(gè)測試 PCB 上我上傳了示例代碼,但后來我發(fā)現(xiàn)我無法再對其進(jìn)行編程。我查看了引腳排列的代碼和 GUI,發(fā)現(xiàn)代碼
    發(fā)表于 07-15 08:01

    貼片電解電容的命名規(guī)則涵蓋哪些重要參數(shù)?

    貼片電解電容的命名規(guī)則通過標(biāo)準(zhǔn)化編碼整合容量、耐壓、尺寸等關(guān)鍵參數(shù),是電子工程師選型的重要依據(jù)。其命名結(jié)構(gòu)通常為 尺寸代碼+材質(zhì)標(biāo)識(shí)+容量代碼+耐壓代碼+端頭/包裝標(biāo)識(shí) ,以風(fēng)華
    的頭像 發(fā)表于 07-09 15:55 ?98次閱讀

    KiCad 中的自定義規(guī)則(KiCon 演講)

    “ ?Seth Hillbrand 在 KiCon US 2025 上為大家介紹了 KiCad 的規(guī)則系統(tǒng),并詳細(xì)講解了自定義規(guī)則的設(shè)計(jì)與實(shí)例。? ” ? 演講主要圍繞 加強(qiáng) KiCad 中的自定義
    的頭像 發(fā)表于 06-16 11:17 ?610次閱讀
    KiCad 中的自定義<b class='flag-5'>規(guī)則</b>(KiCon 演講)

    MISRA C:2025新標(biāo)準(zhǔn)解析:新增規(guī)則、優(yōu)化點(diǎn)與靜態(tài)代碼分析工具支持(Perforce QAC、Klocwork)

    MISRA C:2025?發(fā)布!新增5條規(guī)則,并對部分現(xiàn)有規(guī)則進(jìn)行了擴(kuò)展、重組,以進(jìn)一步簡化安全關(guān)鍵型系統(tǒng)的開發(fā)流程。如何實(shí)現(xiàn)最新MISRA合規(guī)性?
    的頭像 發(fā)表于 05-08 17:58 ?886次閱讀
    MISRA C:2025新標(biāo)準(zhǔn)解析:新增<b class='flag-5'>規(guī)則</b>、優(yōu)化點(diǎn)與靜態(tài)<b class='flag-5'>代碼</b>分析工具支持(Perforce QAC、Klocwork)

    使用 QWQ:32B 模型搭配 VSCode 的 Cline 插件實(shí)現(xiàn)自動(dòng)化代碼編程!

    作者:算力魔方創(chuàng)始人/英特爾創(chuàng)新大使劉力 一,概述 隨著人工智能技術(shù)的快速發(fā)展,自動(dòng)化編程工具逐漸成為開發(fā)者的得力助手。QWQ:32B 模型是一種先進(jìn)的自然語言處理模型,能夠理解并生成高質(zhì)量的代碼
    的頭像 發(fā)表于 03-21 18:12 ?590次閱讀
    使用 QWQ:32B 模型搭配 VSCode 的 Cline 插件實(shí)現(xiàn)自動(dòng)化<b class='flag-5'>代碼</b><b class='flag-5'>編程</b>!

    基于BLE技術(shù) 智能手寫筆解決方案:改變你的書寫體驗(yàn)PTR5415

    方案說明: 我們的智能手寫筆方案基于BLE技術(shù),利用藍(lán)牙低功耗連接手寫筆與移動(dòng)設(shè)備(如智能手機(jī)、平板電腦)之間的無線通信??梢詫?shí)時(shí)將書寫數(shù)據(jù)上傳到手機(jī)APP及云端,及時(shí)有效的對書寫數(shù)據(jù)進(jìn)行存檔及管理
    發(fā)表于 03-11 17:50

    代碼與傳統(tǒng)開發(fā)的區(qū)別 低代碼與無代碼開發(fā)的區(qū)別

    的工具和圖形界面來縮短開發(fā)時(shí)間和降低技術(shù)門檻。以下是對低代碼開發(fā)與傳統(tǒng)開發(fā)的詳細(xì)對比: 適用人群 傳統(tǒng)開發(fā) :主要適用于有經(jīng)驗(yàn)、有基礎(chǔ)的程序員,他們可以利用各種編碼語言進(jìn)行應(yīng)用程序的創(chuàng)建。傳統(tǒng)開發(fā)需要深厚的編程功底
    的頭像 發(fā)表于 01-31 10:48 ?618次閱讀

    gitee 支持的編程語言有哪些

    Gitee(碼云)是一個(gè)基于 Git 的代碼托管和研發(fā)協(xié)作平臺(tái),類似于 GitHub 和 GitLab。它支持多種編程語言,允許開發(fā)者托管和管理代碼,進(jìn)行版本控制,以及協(xié)作開發(fā)。以下是一些
    的頭像 發(fā)表于 01-06 09:50 ?673次閱讀

    Triton編譯器與GPU編程的結(jié)合應(yīng)用

    Triton編譯器簡介 Triton編譯器是一種針對并行計(jì)算優(yōu)化的編譯器,它能夠自動(dòng)將高級語言代碼轉(zhuǎn)換為針對特定硬件優(yōu)化的低級代碼。Triton編譯器的核心優(yōu)勢在于其能夠識(shí)別并行模式,自動(dòng)進(jìn)行代碼
    的頭像 發(fā)表于 12-25 09:13 ?837次閱讀

    對比Python與Java編程語言

    Python與Java都是目前非常流行的編程語言,它們各有其獨(dú)特的優(yōu)勢和適用場景。以下是對這兩種編程語言的對比: 一、語法和易用性 Python 語法簡潔,代碼更易讀,非常適合初學(xué)者。 動(dòng)態(tài)類型系統(tǒng)
    的頭像 發(fā)表于 11-15 09:31 ?1103次閱讀

    PCB布線和布局電路設(shè)計(jì)規(guī)則

    常用的PCB設(shè)計(jì)規(guī)則
    發(fā)表于 11-09 14:10 ?111次下載

    網(wǎng)關(guān)的設(shè)置規(guī)則

    網(wǎng)關(guān)的設(shè)置規(guī)則涉及多個(gè)方面,包括硬件安裝、網(wǎng)絡(luò)連接、基本配置、高級配置以及安全設(shè)置等。以下是一篇關(guān)于網(wǎng)關(guān)設(shè)置規(guī)則的詳細(xì)指南,旨在幫助用戶正確配置和管理網(wǎng)關(guān)設(shè)備。
    的頭像 發(fā)表于 09-30 11:48 ?4717次閱讀

    AD9元器件間距規(guī)則如何設(shè)置

    在Altium Designer 9(簡稱AD9)中設(shè)置元器件間距規(guī)則,主要是為了確保PCB(Printed Circuit Board,印刷電路板)上的元器件之間保持適當(dāng)?shù)木嚯x,以避免短路、干擾或
    的頭像 發(fā)表于 09-02 15:26 ?8760次閱讀

    規(guī)則音頻是一種連續(xù)變化的什么信號

    規(guī)則音頻信號是指在時(shí)間上具有一定規(guī)律性的音頻信號,它們通常用于通信、音樂、語音處理等領(lǐng)域。 規(guī)則音頻信號的定義 規(guī)則音頻信號是一種在時(shí)間上呈現(xiàn)周期性或準(zhǔn)周期性變化的聲波。這種信號可以通過數(shù)學(xué)函數(shù)
    的頭像 發(fā)表于 08-25 15:41 ?620次閱讀