成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

我拒絕接受的幾個最佳編程實踐方法

開發(fā) 后端
在很多語言里,這通常是一種被推薦的做法,有些甚至是必須的。如果是在C++里,這還算是有點意義,因為更少 #include 意味著更快的編譯速度,然而,這種意義僅體現(xiàn)在需要花很長時間去編譯的大型項目中。

[[82835]]

import類,而不是import整個包

在很多語言里,這通常是一種被推薦的做法,有些甚至是必須的。如果是在C++里,這還算是有點意義,因為更少 #include 意味著更快的編譯速度,然而,這種意義僅體現(xiàn)在需要花很長時間去編譯的大型項目中。

而對很多像Java這樣的語言,這毫無意義。因為它不影響編譯的時間,所有你得到的回報只是花更多的努力來維護你的import語句。雖然IDE可以幫助你做這些事情,但你仍然需要時不時的多點幾次鼠標(biāo)/鍵盤,在版本控制系統(tǒng)里多留幾條變更記錄,干擾你的代碼審查。有什么實際用處?向官僚機構(gòu)表明代碼很規(guī)范,無它用途。

面向接口編程

這項編程法則要求程序員定義接口,并針對接口來編程,而不是針對實現(xiàn)編程。理由非常簡單:容易開發(fā)第二種實現(xiàn),易于測試(真的嗎?),更有效的使用代碼。

問題就出在你不能凡事都按照這個原則。我個人認(rèn)為,如果一個方法需要有多個實現(xiàn),那使用接口是不二選擇。但除此之外,如果你仍遵守的話,除了增加代碼量,增添麻煩外,不會有任何好處。而且,把一個類重構(gòu)成接口和它的實現(xiàn)并不困難,事實上是非常簡單,所以,為什么一開始就要寫接口呢,當(dāng)需要時把它改造成接口也不晚。

禁用某種語言功能

在很多企業(yè)、組織使用的編碼規(guī)范中,你會發(fā)現(xiàn)各種各樣的類似于“不要使用goto語句”,“不要使用三元操作符”等規(guī)則。

如果一種語言的某種語法并未標(biāo)志為“deprecated”,為什么不讓人使用?當(dāng)然,要正確的使用!即使像 goto 這樣的語法同樣可以讓代碼更可讀、更易理解——只要你能以正確的方式、用在正確的地方。

使用Setters/getters,禁止public屬性

這是***的Java風(fēng)格,Java里任何公有屬性都是不提倡的,任何屬性都應(yīng)該通過 setters 和 getters 操作,不允許有任何質(zhì)疑。有些共用框架更加強化了這些。每次當(dāng)我看到一個5年前的老類里只有一些私有屬性和公有的無聊的 setters 和 getters ,我都會奇怪這是要干嘛?是為了增加代碼量?是為了預(yù)防將來有可能出現(xiàn)意外的屬性值修改?但是如果真的有人修改了,這又能起到什么預(yù)防效果?

單個返回語句

有人說多個返回語句會讓代碼變復(fù)雜。我發(fā)現(xiàn)卻正好完全相反。當(dāng)方法/函數(shù)在退出之前需要做一些收尾工作時,單一return語句會讓函數(shù)更簡單,但在其它很多情況下,這反而會讓事情變得復(fù)雜,你需要添加額外的if-else來處理各種非正常退出情況。

盡量責(zé)任分離

我這里主要是針對“盡量”。有些人把這做到了極限,甚至有些變態(tài)。沒錯,把大的復(fù)雜的問題拆分成小的簡單問題,這很好。但拆的太小就會引起新的問題。如果你把一棵樹砍成牙簽?zāi)敲创笮〉膲K,你得到的就是一堆垃圾。

有些問題本身就是很復(fù)雜,你無法通過拆解來讓它變簡單。

為了讓這篇文章有個比較積極的結(jié)尾,下面是我認(rèn)為的放之四海皆準(zhǔn)的***實踐方法:

  • 做任何事情都要有個理由
  • 如果你做的未能符合預(yù)期,重做,替換方法或給予修正
  • 扔掉垃圾通常是你最應(yīng)該做的事情——不論這垃圾造價多高

英文原文:Programming best practices I disaprove

譯文鏈接:http://www.aqee.net/programming-best-practices-i-disaprove/

責(zé)任編輯:林師授 來源: 外刊IT評論
相關(guān)推薦

2022-07-07 08:00:00

VDI虛擬化虛擬桌面

2014-08-19 10:06:53

IAP

2015-06-02 11:04:02

編程最佳編程建議

2011-09-01 14:36:38

敏捷

2012-09-03 11:03:10

程序員編程

2012-09-03 11:09:37

2013-04-01 09:39:06

JavaJava異常

2022-06-28 13:25:19

K8sPrometheusGrafana

2024-05-16 13:13:39

微服務(wù)架構(gòu)自動化

2011-05-27 15:00:12

網(wǎng)站優(yōu)化關(guān)鍵字

2021-07-06 14:17:16

MLOps機器學(xué)習(xí)AI

2010-12-02 08:12:16

2011-07-28 18:11:18

Objective-C Cocoa 編程

2011-09-14 10:38:39

2013-01-30 10:28:06

閱讀方法編程書籍程序員

2013-05-28 09:47:36

異常處理Javay異常

2015-09-15 16:01:40

混合IT私有云IT架構(gòu)

2023-07-21 01:12:30

Reactfalse?變量

2011-08-18 11:05:21

jQuery

2013-07-24 10:03:15

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 久久国产欧美一区二区三区精品 | 超碰97免费在线 | 亚洲成人av | 爱综合| 99热在线免费 | 玖玖久久 | 国产日韩欧美在线观看 | 欧美成人第一页 | 亚洲一区二区精品视频 | 精品一区二区三区在线观看 | 综合久| 天天干夜夜操 | 国产精品久久久乱弄 | 国产日韩欧美中文字幕 | 久久丝袜视频 | 5060网一级毛片 | 亚洲成人精品影院 | 日韩精品专区在线影院重磅 | 欧美不卡在线 | 久热伊人 | 毛片免费视频 | 日韩影音 | 中文字幕蜜臀av | 一区二区免费在线观看 | 欧美一级特黄aaa大片在线观看 | 国产美女视频一区 | 99久久精品免费看国产高清 | 日韩av在线中文字幕 | 久久伊人亚洲 | 91视视频在线观看入口直接观看 | 综合网在线 | 日本理论片好看理论片 | 精品一二三 | 久久99国产精品久久99果冻传媒 | 国产精品久久国产愉拍 | 91视频免费在观看 | 在线免费黄色小视频 | 亚洲一区二区三区四区在线观看 | 亚洲高清在线 | 国产成人jvid在线播放 | 成人久久久 |