999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

成為專業(yè)程序員的 6個(gè)技巧

2015-08-30 06:26:32莫華

1.在你責(zé)怪別人之前,先檢查自己的代碼

先想一想自己的假設(shè)和其他人的假設(shè)。來自不同供應(yīng)商的工具可能內(nèi)置不同的假設(shè),即便是相同的供應(yīng)商對(duì)于不同的工具,其假設(shè)也可能不同。

當(dāng)其他人正在報(bào)告一個(gè)你不能重復(fù)的問題的時(shí)候,去看看他們?cè)谧鍪裁础K麄兛赡軙?huì)做一些你從來沒有想到過的事情,或者他們的做事順序與你的截然不同。

筆者個(gè)人的原則是,如果我有一個(gè)不能確定的錯(cuò)誤,那么我會(huì)先考慮是不是編譯器的問題,然后再去檢查堆棧是否損壞。特別是當(dāng)添加跟蹤代碼會(huì)使得問題移動(dòng)的話就更要這么做了。多線程問題是bug的另一個(gè)來源,有時(shí)候令人焦躁得簡直想拔光頭發(fā),或者直接想摔電腦。當(dāng)系統(tǒng)是多線程的時(shí)候,最好傾向于簡單的代碼。我們不能依賴調(diào)試和單元測試來發(fā)現(xiàn)任何一致性的bug,所以設(shè)計(jì)的簡單性是最重要的。

所以,在你不分青紅皂白地去責(zé)怪編譯器之前,先想一想福爾摩斯的這條建議,“一旦你排除了種種不可能,剩下的不管有多么難以置信,一定就是真相”。

2.不斷學(xué)習(xí)

我們生活在一個(gè)有趣的時(shí)代。隨著軟件開發(fā)逐漸遍布全球各地,你會(huì)發(fā)現(xiàn)有很多人都可以干你的工作。所以你需要不斷學(xué)習(xí)以保持競爭力。否則,你就會(huì)落伍,停滯不前,直到有一天,這份工作不再需要你,或外包給一些更廉價(jià)的勞動(dòng)力。

那么我們能做些什么?有些雇主很慷慨,會(huì)提供培訓(xùn)以拓寬你的技能。也有的人會(huì)說我沒時(shí)間或者沒這個(gè)資金去接受任何培訓(xùn)。所以,關(guān)鍵是要擺正心態(tài),學(xué)習(xí)是對(duì)自己的負(fù)責(zé)。

這里有一些學(xué)習(xí)的方法。而且許多資源都可以在互聯(lián)網(wǎng)上免費(fèi)獲取:

閱讀書籍、雜志、博客、Twitter feeds和網(wǎng)站。如果你想更深入地了解對(duì)象,可以考慮添加到郵件列表或新聞組。

如果你真想學(xué)習(xí)某一種技術(shù),那么就親自動(dòng)手寫代碼。

盡量與導(dǎo)師一起工作。雖然你從任何人身上都可以學(xué)到一些東西,但是從那些比你更聰明或更有經(jīng)驗(yàn)的人身上,你能學(xué)到的更多。如果你實(shí)在找不到這樣的良師益友,那么請(qǐng)繼續(xù)往下看。

使用虛擬導(dǎo)師。在網(wǎng)絡(luò)上找你真正喜歡的作者和開發(fā)人員,閱讀他們寫的內(nèi)容,訂閱他們的博客。

了解你使用的框架和庫。知道事物的工作原理,有助于你更好地應(yīng)用它們。如果你使用的是開源資源,那么你真的很幸運(yùn)。使用調(diào)試器單步執(zhí)行代碼,以查看內(nèi)部究竟是怎么回事。你也可以去看看那些確實(shí)比你聰明的人是如何編寫和審查代碼的。

當(dāng)你犯了錯(cuò)誤,修復(fù)bug,或者遇到問題的時(shí)候,試著去真正理解發(fā)生了什么事情。很有可能其他人已經(jīng)遇到過同樣的問題,并且發(fā)布在了網(wǎng)上。谷歌搜索真的很有用。

學(xué)習(xí)東西還有一個(gè)好方法就是所謂的“教學(xué)相長”。當(dāng)別人在傾聽你的言語,并問你問題的同時(shí),你也會(huì)學(xué)到東西。可以建立用戶組或本地會(huì)議。

