成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

必須知道的程序員思維

Joyven / 2003人閱讀

摘要:以及之前說(shuō)過(guò)的,當(dāng)程序員就是為了提高社會(huì)效率。寫(xiě)高效的代碼是每個(gè)程序員的追求,寫(xiě)易懂的代碼是每個(gè)程序員的美德。讓正確的程序更快,要比讓快速的程序正確容易得多。我覺(jué)得這樣才能當(dāng)一個(gè)有格局的程序員。

在博客閱讀:https://ssshooter.com/2019-04...

工作

寫(xiě)程序不是為了炫耀自己的技術(shù),是要給公司創(chuàng)造價(jià)值,要確實(shí)幫助使用這個(gè)程序的人。以及之前說(shuō)過(guò)的,當(dāng)程序員就是為了提高社會(huì)效率。

寫(xiě)高效的代碼是每個(gè)程序員的追求,寫(xiě)易懂的代碼是每個(gè)程序員的美德。

易懂的代碼首先是有規(guī)范的,從目錄結(jié)構(gòu)到代碼風(fēng)格,在項(xiàng)目建立初就應(yīng)該確定,可以寫(xiě)進(jìn)項(xiàng)目文檔中,文檔用于給初見(jiàn)項(xiàng)目或是接手的程序員一個(gè)概覽,介紹一下整體結(jié)構(gòu),技術(shù)棧,以及一些坑。

技術(shù)選型注意不要選擇沒(méi)人用的(找不到幫助)、無(wú)人維護(hù)的(發(fā)現(xiàn) bug 會(huì)讓你很痛苦)、很難用的(你自己懂也有可能要方便被人懂,選擇框架尤其注意,這也是 Vue 熱門(mén)的原因吧)。

控制代碼風(fēng)格可以使用 eslint 和 prettier。前者用于代碼規(guī)范控制,后者用于格式化代碼。統(tǒng)一的格式化工具配置也是十分必要的,尤其在協(xié)作的時(shí)候,如果兩邊的格式化格式不同的話,diff 也是地獄般的體驗(yàn)。

編碼不規(guī)范,維護(hù)兩行淚

在有規(guī)范之后,還要注意不要為了追求極簡(jiǎn)寫(xiě)些難懂的代碼,你必須控制簡(jiǎn)潔和可讀性間的平衡,例如

i = i ? (i < 0 ? Math.max(0, len + i) : i) : 0

而有時(shí)候,hack 是無(wú)可奈何的事情,這個(gè)時(shí)候必須做好注釋。但是需要注意,注釋描述的不是做什么(what),而是為什么(why)。

一段可讀性過(guò)關(guān)的代碼中完全能看出它在干嘛,看不出來(lái)做什么的代碼很大幾率是不及格的代碼了。

可讀性主要由命名入手,變量名稱對(duì)整段程序理解的重要性不言而喻;另外,對(duì)于一些功能不太好看出來(lái)的幾個(gè)語(yǔ)句的集合,即使不會(huì)復(fù)用,也可以將其包裝成函數(shù),通過(guò)函數(shù)命名告訴讀程序的人(而不是電腦)這一段代碼的作用。

/* 還有一個(gè)例子是把對(duì)象綁到 vue 的 this,然后不 import 直接用
   對(duì)于這個(gè)做法...看你喜歡吧
   毫無(wú)疑問(wèn)對(duì)于模塊化的項(xiàng)目,一個(gè)模塊就不應(yīng)該掛在其他地方
   (雖然這么掛上去可能會(huì)省掉 webpack 的模塊調(diào)用,讓你的程序快一丁丁丁丁丁丁丁點(diǎn))
   如果你真的懶到不寫(xiě) import
   請(qǐng)一定要在綁定的變量加上 $
   至少你這個(gè)時(shí)候全局搜索還是很容易找到來(lái)源的
*/
Vue.prototype.$axios = Axios

有了規(guī)范的編碼,仍不足以讓整個(gè)代碼庫(kù)足夠簡(jiǎn)單,控制代碼復(fù)雜度是下一個(gè)目標(biāo)。

一定要理解你的所做系統(tǒng)的需求,否則只會(huì)在誤解和錯(cuò)誤的惡性循環(huán)中越陷愈深,浪費(fèi)珍貴的時(shí)間。

我最近就接手重構(gòu)一個(gè)前后端耦合的項(xiàng)目,業(yè)務(wù)邏輯很是復(fù)雜,理解需求這一步絕不能逃避,只能一個(gè)個(gè)細(xì)節(jié)問(wèn)清楚。

