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

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

3天內不再提示

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

Q4MP_gh_c472c21 ? 來源:嵌入式ARM ? 作者:嵌入式ARM ? 2020-11-12 18:03 ? 次閱讀

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

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

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

let a = 42;Bad

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

let wWidth = 640;let w_height = 480;Bad

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

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

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

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

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

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

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

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

06 盡可能把代碼寫成一行

刪繁就簡三秋樹。

Good

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

document.location.search .replace(/(^?)/, '') .split('&') .reduce((searchParams, keyValuePair) => { keyValuePair = keyValuePair.split('='); searchParams[keyValuePair[0]] = keyValuePair[1]; return searchParams; }, {})(向右滑動查看完整代碼) 07 不要處理錯誤 無論何時發(fā)現(xiàn)錯誤,都沒有必要讓任何人知道它。沒有日志,沒有錯誤彈框。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)建你不會使用的變量 以防萬一。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(向右滑動查看完整代碼)Bad

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

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

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

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

async function someFunction() { if (!condition1 || !condition2) { return; } const result = await asyncFunction(params); if (!result) { return; } for (;;) { if (condition3) { } }}(向右滑動查看完整代碼) 013 混合縮進 避免縮進,因為它們會使復雜的代碼在編輯器中占用更多的空間。如果你不喜歡回避他們,那就和他們搗亂。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]); });})(向右滑動查看完整代碼)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]); });})(向右滑動查看完整代碼) 014 不要鎖住你的依賴項 以非受控方式更新每個新安裝的依賴項。為什么堅持使用過去的版本,讓我們使用最先進的庫版本。Good

$ ls -la package.jsonBad

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

一個文件中10000行代碼是OK的。

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

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

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

責任編輯:xj

原文標題:這樣寫的代碼,都是垃圾......

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

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

    關注

    88

    文章

    3523

    瀏覽量

    93278
  • 代碼
    +關注

    關注

    30

    文章

    4672

    瀏覽量

    67781
  • 程序員
    +關注

    關注

    4

    文章

    945

    瀏覽量

    29682

原文標題:這樣寫的代碼,都是垃圾......

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

