99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

從編寫(xiě)代碼習(xí)慣談工程師風(fēng)格

工程師人生 ? 來(lái)源:博客園 ? 作者:等你歸去來(lái) ? 2021-01-15 10:11 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

引語(yǔ):代碼風(fēng)格,是一個(gè)工程師長(zhǎng)期以來(lái)養(yǎng)成的一些編寫(xiě)代碼的習(xí)慣,其實(shí)并無(wú)絕對(duì)的好壞之分!但是,基本上可以這么說(shuō),一個(gè)有很好的代碼風(fēng)格的人,技術(shù)水平絕不會(huì)太低;反之,一個(gè)沒(méi)有好的代碼風(fēng)格的人,技術(shù)水平也不會(huì)高到哪里去,即使是他已經(jīng)有很多年的編程經(jīng)驗(yàn)!因?yàn)?,在業(yè)界有一個(gè)不成文的現(xiàn)象,那就是每個(gè)工程師都有一個(gè)追求技術(shù)提升,追求完美的夢(mèng)!結(jié)果就是,隨著個(gè)人技術(shù)水平的提高,風(fēng)格也越來(lái)越成熟,而這個(gè)風(fēng)格就體現(xiàn)著其個(gè)人水平!

本文以PHP語(yǔ)言的某微視角,說(shuō)幾個(gè)代碼風(fēng)格上的事,同理可推至其他語(yǔ)言,其他技術(shù),甚至其他通用道理!

本文將以從面到線(xiàn)再到點(diǎn)的過(guò)程,講述一些個(gè)人心得。僅供大家?jiàn)蕵?lè)參考,如有不對(duì),請(qǐng)多多指教。如有雷同,不勝榮幸!

本文就以一個(gè)虛擬項(xiàng)目作為線(xiàn)索吧!

1、面:所謂面,就是面對(duì)一個(gè)項(xiàng)目擺在眼前,怎樣去部署大方向的問(wèn)題的思路!準(zhǔn)確的說(shuō),這里并不是真正地體現(xiàn)一個(gè)代碼風(fēng)格,而是一個(gè)做事風(fēng)格!

風(fēng)格1:1. 我需要需求書(shū),書(shū)上怎么寫(xiě),我就怎么做;2. 如果有一些未知的技術(shù),盡量讓需求上做一些讓步,以減少開(kāi)發(fā)難度;3. 找個(gè)牛逼的人,帶著自己或其他人一起做;4. 時(shí)間是多久?

風(fēng)格2:1. 我需要需求書(shū),書(shū)上寫(xiě)的東西,清楚嗎?有什么可要可不要的東西,有副作用嗎?2. 大概需要什么樣的輔助工具,在哪里可能會(huì)得到這些東西?3. 我怎樣組建自己的技術(shù)團(tuán)隊(duì)?4. 時(shí)間是多久?5. 后期可能會(huì)有什么樣的擴(kuò)展?

2、線(xiàn):所謂線(xiàn),可以理解為流水線(xiàn)吧。就是怎樣去完成這么一個(gè)計(jì)劃,怎樣調(diào)動(dòng)生產(chǎn)?

風(fēng)格1:1. 設(shè)計(jì)數(shù)據(jù)庫(kù); 2. 選擇代碼框架;3. 編碼;

風(fēng)格2:1. 設(shè)計(jì)服務(wù)架構(gòu);2. 模塊細(xì)化;3. 設(shè)計(jì)數(shù)據(jù)庫(kù); 4. 選擇代碼框架;5. 編碼;

3、 點(diǎn):所謂點(diǎn),其實(shí)才這里說(shuō)的真正的代碼風(fēng)格,將著重說(shuō)明一些。

風(fēng)格1:任性,隨意而為,沒(méi)有規(guī)則!

風(fēng)格2:著重講解!

3.1. 不一定非要使用現(xiàn)有成熟框架,但是一定要有MVC的概念,基本要拋棄面向過(guò)程編程方式,采用面向?qū)ο?,不任性?/p>

3.2. 結(jié)合多種設(shè)計(jì)模式進(jìn)行開(kāi)發(fā),如單例模式、工廠模式、抽象模式、觀察者模式等等,這些都是成熟的概念,都要盡量多用!優(yōu)雅,大氣,效率,易讀;

