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

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

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

25個實用編程小技巧

lviY_AI_shequ ? 來源:人工智能愛好者社區(qū) ? 2019-11-22 14:59 ? 次閱讀

如果每個程序開發(fā)人員都只是周而復(fù)始地寫代碼,想必編程的工作就會讓很多程序員發(fā)狂。那么如何在枯燥的工作中尋找樂趣,我認(rèn)為我們要對工作保持激情和興奮感、始終學(xué)習(xí)的態(tài)度,還需要掌握一些實用高效的編程技巧,這樣對于提升工作樂趣和效率大有裨益。今天小編就跟大家分享一下 25 個實用編程小技巧,希望可以給開發(fā)編程人員的工作和學(xué)習(xí)帶來更多的思考。

不要毫無計劃地寫代碼,思考、調(diào)研、計劃、編碼、測試、修改,一個都不能少;

不要寫代碼前過度計劃,在一頭鉆進(jìn)代碼前做點計劃是好事,但是即便是好事,也可能物極必反。

請勿低估代碼質(zhì)量的重要性,如果你只能夠關(guān)注你所寫的代碼的一個方面,那么肯定是可讀性。

使用實現(xiàn)功能的最簡單方案,作為專業(yè)的程序員,你的職責(zé)不是找出問題的一個解決方案,而是找出問題的最簡單的解決方案;

適時放棄,當(dāng)你開始懷疑一個解決方案的時候,你就應(yīng)該考慮拋棄它,并且重新思考這個問題。不管你已經(jīng)在這個解決方案中投入了多少精力。像 GIT 這樣的版本控制系統(tǒng)能夠幫助你分開管理和嘗試多種不同的解決方案,把它利用起來吧;

擅用 Google,除非你正在使用一種極其前沿的技術(shù),否則當(dāng)你遇到一個問題時,很可能別人早就遇到過同樣的問題了,并且也找到了解決方案了。給自己省點時間,先 Google 一下;

做好封裝,基本的想法就是你想你的代碼高內(nèi)聚和低耦合,意思是說保持相關(guān)的代碼在一起(在一個類中),降低不同類之間的相互依賴;

做好規(guī)劃,寫好需求再寫代碼,盡可能編寫目前正在實現(xiàn)的方案所需的最少量代碼;

要懂算法,使用合適的數(shù)據(jù)結(jié)構(gòu);

不要寫重復(fù)性代碼,要用好配置文件,不要使用沒必要的條件語句和臨時變量;

做好代碼注釋,但是不要給傻子都知道的代碼寫注釋;

一定要寫好測試,如果可能的話,甚至在開始寫代碼實現(xiàn)需求之前,你就應(yīng)該開始預(yù)估和設(shè)計需要測試校驗的情況了。測試驅(qū)動開發(fā) (Testing-driven development, TDD)不是什么花俏的炒作,它是會實實在在會對你思考功能特性、尋找更好的設(shè)計方案產(chǎn)生積極影響的。

不要覺得代碼運行起來就是正確的,有些時候代碼的 bug 可能并不是顯而易見的;

要能夠質(zhì)疑既有代碼,作為一個初學(xué)者,總是應(yīng)該假定那些你讀不懂的、且沒有文檔注釋的代碼很可能就是糟糕的代碼。質(zhì)疑之,詢問之,使用 git blame 揪出罪魁禍?zhǔn)祝?/p>

不要過度迷戀最佳實踐,我覺得 "最佳實踐" 其實是害人的,它暗示著你不需要深入研究它,這就是有史以來最佳實踐,不用質(zhì)疑!

不要過度迷戀性能優(yōu)化,如果你在運行代碼之前就在優(yōu)化它了,那很可能你就是在過早優(yōu)化代碼了,也很可能你正在費時費力做的優(yōu)化是完全沒必要的。

以用戶體驗為目標(biāo),要站在最終用戶的角度看問題。專業(yè)的開發(fā)者要考慮這個特定功能的用戶需要什么、怎樣使用,要想方設(shè)法使得這個功能容易讓用戶發(fā)現(xiàn)和使用,而不是想方設(shè)法在應(yīng)用中用最便捷添加這個功能,毫不考慮這個功能的可發(fā)現(xiàn)性和可用性。

為你的開發(fā)任務(wù)挑選合適的工具,你可以使用最原始的工具建造房子,然后享受甜蜜時光。你也可以花費一些時間和金錢去了解先進(jìn)的工具、更快地建造更好的房子。工具在不斷地改進(jìn)中,你要樂意去學(xué)習(xí)它們、使用它們。

要理解好代碼問題和數(shù)據(jù)問題之間的關(guān)系,即使是程序中最小的 bug 也會導(dǎo)致它所管理的數(shù)據(jù)去到一種不可預(yù)測的狀態(tài)。尤其是當(dāng)所有數(shù)據(jù)校驗都完全在這個有 bug 的程序中進(jìn)行時。