不要看到大佬提什么需求都一股腦加進(jìn)去,即使所提的需求很簡(jiǎn)單,但你需要有足夠的時(shí)間評(píng)估這個(gè)功能。

新增需求和需求修改上也是一個(gè)道理,不能破壞以前的功能,保證整個(gè)系統(tǒng)的純潔。

所以優(yōu)雅地添加功能真的很耗時(shí)間。

至于真的不可行的需求,請(qǐng)勇敢說(shuō)不。如果對(duì)結(jié)構(gòu)影響很大的需求最好不要改了。不過(guò)這是理想,中國(guó)程序員好像沒(méi)有什么地位

在工時(shí)預(yù)估方面,可以嘗試拆分任務(wù),并且要假設(shè)一切都會(huì)更花時(shí)間

拆分任務(wù)不僅可以讓你更準(zhǔn)確地估計(jì)實(shí)現(xiàn)時(shí)間,還能讓你的工作更有條理。

至于優(yōu)先度,還請(qǐng)結(jié)合上司指令和實(shí)現(xiàn)難度自己衡量吧。

總之,一個(gè)完美的系統(tǒng)不是一步就能造好的。

對(duì)于未來(lái)的功能,你可以留個(gè)后路,但不要提早瞎做“自以為需要”的功能。不然到時(shí)候?qū)懥艘欢褯](méi)用的代碼都是浪費(fèi)時(shí)間,還可能讓提高程序復(fù)雜度。

優(yōu)化方面,參考著名的“不要過(guò)早優(yōu)化”。讓正確的程序更快,要比讓快速的程序正確容易得多。開(kāi)發(fā)和優(yōu)化當(dāng)作兩個(gè)獨(dú)立的步驟來(lái)做。

Premature optimization is the root of all evil.

維護(hù)是軟件開(kāi)發(fā)重要而困難的一環(huán)。不過(guò)如果你按著上面所說(shuō)的做,我相信...維護(hù)不會(huì)是難事。

但是如果你的代碼寫(xiě)得很惡心,你會(huì)為之付出代價(jià)。

答應(yīng)我:寧愿在實(shí)現(xiàn)功能時(shí)很痛苦,也不要在維護(hù)的時(shí)候更痛苦。

日常

重復(fù)的輪子

偉大的開(kāi)源模式讓整個(gè)編程界發(fā)展加速。

可以站在巨人肩膀上,就別重復(fù)造輪子。

除非你真的很閑(工作不飽和哦~),或者你找到的輪子實(shí)在不合心意(如老舊、不優(yōu)雅、功能太繁雜)

重復(fù)的工作

「重復(fù)」是程序員最大的敵人!

計(jì)算機(jī)就是負(fù)責(zé)給你做重復(fù)的事情,程序員為什么還要做哦?教計(jì)算機(jī)做就好了!

你可以依賴 node.js 寫(xiě)處理程序處理你的文檔,在編輯代碼的時(shí)候可以活用快捷鍵修改代碼。

自我開(kāi)發(fā)

程序員拒絕 996,但是在家不意味著閑著,你仍需要為自己的腦子投資。

這一行變化還挺快,雖然我也真的完全不會(huì)看未來(lái)走向,不懂什么語(yǔ)言和技術(shù)會(huì)在以后更有價(jià)值,但是盡量不要局限與學(xué)習(xí)單個(gè)語(yǔ)言,也不要因?yàn)槭乔岸司屯耆粚W(xué)后端。

我覺(jué)得這樣才能當(dāng)一個(gè)有格局的程序員。

解決問(wèn)題

If you can"t explain something in simple terms, you don’t understand it.?—?Richard Feynman

如果你不能流利解釋一個(gè)問(wèn)題,那說(shuō)明你還是沒(méi)懂,也就是還沒(méi)真正解決這個(gè)問(wèn)題。若是沒(méi)真正解決問(wèn)題,便不能舉一反三解決更多類似問(wèn)題。

解決問(wèn)題要明白問(wèn)題如何產(chǎn)生,先思考,后行動(dòng)。行動(dòng)無(wú)解可以到谷歌搬救兵,搜索不到的話……

最終方案就是到對(duì)應(yīng)社區(qū)提問(wèn),但是提問(wèn)同樣是一個(gè)學(xué)問(wèn),請(qǐng)看 How To Ask Questions The Smart Way。

生產(chǎn)力

