欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
程序員世界常見(jiàn)的6個(gè)經(jīng)典問(wèn)題

程序員世界常見(jiàn)的6個(gè)經(jīng)典問(wèn)題

我作為CTO已經(jīng)有一段時(shí)間了。在這個(gè)工作崗位上,我不但制定準則,還帶領(lǐng)團隊、管理項目、設計架構、組織工作、制定代碼審查、調查不同的問(wèn)題、研究各種解決方案、結識許多技術(shù)人員和聯(lián)系客戶(hù)等等等等,做了很多事。

在完成這些任務(wù)的過(guò)程中,我不但學(xué)到了很多不同的技能,并得出了很多觀(guān)察結果,想與大家分享。

本文針對的是首席技術(shù)官和開(kāi)發(fā)人員,因為可能并不是每一個(gè)人都碰到過(guò)我下面發(fā)現、學(xué)習并得到解決的問(wèn)題。

問(wèn)題1:“我不熟悉X技術(shù)/工具”

這是每次在我要介紹新技術(shù)和語(yǔ)言的時(shí)候,最常聽(tīng)到一句話(huà)。也是在我要求某人用一種他們不認識的工具準備一個(gè)概念證明時(shí),非常耳熟的一句話(huà)。

這讓我很驚訝,為什么呢?因為我認為程序員都是高智商的!學(xué)習一些新的東西,新的理念、模式和架構對于他們來(lái)說(shuō)難道不是一件很容易的一件事嗎?難道他們不應該不斷學(xué)習新的東西,關(guān)注最新的消息嗎?

可能這只是一種假象?也許我們早就滿(mǎn)足于我們以前學(xué)會(huì )的東西,并不想轉變?也許真相是,我們已經(jīng)喪失了進(jìn)取心,不想發(fā)展了?也有可能是我們沒(méi)有時(shí)間學(xué)習新的東西?

一段時(shí)間后,我要求對方完成的任務(wù)做好了。他們做到了,他們交付了。最初的猶豫最終被克服了。又掌握了一些新的東西。那么,一開(kāi)始缺乏動(dòng)力的原因是什么呢?

我認為這是因為害怕,害怕陌生的東西,害怕失敗。做自己已經(jīng)會(huì )的東西,總讓人感覺(jué)得心應手,這是因為我們知道它,我們認為這是我們擅長(cháng)的。但問(wèn)題是,我們也可以擅長(cháng)別的東西,只要我們需要它,肯去了解它,用之前相同的完成方式去學(xué)去做。

問(wèn)題2:“一開(kāi)始就想太多”

這是我在啟動(dòng)新項目時(shí)看到的最常見(jiàn)的問(wèn)題之一。開(kāi)發(fā)人員之所以覺(jué)得加入已工作的應用程序會(huì )更舒心,是因為需要做的決策會(huì )少很多。而開(kāi)始一個(gè)新項目則不同。我們需要作出決定,并優(yōu)先考慮需求是什么以及最好能夠具備的特點(diǎn)。

最大的失敗是在實(shí)現中,例如,在一開(kāi)始的身份驗證時(shí)。這是不是應用程序最重要的特點(diǎn)?要不要關(guān)注安全?No,大錯特錯。

我們應該盡可能地縮小范圍。我們應該提供MVP來(lái)展示概念驗證。我們應該提供基本的商業(yè)規則,應用程序的核心功能,而非著(zhù)眼在性能、分頁(yè)、超安全認證和極度可擴展性上面。要簡(jiǎn)單化,至少在一開(kāi)始的時(shí)候。

如何做到這一點(diǎn)?我覺(jué)得與客戶(hù)的談話(huà)是至關(guān)重要的。這是他們投資的錢(qián),我們需要拿他們的薪水。我們不希望浪費自己的資金,客戶(hù)也是。我們應該一起討論什么重要,什么應該提交給他們的潛在客戶(hù)或投資者。我們不需要關(guān)注那些不能讓別人將我們的應用程序區分出來(lái)的事情,如登錄/注冊功能,更改電子郵件或刪除帳戶(hù)。