3.3. 類(lèi)內(nèi)部變量定義以權(quán)限放第一位,變量修飾符放第二位,以重要程度分先后,如 public static function fun1(){} ;類(lèi)名與文件名有某種特定程度的相同,方便查看;類(lèi)名統(tǒng)一首字母大寫(xiě);私有變量或方法使用下劃線(xiàn)開(kāi)頭以區(qū)分,如 private function _doCut($data);文件以最能體現(xiàn)其功能的單詞命名,區(qū)分類(lèi)型,如 IndexController.class.php, function.inc.php;

3.4. 文件內(nèi)部使用統(tǒng)一命名方式,要么使用下劃線(xiàn)方式命名,如 $get_child,$bind_value,要么使用駝峰式命名,如 $getChild,$bindValue;變量名盡量使用全名不要使用簡(jiǎn)寫(xiě),如 getCategory不要簡(jiǎn)寫(xiě)成getCat;

3.5. 多個(gè)參數(shù)之間有逗號(hào)分隔時(shí),逗號(hào)后要留一個(gè)空格如 fun($param1, $param2);運(yùn)算符兩邊均有一個(gè)空格(數(shù)組對(duì)齊除外),如 $click = 123;

3.6. 避免使用global變量,尤其是有些不是公共初始化時(shí)產(chǎn)生的變量;

3.7. 杜絕函數(shù)內(nèi)部include方法文件,因?yàn)檫@樣很難找到真正起作用的方法,或者說(shuō)方法混亂;

3.8. 使用自動(dòng)加載方式,而非include方式;

3.9. 如果一定要包含文件,盡量使用include_once,require_once 避免一個(gè)文件被引入多次從而報(bào)錯(cuò)情況;

3.10. 對(duì)可能多次引用的全局變量,使用某類(lèi)的靜態(tài)方法進(jìn)行獲取,如 ConfigClass::get(‘main’, ‘field’); 對(duì)于數(shù)據(jù)庫(kù)一類(lèi)連接,使用靜態(tài)變量,保存首次連接時(shí)打開(kāi)的連接,從而多處使用DB實(shí)例時(shí),仍然不會(huì)重復(fù)實(shí)例化,如 $db = ConfigClass::getDbInstance();

3.11. 多使用isset(), empty()等系統(tǒng)函數(shù)進(jìn)行判斷空操作而非 !$var, $var == null;

3.12. 對(duì)于使用兩次以上方法,就應(yīng)該去考慮提出到公用地方或者類(lèi)中;

3.13. 數(shù)據(jù)查詢(xún)先確認(rèn)當(dāng)前索引,配合寫(xiě)SQL,特別地方,一定加上注釋?zhuān)?/p>

3.14. 會(huì)使用文件鎖,數(shù)據(jù)庫(kù)鎖,會(huì)使用緩存如 memcache, redis, mongodb等;

3.15. 會(huì)適當(dāng)使用事務(wù);

其實(shí),好與不好,大家已早有定論,只是作個(gè)參考,罷了!

習(xí)慣,就好!

