自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

提高新老碼農(nóng)生產(chǎn)率的6點(diǎn)可行性建議

譯文
開發(fā) 后端
本文向您介紹六種提高生產(chǎn)率的可行性技術(shù)建議,希望能夠?qū)δ捻?xiàng)目實(shí)踐提供幫助,讓您事半功倍。

【51CTO.com快譯】有人認(rèn)為:無(wú)論是新手程序員、還是編程老司機(jī),說(shuō)到底并非代碼的創(chuàng)造者,而是程序的“搬運(yùn)工”。在項(xiàng)目開發(fā)中,他們希望自己能夠高效、且頗有成就感地交付出完美的代碼,但是現(xiàn)實(shí)卻往往事與愿違。本文將從一名深耕編程領(lǐng)域多年的資深碼農(nóng)的角度出發(fā),和您分享六個(gè)方面的經(jīng)驗(yàn)總結(jié),希望能夠幫助您最大限度地提高生產(chǎn)率、并加快產(chǎn)品的交付速度。

1.使用恰當(dāng)?shù)木幊陶Z(yǔ)言

[[344102]]

俗話說(shuō):“工欲善其事,必先利其器。”如果您的團(tuán)隊(duì)能夠?yàn)閼?yīng)用程序選用合適的編碼語(yǔ)言,勢(shì)必會(huì)對(duì)開發(fā)任務(wù)的高效完成產(chǎn)生積極的正面影響。例如:

  • Python能夠“扎根”于科學(xué)計(jì)算,因此那些重視程序穩(wěn)定性、以及問(wèn)題解決一致性的開發(fā)人員,會(huì)時(shí)常選擇Python。
  • Ruby非常適合網(wǎng)站的表達(dá)性代碼,并且Ruby社區(qū)可以為同一問(wèn)題提供多種解決方法。
  • PHP是針對(duì)快速服務(wù)器端應(yīng)用的絕佳選擇。它幾乎可以在任何地方被部署。由于社區(qū)中擁有大量的PHP開發(fā)人員,因此它形成了一套生態(tài)系統(tǒng),并能夠?qū)δ诸^的項(xiàng)目及時(shí)提供幫助。
  • Node.js雖然稍許復(fù)雜,但是它允許Web開發(fā)人員在服務(wù)器端使用與客戶端相同的語(yǔ)言。如果您需要提供高度交互性的客戶端體驗(yàn),那么就可以選擇Node.js來(lái)進(jìn)行優(yōu)化。

不過(guò),無(wú)論如何,請(qǐng)盡量不要讓最新的編程時(shí)尚影響您的語(yǔ)言選擇。最新的不一定是最適合您手頭項(xiàng)目的語(yǔ)言。就我個(gè)人而言:十年前,我們會(huì)用一些JavaScript在服務(wù)器端呈現(xiàn)頁(yè)面。五年前,我們會(huì)用REST或GraphQL API進(jìn)行客戶端的數(shù)據(jù)渲染。而在2020年初,我們?cè)趹?yīng)用程序中使用了TypeScript,來(lái)呈現(xiàn)服務(wù)器端數(shù)據(jù)。

2.不要自行實(shí)施身份驗(yàn)證

我參與過(guò)多個(gè)項(xiàng)目,其中有些是在應(yīng)用程序中實(shí)現(xiàn)了自定義的身份驗(yàn)證,并且將加鹽(salted)的密碼哈希值保存到數(shù)據(jù)庫(kù)中。實(shí)際上,這完全沒(méi)有需要。由于我們擁有將身份驗(yàn)證委派給活動(dòng)目錄(Active Directory)的基礎(chǔ)架構(gòu),因此用戶完全可以使用與Windows登錄名相同的密碼。如今,我們已經(jīng)擁有了Auth0及其類似產(chǎn)品,完全可以將身份驗(yàn)證委托給Auth0。據(jù)此,我們不但可以降低自行設(shè)計(jì)與實(shí)現(xiàn)身份驗(yàn)證所帶來(lái)的潛在風(fēng)險(xiǎn),而且能夠?yàn)閼?yīng)用程序提供更好的安全性。

3.首先編寫單元測(cè)試