問(wèn)題3:“沒(méi)有選擇一個(gè)合適的工具”

我和不同的公司談過(guò)很多次關(guān)于他們的開(kāi)發(fā)堆棧。有時(shí),他們會(huì )使用Ruby做一些非?;ɡ锖诘?,并行的和分布式的事情。當我問(wèn)他們?yōu)槭裁礊檫@個(gè)要求苛刻的進(jìn)程選擇這么個(gè)相對低效的語(yǔ)言時(shí),他們的答案是——所有的開(kāi)發(fā)人員都知道Ruby是最好的。理所當然這是最快,也顯然是最廉價(jià)的方法。事實(shí)上他們并沒(méi)有關(guān)于可維護性的長(cháng)遠目標。他們專(zhuān)注于價(jià)格和便利。這導致他們背負了巨大的技術(shù)債務(wù),并且可能會(huì )成為很多黑客行為實(shí)現的既定目標。

還有一件事是,我多次看到開(kāi)發(fā)人員在他們熟悉商業(yè)規則之前就選好了技術(shù)堆棧。我看到很多動(dòng)力十足的開(kāi)發(fā)人員也一般無(wú)二。他們是如此熱衷于立馬啟動(dòng)開(kāi)發(fā)和利用所有最新的框架。他們認為無(wú)論要做什么系統,要解決什么問(wèn)題,都可以用他們已經(jīng)選好的數據庫和語(yǔ)言。

在這樣的情況下該怎么辦呢?我的高招是去招聘懂得不同技術(shù)的開(kāi)發(fā)人員。在熟悉了這個(gè)問(wèn)題并使用案例后,我們可以討論我們知道或不知道的工具的利弊。洞察現在市場(chǎng)上正在發(fā)生什么,什么框架和語(yǔ)言受歡迎,這些框架和語(yǔ)言能解決什么問(wèn)題,是一件好事。堅持一個(gè)每個(gè)人都知道的工具,而不是為每個(gè)用例制定解決方案,可能會(huì )成為開(kāi)發(fā)過(guò)程中的痛腳。

問(wèn)題4:“重新發(fā)明輪子”

這個(gè)問(wèn)題涉及到有的開(kāi)發(fā)人員不夠熟悉他加入的項目。這在我審查別人的代碼時(shí)時(shí)有發(fā)生。我經(jīng)常問(wèn):“你看到那個(gè)類(lèi)/模塊/功能了嗎?它跟你的實(shí)現完全一樣”。這常見(jiàn)于那些沒(méi)有好好瀏覽代碼的開(kāi)發(fā)人員。他們沒(méi)有看到,有些功能不拘在哪里提取,都是可重用的。

特別是當我們遵循一些共同的模式、準則或架構時(shí),尤其如此。極有可能其他的開(kāi)發(fā)人員已經(jīng)在別的地方解決了這個(gè)問(wèn)題,或者已經(jīng)提取和抽象好了我們現在需要的某個(gè)功能。

為了避免這類(lèi)問(wèn)題,我們應該用一種明智的方式實(shí)現更多的代碼審查。我們不應該檢查是否對齊括號,或添上缺少的逗號,而是應該通過(guò)一些智能自動(dòng)化的工具進(jìn)行檢查。我們應重新審視業(yè)務(wù)邏輯和行為。一段時(shí)間后,我們會(huì )想:“哦,Kamil已經(jīng)實(shí)現過(guò)了,我用一下他的模塊就可以了?!?/p>

問(wèn)題5:“學(xué)習語(yǔ)法不是編程”

我見(jiàn)過(guò)兩個(gè)組的開(kāi)發(fā)人員。

第一組是優(yōu)秀的程序員。他們知道他們所使用的編程語(yǔ)言的各個(gè)方面知識,他們知道整個(gè)標準庫,和很多很多第三方工具。他們知道如何用8種方法寫(xiě)循環(huán),如何使用模式匹配和他們可以使用的所有語(yǔ)法。問(wèn)題是,他們不知道架構和范例。他們的代碼是命令式的,他們不會(huì )提取小功能,也不會(huì )處理封裝和單獨的不同層或模塊。他們只會(huì )寫(xiě)代碼。