收藏 人收藏

    評論

    相關推薦

    國內低代碼平臺推薦--萬界星空科技低代碼平臺

    代碼平臺是一種應用程序,它為編程提供圖形用戶界面,從而以極快的速度開發(fā)代碼,減少傳統(tǒng)編程工作。 這些工具有助于快速開發(fā)代碼,最大限度
    的頭像 發(fā)表于 07-18 15:39 ?179次閱讀
    國內低<b class='flag-5'>代碼</b>平臺推薦--萬界星空科技低<b class='flag-5'>代碼</b>平臺

    在STVD書寫代碼的時候,一寫到“{}”就自動頂格了怎么解決?

    在STVD書寫代碼的時候,一寫到“{}”就自動頂格了,好煩哪- -! 不知道哪里可以更改這個設置?
    發(fā)表于 05-17 07:34

    如何提升代碼質量與效率的秘訣

    提高編程能力其實沒有捷徑,最佳方式就是多寫代碼。 不過,除了寫大量代碼,提升編程能力還需要大量閱讀別人寫的代碼。
    的頭像 發(fā)表于 04-28 14:53 ?291次閱讀
    如何提升<b class='flag-5'>代碼</b>質量與效率的秘訣

    代碼檢查的方式有三種

    【摘要】?代碼檢查中,提到的編程規(guī)范,規(guī)則集,規(guī)則,規(guī)則用例(場景、誤報、檢出)分別代表什么意思呢? 在 SAST 靜態(tài)檢查領域,
    的頭像 發(fā)表于 02-25 10:08 ?736次閱讀
    <b class='flag-5'>代碼</b>檢查的方式有三種

    在數(shù)控編程中,g代碼的作用是什么

    在數(shù)控編程中,G代碼是一種用于控制數(shù)控機床運動和功能的編程語言。它是數(shù)控加工過程中的重要組成部分,通過編寫G代碼,人們可以靈活地控制數(shù)控機床執(zhí)行各種精密和復雜的操作,從而實現(xiàn)高精度、高
    的頭像 發(fā)表于 02-14 15:53 ?1067次閱讀

    數(shù)控編程的g功能代碼是什么

    數(shù)控編程中,G代碼(也稱為指令代碼)是一種用于控制數(shù)控機床運動、輔助功能和工作過程的指令。在數(shù)控編程中,通過一系列的G代碼指令的組合和排列,
    的頭像 發(fā)表于 02-14 15:51 ?2671次閱讀

    簡單介紹PLC存儲器尋址規(guī)則

    在PLC編程時,字節(jié)或多字節(jié)的變量一般支持絕對地址尋址(比如,IW0、MD4等)。要想正確尋址,則必須要搞清楚尋址的規(guī)則。目前常見的規(guī)則有兩種:字節(jié)尋址和字尋址。
    發(fā)表于 01-18 10:17 ?578次閱讀
    簡單介紹PLC存儲器尋址<b class='flag-5'>規(guī)則</b>

    java switch case的語法規(guī)則

    在Java中,switch case語句是一種用于多分支選擇的控制流語句。它允許根據(jù)某個表達式的值來執(zhí)行不同的代碼塊。下面是關于switch case語法規(guī)則的詳細解釋。 基本語法 switch語句
    的頭像 發(fā)表于 11-30 14:40 ?1330次閱讀

    invalid synrax是什么錯誤

    是一種規(guī)則和約定,用于編程語言中正確書寫代碼的方式。語法錯誤通常是由于程序代碼中存在不符合語法規(guī)則
    的頭像 發(fā)表于 11-28 15:59 ?7516次閱讀

    如何在代碼中配置DDS編程示例

    DDS編程示例 我們嘗試在代碼中配置DDS,以之前Hello World話題通信為例。 運行效果 啟動兩個終端,分別運行發(fā)布者和訂閱者節(jié)點: $ ros2 run learning_qos
    的頭像 發(fā)表于 11-24 18:08 ?763次閱讀
    如何在<b class='flag-5'>代碼</b>中配置DDS<b class='flag-5'>編程</b>示例

    python如何換行而不運行代碼

    和可讀性。 在Python中,可以使用兩個主要的方法進行換行:使用反斜杠()和使用圓括號(())。 第一種方式是使用反斜杠()來表示換行。在Python中,反斜杠是一個轉義字符,它可以用于將一行代碼分成多行來書寫。當編譯器遇到反斜杠時,它
    的頭像 發(fā)表于 11-24 09:50 ?2774次閱讀

    python變量命名規(guī)則

    規(guī)則和約定。本文將詳盡、詳實、細致地探討Python變量的命名規(guī)則,幫助讀者了解如何正確命名變量并在編程中遵循最佳實踐。 一、變量命名規(guī)則的重要性 合適的變量命名對于編寫清晰、易讀和
    的頭像 發(fā)表于 11-23 15:44 ?1029次閱讀

    編程語言中一個奇怪的代碼結構

    在C語言和C++等編程語言中,我們常常會遇到一個奇怪的代碼結構。
    發(fā)表于 11-01 10:24 ?314次閱讀
    <b class='flag-5'>編程</b>語言中一個奇怪的<b class='flag-5'>代碼</b>結構

    編程雜談-代碼review

    先梳理下程序員日常的工作需要那些東西,首先就是參考各種手冊,技術文檔,讀代碼了解框架,然后制定方案,進行編碼實現(xiàn)。這其中一方面是對于技術手冊的掌握經(jīng)驗,另一方面就是代碼的架構能力。
    的頭像 發(fā)表于 10-30 16:50 ?335次閱讀
    <b class='flag-5'>編程</b>雜談-<b class='flag-5'>代碼</b>review

    SRRC證書樣式和代碼編碼規(guī)則即將施行

    為優(yōu)化無線電發(fā)射設備型號核準證書樣式和代碼編碼規(guī)則,根據(jù)《無線電發(fā)射設備管理規(guī)定》,近日,工業(yè)和信息化部修訂發(fā)布了《無線電發(fā)射設備型號核準證書樣式》和《無線電發(fā)射設備型號核準代碼編碼規(guī)則
    的頭像 發(fā)表于 10-14 16:50 ?566次閱讀
    SRRC證書樣式和<b class='flag-5'>代碼</b>編碼<b class='flag-5'>規(guī)則</b>即將施行