切勿重復(fù)造輪子,使用好現(xiàn)有的輪子和各種開源庫,會讓你事半功倍。當(dāng)然,不要僅僅為了使用一兩個函數(shù)就引入一整個代碼庫,在 JavaScript 中的典型例子就是 lodash 代碼庫;

對代碼審查保持正確的態(tài)度,應(yīng)該把每一次代碼復(fù)審當(dāng)作是學(xué)習(xí)的機會,歡迎他們、感激他們、從中學(xué)習(xí),最重要的,當(dāng)你從你的代碼復(fù)審人員那里學(xué)習(xí)到東西的時候,要感謝他們;

用好版本控制工具和系統(tǒng),新手往往低估了一個好的版本控制系統(tǒng)的威力,我這里所說的好的版本控制系統(tǒng)其實就是指 Git;

不要過度使用共享狀態(tài),一個新手可能會嘗試使用定時器來解決這個共享變量的競態(tài)條件問題,特別是當(dāng)他們必須處理一個數(shù)據(jù)鎖的問題時。這是危險的標(biāo)志,別這么做,注意它,在代碼復(fù)審中指出它,永遠(yuǎn)也不要接受這樣的代碼。

正視 Error,Error 是好東西。Error 意味著你在進(jìn)步,意味著你可以通過簡單的后續(xù)修改就獲得更多的進(jìn)步。專業(yè)程序員喜愛 Error。新手則痛恨 Error;

學(xué)會休息,任何人的大腦都需要休息,身體也需要休息。

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

    關(guān)注

    41

    文章

    6642

    瀏覽量

    110721
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3633

    瀏覽量

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

    關(guān)注

    30

    文章

    4808

    瀏覽量

    68815

原文標(biāo)題:別死寫代碼,這 25 條比漲工資都重要