不要害怕今日的苦,你要相信明天,更苦!
編輯:hfy

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

    關(guān)注

    59

    文章

    1590

    瀏覽量

    69482
  • PHP
    PHP
    +關(guān)注

    關(guān)注

    0

    文章

    454

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    一技在手,醫(yī)療無(wú)憂(yōu)!零基礎(chǔ)轉(zhuǎn)行高薪醫(yī)療維修工程師

    做過(guò)家電維修,電器自動(dòng)化方面,就想著看多學(xué)個(gè)技術(shù)完了看看能不能做醫(yī)院的維修,培訓(xùn)都有什么課程?這個(gè)學(xué)多久?怎么收費(fèi)??jī)蓚€(gè)月學(xué)的會(huì)嗎?學(xué)完有什么證書(shū)?學(xué)完能否接醫(yī)院的活?彩虹講課老師本身就是現(xiàn)場(chǎng)維修工程師
    發(fā)表于 05-15 10:22

    問(wèn),成為硬件工程師需要幾只手?#硬件工程師 #YXC晶振 #揚(yáng)興科技 #搞笑

    硬件工程師
    揚(yáng)興科技
    發(fā)布于 :2025年04月25日 17:15:37

    “設(shè)計(jì)到生產(chǎn)”的蛻變:華秋DFM如何讓工程師們“輕松上陣”?

    在電子設(shè)計(jì)領(lǐng)域,工程師們常常面臨一個(gè)“隱形的敵人”: 設(shè)計(jì)與生產(chǎn)的脫節(jié) 。 比如精心設(shè)計(jì)的PCB,通過(guò)DRC檢查后,滿(mǎn)懷信心地送去生產(chǎn),結(jié)果仍被返工: 焊盤(pán)間距太小 ,無(wú)法保留阻焊及焊接飛料; 孔
    發(fā)表于 04-16 15:57

    單片機(jī)初學(xué)者邁向單片機(jī)工程師

    單片機(jī)初學(xué)者邁向單片機(jī)工程師,對(duì)初學(xué)者非常適用。 純分享貼,有需要可以直接下載附件獲取完整資料! (如果內(nèi)容有幫助可以關(guān)注、點(diǎn)贊、評(píng)論支持一下哦~)
    發(fā)表于 04-15 14:06

    硬件工程師:回答我!#回答我 #硬件工程師 #YXC晶振 #揚(yáng)興科技

    硬件工程師
    揚(yáng)興科技
    發(fā)布于 :2025年03月25日 18:46:59

    一招拿捏電子工程師#被AI拿捏了 #電子工程師 #電子電工

    電子工程師
    安泰小課堂
    發(fā)布于 :2025年03月25日 17:30:51

    嵌入式工程師常用的開(kāi)發(fā)工具有哪些?

    。 一、集成開(kāi)發(fā)環(huán)境(IDE) IDE是嵌入式開(kāi)發(fā)的核心工具之一。例如 Keil MDK,它支持多種微控制器架構(gòu),提供了強(qiáng)大的代碼編輯、編譯、調(diào)試功能。工程師可以在一個(gè)集成的環(huán)境中高效地編寫(xiě)
    發(fā)表于 12-20 15:29

    讓單片機(jī)代碼性能起飛的七大技巧

    單片機(jī)的程序比軟開(kāi)少一些,真正想編寫(xiě)出高效的代碼,還是要積累很多年的。? ? ? ? ?? 在做研發(fā)工程師的10年里,我經(jīng)歷過(guò)幾個(gè)公司,看過(guò)很多工程師寫(xiě)的
    的頭像 發(fā)表于 11-16 10:21 ?1144次閱讀
    讓單片機(jī)<b class='flag-5'>代碼</b>性能起飛的七大技巧

    AIC3254的miniDSP編寫(xiě)代碼編寫(xiě)C5502代碼有什么區(qū)別?

    問(wèn)題:AIC3254的miniDSP編寫(xiě)代碼編寫(xiě)C5502代碼有什么區(qū)別,執(zhí)行速度和代碼量來(lái)進(jìn)行分析吧,謝謝回復(fù)
    發(fā)表于 11-06 07:22

    怎么樣提高verilog代碼編寫(xiě)水平?

    ,共同進(jìn)步。 歡迎加入FPGA技術(shù)微信交流群14群! 交流問(wèn)題(一) Q:怎么樣提高verilog代碼編寫(xiě)水平?Cpu 從事DFT工作。目前僅限于寫(xiě)一些簡(jiǎn)單模塊。自學(xué)的話(huà)如何提高verilog編寫(xiě)水平
    發(fā)表于 09-25 20:05

    FPGA算法工程師、邏輯工程師、原型驗(yàn)證工程師有什么區(qū)別?

    的設(shè)計(jì)和實(shí)現(xiàn)。他們使用硬件描述語(yǔ)言(如 Verilog 或 VHDL)來(lái)編寫(xiě)代碼,構(gòu)建復(fù)雜的數(shù)字邏輯系統(tǒng)。工作包括模塊的設(shè)計(jì)、功能的實(shí)現(xiàn)、時(shí)序的優(yōu)化以及與其他硬件組件的接口設(shè)計(jì)等。 FPGA 原型驗(yàn)證工程師
    發(fā)表于 09-23 18:26