<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          程序員時(shí)常犯的 4 個(gè)錯(cuò)誤,有多可怕?

          共 2920字,需瀏覽 6分鐘

           ·

          2021-04-13 16:21


          隨著網(wǎng)絡(luò)科技的創(chuàng)新,IT行業(yè)迎來了長足的發(fā)展,程序員群體也在不斷擴(kuò)大當(dāng)中。盡管程序員能夠解決開發(fā)或測試或運(yùn)維等各自方向的大部分問題,但程序員畢竟不是萬能的,也會出現(xiàn)常見的錯(cuò)誤。



          01


          用戶都是傻瓜


          我錯(cuò)了,他們才不是傻瓜咧。
          沒錯(cuò),用戶使用應(yīng)用的方式往往出人意料,而且很詭異。
          沒錯(cuò),用戶經(jīng)常會問一些很傻的問題。
          沒錯(cuò),有時(shí)用戶提出的要求看似毫無意義。
          沒錯(cuò),用戶連一些非常淺顯的功能也搞不明白。
          畢竟,用戶不是IT專家。醫(yī)生從來都不會指望病人能夠明白低密度脂蛋白和高密度脂蛋白之間的區(qū)別。那么,我們又憑什么要求用戶了解他們應(yīng)該使用哪種瀏覽器呢?雖然對你和我來說這個(gè)問題太顯而易見了,但是在我媽看來,Google就等同于互聯(lián)網(wǎng),她說她沒有使用任何瀏覽器,因?yàn)樗褂玫氖荊oogle。
          有時(shí),為了讓用戶滿意,我不得不重寫部分框架,為的只是修改其默認(rèn)行為。有時(shí),我不得不支持一些本來不打算支持的瀏覽器(比如Safari)。雖然如今看來這種想法很愚蠢,但當(dāng)時(shí)的我真的覺得這都是客戶的錯(cuò),因?yàn)樗麄兊囊螅也坏貌幌氡M辦法在我的代碼中做一些折中和變通。

           

          02


          代碼就是藝術(shù),

          必須力求完美



          整潔的代碼,嚴(yán)密的單元測試,完善的文檔,毋庸置疑這些都非常重要。作為一名程序員,我總是要求自己使用現(xiàn)代模式編寫整潔的代碼,而且我會頻繁地檢查所有的依賴項(xiàng)都是最新的。因?yàn)槲蚁氤蔀橐幻麅?yōu)秀的程序員。
          每當(dāng)我的產(chǎn)品經(jīng)理要求我放下手頭的單元測試,提高開發(fā)新功能的速度時(shí),我就會火冒三丈,為什么他意識不到單元測試有多么重要呢?當(dāng)時(shí),我們并沒有其他自動測試,所以單元測試是保障產(chǎn)品穩(wěn)定且沒有回歸問題的唯一希望。
          在我看來,產(chǎn)品經(jīng)理提這種要求就是因?yàn)樗哪抗舛虦\。更有甚者,他還暗示我停止編寫文檔,將代碼轉(zhuǎn)換成復(fù)雜度更低的架構(gòu)(當(dāng)時(shí)項(xiàng)目剛剛開始)。
          我承認(rèn),壓縮這些工作可以加快開發(fā)速度,但是將來我們肯定會遇到很多問題。我們不得不花費(fèi)大量時(shí)間來修復(fù)回歸錯(cuò)誤,而且隨著項(xiàng)目的發(fā)展,新的架構(gòu)也會變得過于簡單!此外,如果沒有完善的文檔,新加入的程序員又如何能快速融入項(xiàng)目呢?
          就為了這個(gè)問題,我們花費(fèi)了好幾個(gè)小時(shí)反復(fù)討論,并分析了將來會給我們帶來多少損失。 
          然而,幾個(gè)月后,那個(gè)項(xiàng)目以失敗告終,因?yàn)轭A(yù)算大大超支。
          多年后,我不得不承認(rèn),我們的團(tuán)隊(duì)犯了一個(gè)巨大的錯(cuò)誤。我們光顧著考慮將來,卻忘記了眼前。我們完全忽略了當(dāng)時(shí)的情況:我們只有很少的預(yù)算,而且需要在短時(shí)間內(nèi)迅速建立最小可行產(chǎn)品。
          編寫可以向他人展示且令人自豪的代碼固然很好,但是能夠順利地完成項(xiàng)目不是更好嗎?畢竟,編程不是藝術(shù)。

           

          03


          只選擇自己熟知的技術(shù)棧



          在以前的公司工作時(shí),每次創(chuàng)建新項(xiàng)目,我們都使用相同的技術(shù)棧:Symfony和Angular。Symfony是最好的后端框架嗎?并不是。Angular是創(chuàng)建現(xiàn)代前端的唯一途徑嗎?并不是。我們總是選擇這套技術(shù),因?yàn)槲覀儾涣私馄渌夹g(shù)。我們一直在自己的舒適圈內(nèi)徘徊。但是在新項(xiàng)目中選擇眾所周知的技術(shù)有錯(cuò)嗎?這要視情況而定。
          在許多情況下,下一個(gè)項(xiàng)目與先前的項(xiàng)目多少會有一些相似之處。由于你已有可靠的解決方案,因此花大量時(shí)間學(xué)習(xí)新技術(shù)沒有任何意義。但是有時(shí)候,這種決定可能并不正確。
          我記得有一個(gè)項(xiàng)目,最重要的需求便是一個(gè)運(yùn)行良好的WebSocket。我們選擇了哪種技術(shù)來創(chuàng)建后端呢?當(dāng)然是Symfony。也許現(xiàn)如今使用PHP創(chuàng)建WebSocket很容易,但在當(dāng)時(shí)那就是一場噩夢。我們花費(fèi)了巨大的精力才讓系統(tǒng)跑起來。當(dāng)時(shí)我們知道使用PHP創(chuàng)建WebSocket會花費(fèi)很多時(shí)間(和金錢),但是我們?nèi)匀簧釛壛耸褂肗ode的想法。為什么?我自己都不知道。我們可以利用Node構(gòu)建速度高達(dá)10倍的API,但只是因?yàn)槲覀儓F(tuán)隊(duì)的技術(shù)棧里沒有Node。
          我很高興現(xiàn)如今我們的團(tuán)隊(duì)成員都非常開明。上周,我們決定使用一個(gè)完全不同的技術(shù)來構(gòu)建我們的一部分系統(tǒng)。我相信這個(gè)決定可以為我們節(jié)省很多時(shí)間,盡管我們需要從頭開始學(xué)新技術(shù)。


          04


          產(chǎn)品經(jīng)理太糟糕

          還不如我來


           
          當(dāng)我還是一名程序員的時(shí)候,說實(shí)話我和產(chǎn)品經(jīng)理的關(guān)系……不太融洽。每當(dāng)他告訴我計(jì)劃的范圍有變時(shí),我都會很生氣:
          “為什么你不能做好本職工作,事前定義好范圍呢?事先決定好功能需求有這么難嗎?” 
          當(dāng)時(shí)的我簡直太天真了,我把事情想象的太簡單了。如今,我終于知道計(jì)劃好項(xiàng)目的每一個(gè)細(xì)節(jié)簡直難以上青天。首先,你必須考慮到技術(shù)和預(yù)算的限制;其次,你必須設(shè)身處地的為產(chǎn)品的用戶考慮,不能忘記業(yè)務(wù)與市場的需求。你無法在項(xiàng)目伊始就掌握所有的需求;有時(shí),業(yè)務(wù)環(huán)境會發(fā)生變化;有時(shí),你必須先構(gòu)建一部分產(chǎn)品,然后再逐步改良。
          另外,產(chǎn)品經(jīng)理也可能會犯錯(cuò)誤。程序員會編寫出bug,產(chǎn)品經(jīng)理也會犯錯(cuò)。如今想來,這都是再明顯不過的事情了。如果當(dāng)時(shí)我能夠意識到這一點(diǎn),那么就可能就會成為一名更好的程序員。我不應(yīng)該鉆牛角尖,就為了證明產(chǎn)品經(jīng)理錯(cuò)了,而是應(yīng)該集中精力尋找解決方案。 
          有時(shí),我甚至忘記了自己和產(chǎn)品經(jīng)理有著相同的目標(biāo),即打造出色的產(chǎn)品,現(xiàn)在想來不禁覺得汗顏。產(chǎn)品經(jīng)理掌握的有關(guān)預(yù)算、業(yè)務(wù)狀況、客戶需求、截止期限和優(yōu)先級方面的信息比我多,這也就是為什么我不理解他們?yōu)楹巫龀瞿承Q定的原因。

           

          05


          總結(jié)


          可能對于某些人來說,以上四點(diǎn)都是顯而易見的事兒。如果你所在的團(tuán)隊(duì)非常強(qiáng)大,組織良好,擁有一名出色的領(lǐng)導(dǎo),而且你始終記得UX的基本規(guī)則,那么我由衷地為你感到高興。我相信你會成為比我更出色的一名程序員。因?yàn)椤耙幻麅?yōu)秀的程序員”不僅僅是掌握技術(shù)相關(guān)的知識。
          了解你能夠?yàn)楣編砟男﹥r(jià)值,以及如何才能實(shí)現(xiàn)這些價(jià)值,尤為重要?,F(xiàn)在我對高級開發(fā)人員的理解如下:
          高級開發(fā)人員不僅是掌握了各個(gè)方面的技術(shù)的人才。如果有需要,他們會跨出自己的舒適區(qū),幫助公司打造出色的產(chǎn)品。另外,他們是注重解決方案超過問題本身的人。

          對于想學(xué)互聯(lián)網(wǎng)技術(shù)卻又不敢貿(mào)然行動的同學(xué),點(diǎn)擊下方閱讀原文即可報(bào)名達(dá)內(nèi)免費(fèi)試聽課,這是你免費(fèi)了解、學(xué)習(xí)的技術(shù)最佳途徑,體驗(yàn)名師面對面教導(dǎo),多年實(shí)戰(zhàn)經(jīng)驗(yàn)傾囊相授,少走彎路,零基礎(chǔ)快速入門到精通!

          學(xué)互聯(lián)網(wǎng)技術(shù)不能猶豫,否則你就和高薪擦肩而過了。不論你是0基礎(chǔ)還是轉(zhuǎn)行,都有大牛老師手把手教你學(xué)習(xí)最新熱門技術(shù),找一份自己滿意的高薪工作。


          課程咨詢后臺回復(fù):客服,真人在線答疑方便又快捷。達(dá)妹微信:tedu521,獲取學(xué)習(xí)資源。

          原文:https://betterprogramming.pub/4-mistakes-i-made-as-a-programmer-but-i-had-to-become-a-cto-to-see-them-19a41ba70411

          本文由CSDN翻譯。


          IT方向技術(shù)內(nèi)容免費(fèi)學(xué)

          Java/Java架構(gòu)師/Java大數(shù)據(jù)

          掃碼即可免費(fèi)預(yù)約

          ↓↓↓


          點(diǎn)擊下方“閱讀原文”搶免費(fèi)試聽名額吧!

          瀏覽 43
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美日韩成人电影 | 欧美色图色就是色 | 日本无码性爱 | 国产丨熟女丨国产熟女视频 | 日韩AV中文字幕在线播放 |