文章出處:【微信號:AI_shequ,微信公眾號:人工智能愛好者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    可羅馬Chroma62006P-100-25 可控編程直流電源

    可羅馬Chroma62006P-100-25 可控編程直流電源 定功率操作下允許多種電壓和電流組合輸出 電壓輸出范圍 : 0 ~ 600V ; 電流輸出范圍 : 0 ~ 120A ; 功率輸出范圍
    的頭像 發(fā)表于 12-18 14:36 ?155次閱讀

    歐姆龍協(xié)作機器人TM25S可使用多種方法進(jìn)行編程

    歐姆龍協(xié)作機器人TM25S操作簡便,可使用多種方法進(jìn)行編程,包括手動引導(dǎo)、流程圖編程以及手動腳本編寫。 ? 先進(jìn)的手動引導(dǎo)體驗 使用內(nèi)置手動引導(dǎo)功能可對應(yīng)用進(jìn)行編程。只需將頭部移動到所
    的頭像 發(fā)表于 11-25 16:36 ?327次閱讀
    歐姆龍協(xié)作機器人TM<b class='flag-5'>25</b>S可使用多種方法進(jìn)行<b class='flag-5'>編程</b>

    socket 編程基礎(chǔ)入門

    Socket 編程基礎(chǔ)入門 在計算機網(wǎng)絡(luò)中,Socket 是一抽象層,它將網(wǎng)絡(luò)通信的細(xì)節(jié)隱藏起來,為開發(fā)者提供了一簡單的接口來發(fā)送和接收數(shù)據(jù)。Socket 編程是網(wǎng)絡(luò)
    的頭像 發(fā)表于 11-12 14:03 ?388次閱讀

    什么是socket編程 socket與tcp/ip協(xié)議的關(guān)系

    什么是Socket編程 Socket編程是一種網(wǎng)絡(luò)編程技術(shù),它允許程序之間進(jìn)行通信。在計算機科學(xué)中,socket是一抽象的概念,它代表了兩
    的頭像 發(fā)表于 11-01 16:01 ?412次閱讀

    英偉達(dá)股價一月內(nèi)上漲25%

    統(tǒng)計數(shù)據(jù)顯示,在過去一月中,英偉達(dá)公司的股價上漲了 25%,股價目前已經(jīng)接近了歷史高位,英偉達(dá)公司的市值已超越微軟公司,成為市值第二高的公司。 盡管已經(jīng)是處于瘋漲的階段,但是很多分析師依然非常
    的頭像 發(fā)表于 10-11 15:23 ?462次閱讀

    物聯(lián)網(wǎng)行業(yè)中Nor Flash的軟件設(shè)計分享_W25Q128的軟件設(shè)計方案

    一 概述 W25Q128是一種NOR Flash芯片,掉電后數(shù)據(jù)不丟失的特點。 W25Q128FV陣列被組織成65,536編程頁面,每個頁面256字節(jié)。每次最多可
    的頭像 發(fā)表于 09-26 11:20 ?613次閱讀
    物聯(lián)網(wǎng)行業(yè)中Nor Flash的軟件設(shè)計分享_W<b class='flag-5'>25</b>Q128的軟件設(shè)計方案

    通向數(shù)字創(chuàng)新之路:25組合電路核心主題概念

    組合電路是數(shù)字系統(tǒng)的基礎(chǔ)構(gòu)建模塊。深入理解以下25主題,將有助于全面掌握組合電路的原理和應(yīng)用:01.布爾代數(shù)布爾代數(shù)是數(shù)字邏輯的理論基礎(chǔ)。它包括AND、OR、NOT和XOR等基本操作,為理解
    的頭像 發(fā)表于 08-15 18:28 ?638次閱讀
    通向數(shù)字創(chuàng)新之路:<b class='flag-5'>25</b><b class='flag-5'>個</b>組合電路核心主題概念

    編程晶振都有什么頻率的呢?分享3挑選可編程晶振的技巧

    頻率范圍全面覆蓋,滿足多樣化需求: ? CMOS可編程晶振:1~200MHz寬廣選擇,為您的基礎(chǔ)應(yīng)用提供穩(wěn)定可靠的支持。 ? 可編程差分晶振:高達(dá)2100MHz的卓越性能,滿足高速數(shù)據(jù)傳輸與信號處理的高標(biāo)準(zhǔn)要求。 ? 可編程壓控
    的頭像 發(fā)表于 07-18 18:30 ?1210次閱讀
    可<b class='flag-5'>編程</b>晶振都有什么頻率的呢?分享3<b class='flag-5'>個</b>挑選可<b class='flag-5'>編程</b>晶振的技巧

    PLC的編程方式及編程語言

    在工業(yè)自動化領(lǐng)域,PLC(Programmable Logic Controller,可編程邏輯控制器)因其強大的控制功能和靈活的編程方式而得到了廣泛應(yīng)用。PLC的編程方式和編程語言是
    的頭像 發(fā)表于 06-27 14:08 ?848次閱讀

    編程電源如何編程

    編程電源如何編程? 可編程電源是一種可以調(diào)節(jié)輸出電壓和電流的電源設(shè)備,廣泛應(yīng)用于電子設(shè)備測試、研發(fā)和生產(chǎn)等領(lǐng)域。通過編程,用戶可以根據(jù)需要設(shè)置電源的輸出參數(shù),實現(xiàn)自動化測試和控制。本
    的頭像 發(fā)表于 06-10 15:24 ?1432次閱讀

    具有可編程峰值電流限制的23VIN、25VOUT、6A同步升壓轉(zhuǎn)換器TPS61377數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《具有可編程峰值電流限制的23VIN、25VOUT、6A同步升壓轉(zhuǎn)換器TPS61377數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 03-26 10:50 ?0次下載
    具有可<b class='flag-5'>編程</b>峰值電流限制的23VIN、<b class='flag-5'>25</b>VOUT、6A同步升壓轉(zhuǎn)換器TPS61377數(shù)據(jù)表

    具有可編程固定增益的DirectPath? 25-mW頭戴式耳機放大器TPA6139A2PW數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《具有可編程固定增益的DirectPath? 25-mW頭戴式耳機放大器TPA6139A2PW數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 03-19 10:04 ?0次下載
    具有可<b class='flag-5'>編程</b>固定增益的DirectPath? <b class='flag-5'>25</b>-mW頭戴式耳機放大器TPA6139A2PW數(shù)據(jù)表

    具有可編程峰值電流限制的 23VIN、25VOUT、6A同步升壓轉(zhuǎn)換器TPS61377數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《具有可編程峰值電流限制的 23VIN、25VOUT、6A同步升壓轉(zhuǎn)換器TPS61377數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 03-12 10:48 ?0次下載
    具有可<b class='flag-5'>編程</b>峰值電流限制的 23VIN、<b class='flag-5'>25</b>VOUT、6A同步升壓轉(zhuǎn)換器TPS61377數(shù)據(jù)表

    1LDO和3負(fù)載開關(guān)的TPS6521815用戶可編程電源管理IC數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《1LDO和3負(fù)載開關(guān)的TPS6521815用戶可編程電源管理IC數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 03-06 14:17 ?0次下載
    1<b class='flag-5'>個</b>LDO和3<b class='flag-5'>個</b>負(fù)載開關(guān)的TPS6521815用戶可<b class='flag-5'>編程</b>電源管理IC數(shù)據(jù)表

    廣達(dá)年終獎發(fā)放,最高可達(dá)25

    據(jù)了解,過去廣達(dá)年獎金發(fā)放通常維持在2到5月之間,而最近兩年已經(jīng)提升到了2.5到6月,如今更是達(dá)到歷年峰值。若再加上去年10月份發(fā)放的分紅,表現(xiàn)優(yōu)異的廣達(dá)員工甚至可能獲得2023年總計高達(dá)25
    的頭像 發(fā)表于 02-02 15:25 ?1070次閱讀