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

10年老程序員告訴你的10條編程原則

新聞
在我寫了10來年程序之后,或多或少有一些心得,希望在這里做一個(gè)總結(jié)分享給大家,為了不讓本文變成一篇和其他總結(jié)問類似的水文,我盡可能用自己的親身經(jīng)歷來告訴大家編程中遇到的問題和解決思路。

在我寫了10來年程序之后,或多或少有一些心得,希望在這里做一個(gè)總結(jié)分享給大家,為了不讓本文變成一篇和其他總結(jié)問類似的水文,我盡可能用自己的親身經(jīng)歷來告訴大家編程中遇到的問題和解決思路。

[[321138]]

1:磨刀不誤砍柴工

磨刀不誤砍材工這個(gè)故事相信很多人都聽過,但是用到自己身上可能就是失效了。

我們很多時(shí)候都是在邊寫程序邊思考如何去寫,中途遇到問題又可能會(huì)推倒重來,不管軟件開發(fā)的規(guī)模大小,一開始都需要對(duì)需求做詳細(xì)的分析和設(shè)計(jì)才能開工。

多花時(shí)間在傾聽用戶的需求和問題上。

“思考-編碼-測(cè)試-改進(jìn)“,不斷的重復(fù)這條路去做。

2:自動(dòng)化一切

作為程序員,我們干的事情本質(zhì)上是讓世界的所有事物變得高效、有序,但是很多時(shí)候我們自己的工作過程卻不是這樣的。

比如我寫完代碼后通常會(huì)重復(fù)以下一系列的操作:提交代碼庫--合并分支--檢查沖突--集成測(cè)試--登陸線上服務(wù)器--拉取最新的代碼--重啟服務(wù)實(shí)現(xiàn)版本更新。

這些操作都是重復(fù)而機(jī)械的,每一步操作可能都要噼里啪啦敲半天鍵盤,輸入大段大段的命令才能搞定,看起來很酷很炫,其實(shí)非常低效,畢竟我們是程序員,不是演員(黑客娛樂圈。。。。。。)

每次做完這些事情,起碼要花掉我1-5分鐘的時(shí)間,如果每天重復(fù)10次,可能最多需要花掉我接近1小時(shí)的時(shí)間在這上面,完全不值得。

而把它自動(dòng)化之后,我可能只需要敲擊幾下鍵盤就可以迅速把最新的代碼變成產(chǎn)品上線了。

自動(dòng)化的方案有很多:大到各類CI/CD工具,小到一些具體的自動(dòng)化工具,例如(Fabric、Ansible等等)都可以幫我們自動(dòng)化這些瑣碎重復(fù)的事情,不要嫌編寫自動(dòng)化腳本很麻煩,你只需要編寫一次,但是永遠(yuǎn)受益。

10年老程序員告訴你的10條編程原則

3. 最小可行性產(chǎn)品

什么是最小可行性產(chǎn)品?以下這個(gè)圖所表現(xiàn)出來的現(xiàn)象經(jīng)常出現(xiàn)在軟件開發(fā)領(lǐng)域。

客戶以為的產(chǎn)品和我們做出來的產(chǎn)品完全不同,究竟是需求不明確、研發(fā)能力有限還是什么?

其實(shí)換個(gè)角度想想,如果我們一開始就把最小可行性的產(chǎn)品以最小代價(jià)、最快速度拿出來給客戶演示也許效果更好,他會(huì)更加了解自己想要究竟該是什么樣子的產(chǎn)品。

4:有效的調(diào)試

軟件開發(fā)離不開調(diào)試,很多人都習(xí)慣用print在程序里到處輸出變量值來調(diào)試(當(dāng)然我很多時(shí)間也這樣,因?yàn)楹?jiǎn)單)。

通過輸出日志或者編輯器自帶的各種調(diào)試功能,可以更方便的我們收集錯(cuò)誤信息。

習(xí)慣用調(diào)試工具來尋找問題吧,print真不是個(gè)好選擇。

10年老程序員告訴你的10條編程原則

5:代碼優(yōu)雅與有效的平衡

作為一個(gè)有追求的程序員,我們無時(shí)無刻都在追求代碼的優(yōu)雅簡(jiǎn)潔。據(jù)我自己的經(jīng)驗(yàn),通常我們?cè)谧龀鰪?fù)雜問題思考的時(shí)候?qū)懙拇a都是測(cè)試性的代碼,它可用,但是不好看,因?yàn)橥ǔT谒伎紡?fù)雜問題時(shí)寫簡(jiǎn)潔優(yōu)雅的代碼,會(huì)加重我們的大腦負(fù)擔(dān)。

最終當(dāng)我們把問題解決完之后,之前測(cè)試性的代碼已經(jīng)作為正式代碼開始工作了,我們又舍不得或者說懶得刪掉它重新用簡(jiǎn)潔優(yōu)雅的方式來寫。

這需要我們給自己設(shè)定一個(gè)下限,哪些代碼是必須要馬上重寫的,不能欺騙自己說一個(gè)月之后再來重寫,相信我兄弟,一個(gè)月之后你早忘了這件事了。