不是代碼越多生產(chǎn)力越高,程序員應(yīng)該都懂,至于老板怎么看,就不得而知了

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/103526.html

相關(guān)文章

  • 直擊架構(gòu)本質(zhì):優(yōu)秀架構(gòu)師必須掌握幾種架構(gòu)思維

    摘要:由于文章內(nèi)容較長(zhǎng),所以我把它分成兩篇小文章,在第一篇優(yōu)秀架構(gòu)師必須掌握的架構(gòu)思維中,我會(huì)先介紹抽象分層分治和演化這四種應(yīng)對(duì)復(fù)雜性的基本思維。另外,上面的算法是兩路歸并,也可以采用多路歸并,甚至是采用堆排序進(jìn)行優(yōu)化,但是總體分治思路沒(méi)有變化。 showImg(https://segmentfault.com/img/bVbeYpP?w=642&h=400); 介紹 架構(gòu)的本質(zhì)是管理復(fù)雜性...

    lijy91 評(píng)論0 收藏0
  • 直擊架構(gòu)本質(zhì):優(yōu)秀架構(gòu)師必須掌握幾種架構(gòu)思維

    摘要:由于文章內(nèi)容較長(zhǎng),所以我把它分成兩篇小文章,在第一篇優(yōu)秀架構(gòu)師必須掌握的架構(gòu)思維中,我會(huì)先介紹抽象分層分治和演化這四種應(yīng)對(duì)復(fù)雜性的基本思維。另外,上面的算法是兩路歸并,也可以采用多路歸并,甚至是采用堆排序進(jìn)行優(yōu)化,但是總體分治思路沒(méi)有變化。 showImg(https://segmentfault.com/img/bVbeYpP?w=642&h=400); 介紹 架構(gòu)的本質(zhì)是管理復(fù)雜性...

    fjcgreat 評(píng)論0 收藏0
  • 知其所以然之永不遺忘算法

    摘要:也就是說(shuō)我們只是知其然,并沒(méi)有知其所以然。相反,那些牛人就不會(huì)忘記自己設(shè)計(jì)的算法。劉未鵬在知其所以然三為什么算法這么難中探索了編碼的思維歷程,值得一看。之后,將當(dāng)前入棧,更新棧內(nèi)的遞增序列。 原文地址 相信大部分同學(xué)曾經(jīng)都學(xué)習(xí)過(guò)快速排序、Huffman、KMP、Dijkstra等經(jīng)典算法,初次學(xué)習(xí)時(shí)我們驚嘆于算法的巧妙,同時(shí)被設(shè)計(jì)者的智慧所折服。于是,我們仔細(xì)研讀算法的每一步,甚至去證...

    B0B0 評(píng)論0 收藏0
  • 想讓你博文獲得更多推薦嗎?快來(lái)了解下思維導(dǎo)圖吧

    摘要:下面就是我的另一篇文章你真的了解和嗎中的思維導(dǎo)圖。但是托尼布贊并沒(méi)有沉淪,而是尋找解決方法,最終發(fā)明了思維導(dǎo)圖。本節(jié)的思維導(dǎo)圖就是典型的折中型思維導(dǎo)圖。安排合適的間隔合適的間隔能夠很大程度提高思維導(dǎo)圖的審美性。 天下事有難易乎?為之,則難者亦易矣;不為,則易者亦難矣?!稙閷W(xué)》 引言 我猜發(fā)布文章的同學(xué)肯定都有一個(gè)目標(biāo),那就是獲得更多的推薦。推薦越多,表示得到別人的認(rèn)同越多,自我滿...

    cc17 評(píng)論0 收藏0
  • 想讓你博文獲得更多推薦嗎?快來(lái)了解下思維導(dǎo)圖吧

    摘要:下面就是我的另一篇文章你真的了解和嗎中的思維導(dǎo)圖。但是托尼布贊并沒(méi)有沉淪,而是尋找解決方法,最終發(fā)明了思維導(dǎo)圖。本節(jié)的思維導(dǎo)圖就是典型的折中型思維導(dǎo)圖。安排合適的間隔合適的間隔能夠很大程度提高思維導(dǎo)圖的審美性。 天下事有難易乎?為之,則難者亦易矣;不為,則易者亦難矣?!稙閷W(xué)》 引言 我猜發(fā)布文章的同學(xué)肯定都有一個(gè)目標(biāo),那就是獲得更多的推薦。推薦越多,表示得到別人的認(rèn)同越多,自我滿...

    zorpan 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<