為自己感興趣語言和技術(shù)加入或啟動(dòng)一個(gè)研究小組(模式社區(qū)),也可以創(chuàng)建本地的用戶組。

參加會(huì)議。如果去不了的話,也可以在網(wǎng)上看,許多會(huì)議會(huì)將其談話免費(fèi)發(fā)布到網(wǎng)上。

收聽播客。

曾經(jīng)對(duì)代碼庫運(yùn)行過靜態(tài)分析工具,又或者查看下你的IDE警告?了解它們報(bào)告了什么,以及其原因。

當(dāng)然如果你有《黑客帝國》中Neo那樣的超能力,自然這一切對(duì)你而言不過是小菜一碟。但很可惜,我們都是普通人,我們需要時(shí)間和精力,以及不斷的努力才能促使自己不斷的學(xué)習(xí)。不過,你不必成天學(xué)習(xí)。只要你能有意識(shí)地花點(diǎn)時(shí)間去學(xué)習(xí)就可以了,哪怕每天一小時(shí),有總比沒有好。人活著不是為了工作,你還應(yīng)該有自己的生活。

3.不要害怕破壞東西

每個(gè)具備行業(yè)經(jīng)驗(yàn)的程序員肯定參與過代碼庫岌岌可危的項(xiàng)目。系統(tǒng)很糟糕,并且改變這邊總是會(huì)破壞另一邊不相關(guān)的功能。每次添加模塊,程序員只能想著盡可能少地改變代碼,每次發(fā)布都膽戰(zhàn)心驚。這座軟件的摩天大樓隨時(shí)有坍塌的可能。之所以改動(dòng)代碼會(huì)如此傷腦筋是因?yàn)橄到y(tǒng)太糟糕了。即使你知道系統(tǒng)出了問題,卻又因?yàn)橥妒蠹善鳎坏貌宦犞沃H魏我粋€(gè)外科醫(yī)生都懂得,傷口要想愈合就必須得切除腐肉。雖然手術(shù)會(huì)帶來痛苦,但絕對(duì)比任傷口發(fā)炎潰爛要好。

不要害怕你的代碼。沒有人會(huì)在乎當(dāng)你搗鼓代碼的時(shí)候有沒有暫時(shí)破壞了什么東西。只要你做的改變不會(huì)讓項(xiàng)目重新回到開始狀態(tài),就不會(huì)令人崩潰。投入時(shí)間重構(gòu),能讓你受益于項(xiàng)目整個(gè)生命周期。這樣做還有一個(gè)額外的好處是,由于你有過這種處理病危系統(tǒng)的經(jīng)驗(yàn),所以你對(duì)它應(yīng)該如何工作非常內(nèi)行。要善于應(yīng)用這些知識(shí),千萬不要反感這些寶貴的財(cái)富。重新定義內(nèi)部接口,重構(gòu)模塊,重構(gòu)復(fù)制粘貼代碼,并通過減少依賴來簡化設(shè)計(jì)。你可以通過消除特殊情況顯著降低代碼的復(fù)雜性,因?yàn)樘厥馇闆r往往是因?yàn)殄e(cuò)誤的耦合特點(diǎn)導(dǎo)致的。慢慢地從舊結(jié)構(gòu)過渡到新結(jié)構(gòu),測試一路同行。如果你想要一下子完成一個(gè)大的重構(gòu),那么往往會(huì)因?yàn)楦鞣N頻出的問題而考慮中途放棄。

4.專業(yè)程序員

專業(yè)程序員的一個(gè)最重要的特點(diǎn)是有責(zé)任心。專業(yè)程序員會(huì)為他們的職業(yè)生涯、預(yù)算、日程安排承諾、錯(cuò)誤、技能技巧負(fù)責(zé)。一個(gè)專業(yè)的程序員不會(huì)將責(zé)任推卸給別人。