你能說出以下兩段相同功能的代碼哪段更優(yōu)雅,哪段更適合閱讀嗎?

  1. if obj.is_anonymous: 
  2.   return obj.user.nickname 
  3. else: 
  4.   return '匿名用戶' 
  1. return obj.user.nickname if not obj.is_anonymous else '匿名用戶' 

6:良好的溝通與交流

作為程序員要記住一個(gè)準(zhǔn)則,同事和客戶不是敵人,他們只是想以自己擅長(zhǎng)的方式完成工作。

我們也是一樣,可是不同背景、經(jīng)驗(yàn)的人出發(fā)點(diǎn)可能是不同的、程序員經(jīng)常覺得產(chǎn)品、市場(chǎng)的同時(shí)都是智障,相反他們也是這么認(rèn)為程序員的,矛盾通常在工作中產(chǎn)生

學(xué)會(huì)以溫和的方式傾聽訴求,克服自己的不適感,當(dāng)我們真正理解對(duì)方的想法時(shí),我們也就知道該如何做事情了。

7:完善的技能棧

程序員除了編程語言之外,感覺還要學(xué)很多東西才能滿足工作的需要。

實(shí)際上是這樣的,如果我們的經(jīng)驗(yàn)和知識(shí)只是在程序如何編寫上,其實(shí)不配稱之為一個(gè)程序員。

網(wǎng)絡(luò)你要不要了解?操作系統(tǒng)一些基本原理呢?編譯性語言語言和動(dòng)態(tài)語言是不是都得會(huì)一點(diǎn)?數(shù)據(jù)庫要不要了解一下?

有些工具型的知識(shí)我們不需要了解,但是有些基礎(chǔ)型的知識(shí)我們必須知道。

8:學(xué)習(xí)能力與技巧

遇到一門新的技術(shù),我們最快多久能學(xué)會(huì)它并開始做出產(chǎn)品來?

學(xué)習(xí)一門新的語言,學(xué)的不是語法,那玩意大同小異,我們學(xué)習(xí)的是它的特點(diǎn)是什么、在什么時(shí)候最適合用它、它和別的語言最大的區(qū)別是什么。

在技巧方面我其實(shí)沒太多可說的,只有一句話 帶著問題去學(xué),當(dāng)我們抱著解決問題去有針對(duì)性的學(xué)習(xí)新知識(shí),效率會(huì)更高。細(xì)枝末節(jié)太多,需要優(yōu)先找到主干。

9:分享精神

我們?cè)诰W(wǎng)上遇到了問題就去搜索,嚴(yán)格來說很多程序員都是面向百度編程,面向google、stackoverflow編程。想象一下,如果沒有人分享自己的心得,把解決問題的方法貼出來,我們?nèi)ツ睦锼阉鳎荒茏约罕е鴷戳税?

有人說我怕寫出來寫得不好或者懶得寫,其實(shí)分享自己知識(shí)的過程就是一次學(xué)習(xí)提煉的過程,你可以通過這個(gè)過程來回顧整理自己的知識(shí)點(diǎn),看看是否有盲區(qū)。

10:好的產(chǎn)品定義

能解決問題的產(chǎn)品就是好產(chǎn)品,不在于它的界面多么精美、操作多么順暢、功能多么強(qiáng)大。

用戶希望做一個(gè)電商小程序,讓他的客戶通過小程序選擇商品、下單購(gòu)買,如果用戶能建立幾個(gè)微信群,他所有的客戶都在里面,然后每天發(fā)幾個(gè)表格收集、用戶微信轉(zhuǎn)賬就能完成商品的選擇和購(gòu)買行為,是不是一定要做一個(gè)程序才能解決問題?

個(gè)人好的產(chǎn)品在于解決問題,不在于程序員的自我滿足。

責(zé)任編輯:趙寧寧 來源: 今日頭條
相關(guān)推薦

2013-04-19 10:44:05

程序員禪道

2015-11-12 10:23:26

老程序員編程策略

2017-10-23 13:22:18

編程頂級(jí)程序員編碼規(guī)則

2012-07-19 14:16:51

編程經(jīng)驗(yàn)

2015-09-28 10:09:05

程序員新手

2022-03-30 15:30:38

程序員編程技術(shù)

2015-10-29 13:13:39

.NET程序員開發(fā)工具

2012-04-19 12:50:51

Java

2016-01-29 10:03:43

優(yōu)秀程序員黃金法則

2011-12-26 17:18:25

程序員

2014-11-10 09:46:57

程序員

2011-04-20 08:17:38

程序員C++Java

2015-05-20 12:58:43

程序員經(jīng)驗(yàn)教訓(xùn)

2014-10-22 10:54:14

程序員

2018-01-27 21:09:52

2018-06-28 10:40:23

WindowsLinux程序員

2015-07-15 09:53:16

程序員開發(fā)類工具

2014-10-16 11:05:25

程序員

2015-10-28 09:33:31

程序員崩潰編程語言

2022-12-25 12:43:22

架構(gòu)編程
點(diǎn)贊
收藏

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