第二組是非常棒的工匠。他們是真正的建筑師,他們會(huì )模型化應用,各自負責提取組件,遵循格式和設計有效流。他們只是不會(huì )寫(xiě)代碼。有時(shí)他們將太多的時(shí)間花在了設計上,他們使用的是低效率的算法,廢棄的功能,過(guò)時(shí)的庫等等。也許架構是可靠的,工作流程是強大的,但是代碼本身卻既丑陋又難以閱讀。

問(wèn)題出在哪里?第一種情況可能是因為開(kāi)發(fā)人員只讀他們使用的語(yǔ)言的相關(guān)編程書(shū)籍。這就像只學(xué)習語(yǔ)法而不學(xué)其他。我們以為我們知道了語(yǔ)法之后就可以編程。其實(shí)我們只會(huì )寫(xiě)代碼。第二種情況則是因為開(kāi)發(fā)人員沒(méi)有去看維護者或創(chuàng )造者發(fā)布的工具和語(yǔ)言的新版本。這一組的程序員不閱讀更改日志,也不看新聞和簡(jiǎn)訊。

如何解決?項目中這兩種類(lèi)型的人都要有。相互學(xué)習,這樣才能既讓大家滿(mǎn)意,又獲利最大。

問(wèn)題6:“無(wú)視模式”

當你進(jìn)入一個(gè)已經(jīng)擁有堅實(shí)基礎的項目中,那么很可能它遵循某些規則和指引。因為通常情況下,開(kāi)發(fā)人員要保證每個(gè)應用程序有一個(gè)約定,以使其易于閱讀和理解。

不幸的是,很多人在剛開(kāi)始編碼時(shí),往往看不到持續開(kāi)發(fā)中內置的現有算法。他們會(huì )使用不同又沒(méi)有必要的方法來(lái)兼容現有的方法。

我們總是興致勃勃地提供新的功能,我們不想在觀(guān)察目前的趨勢和模式上面浪費我們的時(shí)間。于是我們無(wú)視了既定的規則,引進(jìn)我們自己的習慣,從而打破一致性。

這是不好的嗎?不總是。有時(shí),特別是當更多有經(jīng)驗的開(kāi)發(fā)人員加入團隊時(shí),這么做反而會(huì )化腐朽為神奇。他們會(huì )教其他人如何構建應用程序,并分享他們的知識。有時(shí),它可以為現有的架構帶來(lái)新的視圖,并改善很多已有的概念。但是事實(shí)上,上面這些情況很少發(fā)生。大多數的時(shí)候,新的開(kāi)發(fā)人員往往會(huì )給大項目引進(jìn)麻煩。

那么解決方案是什么?引進(jìn)是必要的。但是我們不應該要求盡快提供新的功能,而應該先讓人好好研究既定的規則。我們應該任命一名主管,讓他在開(kāi)始的時(shí)候指導,讓他掌握所有的概念。

總結

在編程世界中存在著(zhù)許多問(wèn)題。我們每個(gè)人都有著(zhù)不同的技能,不同的能力和動(dòng)力來(lái)源。我們應該互相溝通,共同解決問(wèn)題,權衡利弊。

學(xué)習是關(guān)鍵。自我發(fā)展應該永不止步。如果我們不這樣做,就會(huì )歸為壞程序員。我們的工作要求我們不斷地學(xué)習和了解新的東西。
可以讀書(shū),可以結對編程,可以訂閱時(shí)事通訊,也可以寫(xiě)博客。

方法很多很多,我們只需要選擇最適合我們的。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
面向方面編程新思想
資深程序員推薦七大JavaScript編程工具
少編碼多思考:代碼越多 問(wèn)題越多
Delphi 王者歸來(lái)!當你知道Delphi能做哪些時(shí),你就會(huì )明
無(wú)代碼和低代碼最大的區別是什么?
Java學(xué)習需要多久?程序員學(xué)習指南
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久