如果你是專業(yè)的,那么你就需要為自己的職業(yè)生涯負(fù)責(zé)。你有責(zé)任去閱讀和學(xué)習(xí)。你有責(zé)任去時(shí)刻關(guān)注最新的產(chǎn)業(yè)和技術(shù)。但是許多程序員覺得這應(yīng)該是他們雇主的工作。NO,大錯(cuò)特錯(cuò)。想一想醫(yī)生?想一想律師?他們都是靠自己來培養(yǎng)和訓(xùn)練自己的。他們的下班時(shí)間多用在了閱讀雜志報(bào)刊上。他們時(shí)刻關(guān)注著最新的資訊動(dòng)態(tài)。所以,我們也應(yīng)該如此。你和你雇主之間的關(guān)系,已經(jīng)在雇用合同上作了詳細(xì)的說明,簡而言之就是:你的雇主承諾支付你薪酬,而你承諾做好工作。

專業(yè)程序員會(huì)為他們編寫的代碼負(fù)責(zé)。除非他們知道這些代碼是有效的,否則就不會(huì)發(fā)布代碼。現(xiàn)在,好好思考這個(gè)問題:如果是你,你會(huì)不會(huì)在不透徹了解代碼的情況下就直接發(fā)布代碼?專業(yè)程序員不希望QA找到任何bug,因?yàn)檫@些代碼都是經(jīng)過他測試之后才發(fā)布的。當(dāng)然,QA依然會(huì)發(fā)現(xiàn)一些問題,因?yàn)闆]有一個(gè)人是完美的。但作為專業(yè)程序員,我們的態(tài)度應(yīng)該是讓QA找不到任何缺陷。

專業(yè)程序員也是好的團(tuán)隊(duì)成員。他們負(fù)責(zé)地對(duì)待整個(gè)團(tuán)隊(duì)的輸出,而不是只顧自己的工作。他們樂于助人,善于向彼此學(xué)習(xí),在需要的時(shí)候甚至?xí)αο嘀瑸榱隧?xiàng)目前仆后繼。

5.充分利用代碼分析工具

測試的價(jià)值是編程早期階段就灌輸給軟件開發(fā)者的一個(gè)理念。近年來,單元測試,測試驅(qū)動(dòng)開發(fā)和敏捷方法的興起,證實(shí)了我們開始注重于在開發(fā)周期的各個(gè)階段進(jìn)行測試。但是,測試只是你可以用來提高代碼質(zhì)量的許多工具之一。

回過頭去看,當(dāng)C語言還是一個(gè)新事物的時(shí)候,CPU?時(shí)間和任何類型的存儲(chǔ)都是非常寶貴的。第一個(gè)C語言編譯器注意到了這一點(diǎn),所以選擇了通過去掉一些語義分析,來減少代碼之間的傳遞次數(shù)。這意味著,在編譯時(shí),編譯器檢查到的可能只是可被檢測到的bug中的一小部分。為了彌補(bǔ)這個(gè)缺陷,Stephen Johnson寫了一個(gè)名為lint的工具——它將從你的代碼中刪除一些沒有價(jià)值的東西——從而實(shí)現(xiàn)一些已被它的兄弟C語言編譯器撤掉的靜態(tài)分析功能。然而,靜態(tài)分析工具卻因?yàn)榭梢越o出大范圍的誤報(bào)警告和一些沒有必要遵循的靜態(tài)文體慣例的警告而倍受贊譽(yù)。

現(xiàn)在的語言、編譯器和靜態(tài)分析工具的設(shè)計(jì)和以前已經(jīng)大不相同。由于內(nèi)存和CPU?時(shí)間變得相對(duì)比較便宜,因此負(fù)擔(dān)得起編譯器檢查更多的錯(cuò)誤。幾乎每一種語言都擁有至少一個(gè)工具,用來檢查風(fēng)格指南的違規(guī)行為、常見問題以及一些狡猾的有時(shí)候可能很難捕捉到的錯(cuò)誤,如潛在取消引用空指針。更高級(jí)的工具,如C的Splint,以及Python的pylint,是可配置的,這意味著你可以通過命令行開關(guān)或在IDE中,使用配置文件來讓工具選擇放過其中的哪些錯(cuò)誤和警告。Splint甚至還能讓你在注釋中注解你的代碼,以便于更好地提示你的程序是如何工作的。

6.關(guān)心代碼

優(yōu)秀程序員能寫出好代碼,這是毋庸置疑的。壞程序員……則不能(他們能寫出好代碼,就不是壞程序員了,哈哈)。他們總是在生產(chǎn)其他人不得不消滅的怪獸。你的目標(biāo)是寫出好代碼,對(duì)不?那么你應(yīng)該成為好程序員。