沒(méi)有測(cè)試驅(qū)動(dòng)的設(shè)計(jì),就像只知道編寫代碼,而不開展測(cè)試一樣,您最終會(huì)發(fā)現(xiàn)各種無(wú)法解決的長(zhǎng)方法、長(zhǎng)參數(shù)列表等問(wèn)題,而且這些代碼也會(huì)變得難以維護(hù)和改進(jìn)。有時(shí)候,您需要手動(dòng)去執(zhí)行“git reset”,或直接轉(zhuǎn)入代碼重構(gòu)(https://www.refactoring.com/)。

為了成功地進(jìn)行單元測(cè)試,我們可以將某些功能分解為如上圖所示的“紅色、綠色、重構(gòu)”,這樣的微循環(huán)。其中:

  • 紅色 - 直接從那些失敗的單元處開始編寫測(cè)試,通過(guò)排除真實(shí)運(yùn)行環(huán)境中的干擾因素,以便隨時(shí)運(yùn)行單元測(cè)試。
  • 綠色 - 編寫使該單元能夠測(cè)試通過(guò)的代碼。
  • 重構(gòu) — 清理代碼,重構(gòu)并再次運(yùn)行單元測(cè)試。

如此往復(fù)循環(huán)下去,以提高代碼的質(zhì)量,并增強(qiáng)團(tuán)隊(duì)對(duì)于軟件產(chǎn)品的交付信心。

4.利用SaaS、IaaS和PaaS

如今,開發(fā)人員需要將更多的時(shí)間投入到那些非代碼性的任務(wù)上,其中包括:基礎(chǔ)架構(gòu)、DevOps、以及集成等方面。實(shí)際上,您完全可以通過(guò)簡(jiǎn)單的git push,這類SaaS服務(wù)與工具,來(lái)部署應(yīng)用的新版本,且無(wú)需與DBA、系統(tǒng)管理員等搶奪內(nèi)網(wǎng)資源。SaaS、IaaS和PaaS等服務(wù)供應(yīng)商可以幫助我們打理各種有關(guān)軟件項(xiàng)目開發(fā)的基本瑣事。例如,您不需要自行配置Logstash和ElasticSearch的復(fù)制,第三方服務(wù)公司會(huì)從您的應(yīng)用中檢索并提取相關(guān)日志,同時(shí)在保存了90天后再刪除掉,以滿足GDPR(歐洲《通用數(shù)據(jù)保護(hù)條例》,https://www.ctrl.blog/entry/gdpr-web-server-logs.html)的要求。當(dāng)然,您既需要花時(shí)間去找到能夠提供此類服務(wù)的可靠提供商,又要充分衡量將客戶的信用卡、短信、郵件等信息,存放到第三方平臺(tái)所帶來(lái)的安全性問(wèn)題。

此外,像Heroku之類的平臺(tái)即服務(wù)(PaaS)提供商,不僅能夠?qū)崿F(xiàn)應(yīng)用程序的外包托管,而且可以通過(guò)各種技術(shù)棧的預(yù)配置安裝,提供基礎(chǔ)架構(gòu)和平臺(tái)的日常運(yùn)維。據(jù)此,您可以更加專注于軟件產(chǎn)品的交付時(shí)間。

5.使用IDE來(lái)分析代碼

一些常用的、廣受歡迎的IDE(集成開發(fā)環(huán)境,如:Eclipse、IntelliJ、Visual Studio、以及VS Code等),要么過(guò)于復(fù)雜,要么只能發(fā)現(xiàn)case塊中沒(méi)有最終默認(rèn)子句之類的問(wèn)題。我們?cè)趯?shí)際項(xiàng)目中使用到了linter這一套開發(fā)工具(生態(tài)系統(tǒng))。它能夠集成IDE或編輯器的各種內(nèi)置功能,方便我們開展各種調(diào)試。其中,SonarLint不但能夠支持前面提到的各種IDE,還可以提供針對(duì)程序中安全問(wèn)題、細(xì)微錯(cuò)誤、以及不規(guī)范編碼的各種建議。此外,您還可以使用SonarQube來(lái)衡量代碼的質(zhì)量,修正IDE中的錯(cuò)誤建議,最終交付安全且易于維護(hù)的代碼。

6.快速構(gòu)建

[[344104]]

作為獨(dú)立的開發(fā)人員,您可能會(huì)選擇在本地的開發(fā)環(huán)境中,運(yùn)行測(cè)試和部署代碼,并據(jù)此得到快速的反饋。但是,當(dāng)您在進(jìn)行團(tuán)隊(duì)協(xié)作時(shí),程序代碼就可能需要在CI/CD管道中運(yùn)行了。為了按時(shí)完成任務(wù),我們往往會(huì)用到MakefileGradle、或其他適合編程語(yǔ)言與運(yùn)行時(shí)環(huán)境的構(gòu)建工具,以便實(shí)現(xiàn)數(shù)據(jù)庫(kù)的遷移、打包、部署、以及分發(fā)等過(guò)程自動(dòng)化,并保證代碼能夠順利地運(yùn)行在生產(chǎn)環(huán)境中。

在任何新的項(xiàng)目開啟時(shí),我們都需要對(duì)其進(jìn)行一些基礎(chǔ)性的探索與研究。而在開發(fā)的生命周期中,我們的重點(diǎn)除了編寫代碼,還應(yīng)當(dāng)兼顧實(shí)施構(gòu)建,搭建IDE,配置運(yùn)行環(huán)境,部署生產(chǎn)環(huán)境,以及順暢地與外部進(jìn)行各種調(diào)用和交互。

小結(jié)

當(dāng)然,在實(shí)際開發(fā)程序的過(guò)程中,我們可能會(huì)碰到許多影響到生產(chǎn)率和交貨時(shí)間的因素。希望上面介紹的六種提高生產(chǎn)率的可行性技術(shù)建議,能夠?qū)δ捻?xiàng)目實(shí)踐提供幫助,讓您事半功倍。

原標(biāo)題:6 Productivity Practices for New (or Old) Developers ,作者: Michael Bogan

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

責(zé)任編輯:龐桂玉 來(lái)源: 51CTO
相關(guān)推薦

2020-12-28 07:59:22

DevOps開發(fā)工具

2014-04-04 10:27:50

碼農(nóng)工作效率

2020-12-30 18:27:02

DevOps開發(fā)

2021-04-30 13:40:55

Linux自動(dòng)化工具開源

2012-04-12 17:41:02

2023-09-25 16:16:14

數(shù)字孿生

2011-04-28 11:04:22

DataReader分頁(yè)

2009-09-21 16:40:42

Hibernate可行

2013-05-08 10:23:45

工作效率效率提高效率

2011-06-24 11:35:01

內(nèi)鏈

2009-12-25 14:26:40

無(wú)線接入技術(shù)集成

2011-12-13 20:36:26

Android

2009-02-17 15:59:55

2009-06-15 09:57:46

HibernateIBatis

2013-08-27 11:15:20

2009-07-30 16:48:48

摩托羅拉制造移動(dòng)技術(shù)

2013-01-30 14:27:51

Compuware

2018-07-16 15:11:39

設(shè)計(jì)能力Java模式

2012-10-26 13:48:54

云計(jì)算運(yùn)維云安全

2011-11-14 09:10:08

虛擬化
點(diǎn)贊
收藏

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