好的代碼并不是憑空而來的,也不能靠運(yùn)氣然后恰巧讓你瞎貓碰到死老鼠。為了獲得良好的代碼,你必須努力的改進(jìn)。過程是艱難的。但是如果你確實(shí)關(guān)心代碼的話,那么你一定能收獲好代碼。

僅靠技術(shù)并不能成就好的編程。我碰到過一些非常聰明的程序員,他們能夠產(chǎn)出令人印象深刻的算法,能夠熟記語言標(biāo)準(zhǔn),但卻寫出了最可怕的代碼。這種代碼,閱讀起來很痛苦,使用起來很痛苦,修改起來更是令人痛不欲生。我也碰到過一些非常謙遜的程序員,因?yàn)閳?jiān)持簡單的代碼,所以寫出來的程序更優(yōu)雅,更易于表達(dá)他的意思,和他們工作非常愉快。

基于多年的軟件生產(chǎn)經(jīng)驗(yàn),得出的結(jié)論是,差強(qiáng)人意的程序員和偉大的程序員之間的真正區(qū)別是:態(tài)度。好的編程在于專業(yè)的方法,以及一種竭盡全力希望寫出最好軟件的期望。

要成為一個(gè)優(yōu)秀的程序員,你必須對(duì)自己的代碼負(fù)責(zé),真正關(guān)心代碼——養(yǎng)成積極向上的心態(tài)。偉大的代碼是由大師精心雕琢的,而不是由那些馬虎的程序員胡亂寫出來的。

主站蜘蛛池模板: 精品无码人妻一区二区| 蝴蝶伊人久久中文娱乐网| 亚洲黄网视频| 国产精品无码AⅤ在线观看播放| 玩两个丰满老熟女久久网| 亚洲中文字幕国产av| 亚洲系列无码专区偷窥无码| 色呦呦手机在线精品| 九九热精品视频在线| 午夜福利无码一区二区| 日韩欧美一区在线观看| 香蕉视频在线观看www| 中文字幕人成人乱码亚洲电影| 青青草91视频| 国产真实二区一区在线亚洲 | 有专无码视频| 亚洲中文无码av永久伊人| 不卡网亚洲无码| 中字无码精油按摩中出视频| 国产在线日本| 三区在线视频| 少妇高潮惨叫久久久久久| 国产一二三区在线| 免费观看男人免费桶女人视频| 日本AⅤ精品一区二区三区日| 日韩激情成人| 91成人试看福利体验区| 国产一区二区丝袜高跟鞋| 亚洲激情区| 51国产偷自视频区视频手机观看| 国产极品粉嫩小泬免费看| 国产高清国内精品福利| 中文字幕亚洲另类天堂| 国产乱子伦手机在线| 午夜毛片免费观看视频 | 亚洲欧美日韩中文字幕在线| 3p叠罗汉国产精品久久| 日本91在线| 国产欧美日韩视频怡春院| 国产精品男人的天堂| 中文字幕久久精品波多野结| 欧洲成人在线观看| 在线观看视频99| 国产一区二区网站| 免费在线国产一区二区三区精品| 女人av社区男人的天堂| 欧洲亚洲欧美国产日本高清| a天堂视频在线| 91丝袜在线观看| 精品乱码久久久久久久| 欧美精品xx| 久久九九热视频| 毛片最新网址| 2022精品国偷自产免费观看| 日韩经典精品无码一区二区| 久久人人妻人人爽人人卡片av| 亚洲永久视频| 爆乳熟妇一区二区三区| 专干老肥熟女视频网站| 精品剧情v国产在线观看| 国产乱子伦精品视频| 在线视频一区二区三区不卡| 国内毛片视频| 伊人AV天堂| 国产一区在线观看无码| 国产女人在线视频| 国产一区二区丝袜高跟鞋| 久久人体视频| 一级毛片不卡片免费观看| 国产福利一区二区在线观看| 免费精品一区二区h| 欧美成人精品一区二区| a级毛片免费网站| a毛片在线播放| 欧美激情一区二区三区成人| 亚洲天堂视频网站| 亚洲天堂区| 99久视频| 国产区免费精品视频| 色色中文字幕| 久久综合亚洲色一区二区三区| 91毛片网|