開發(fā)工具的使用工具或被工具使用
背景一
今天線上突然遇見一個(gè)BUG,測(cè)試反應(yīng)在之前的版本并沒有出現(xiàn)過,這一塊覆蓋測(cè)試在當(dāng)前版本之前沒有發(fā)現(xiàn)問題,然后根據(jù)需求,當(dāng)前版本不應(yīng)該修改這個(gè)出現(xiàn)BUG的文件,然后我就接過來處理這個(gè)bug,由于業(yè)務(wù)比較復(fù)雜,理解起來有點(diǎn)困難,改了三次沒有通過測(cè)試后,我就有點(diǎn)心浮氣躁,開始責(zé)怪當(dāng)初寫這部分代碼的同事(該同事已經(jīng)離開當(dāng)前團(tuán)隊(duì)),代碼中確實(shí)有很多問題,沒有注釋,SQL格式很亂,而且大小寫混雜,簡(jiǎn)直就是一個(gè)泥潭很快就要把我陷進(jìn)去了,然后測(cè)試同事提起之前版本測(cè)試沒有問題的事情,然后另外同事開始上一個(gè)版本的測(cè)試,發(fā)現(xiàn)確實(shí)沒有問題,然后開始追查git提交記錄,發(fā)現(xiàn)最后一個(gè)版本是我提交的,然后對(duì)比之后發(fā)現(xiàn),我提交的版本中我把兩個(gè)方法中的重復(fù)代碼進(jìn)行重構(gòu)之后抽離一個(gè)新的公共方法,看起來沒有問題,idea的代碼重復(fù)檢測(cè)確實(shí)提示有重復(fù),但是實(shí)際上兩個(gè)重復(fù)的代碼中有一個(gè)方法的調(diào)用不一樣,就比如一個(gè)使用的新增,一個(gè)是刪除,然而idea重構(gòu)代碼之后只保留一個(gè)更新的代碼,新增方法直接就被拋棄了,而我也沒有進(jìn)行測(cè)試,所以直接導(dǎo)致了這次線上事故.
背景二
最近因?yàn)榘鏅?quán)問題,公司開始審查禁用Navicat數(shù)據(jù)庫(kù)操作軟件,之前一兩年我一直使用這個(gè)工具,這次禁用之后,一時(shí)間找不到好的替代品,一天之內(nèi)我換了三個(gè)軟件,直到現(xiàn)在用的mysql-workbranch,之所以換這些,要么有的用的不順手,有的不帶代碼提示,寫起SQL來總是不順手,感覺少點(diǎn)什么,似乎沒有Navicat就不會(huì)寫了.
思考
這件兩件事情發(fā)生之后,讓我重新審視這個(gè)重構(gòu)快捷鍵和Navicat,甚至是整個(gè)開發(fā)工具體系,為了能快速高效的寫代碼,開始使用的這些智能工具,最后盡然成了問題的起因,想想現(xiàn)在社會(huì)確實(shí)約來越多的智能產(chǎn)品,充斥我們的身邊,然而他們給我們帶來的不僅是方便,更多的是一種習(xí)慣性的約束,前段時(shí)間我還嘲諷現(xiàn)在的人工智能幾乎都是人工智障,現(xiàn)在居然被智障給耍了,這不得不說是一種諷刺,實(shí)際上智能工具帶給我們的應(yīng)該是更快捷的操作,同時(shí)人的思考力決定了這個(gè)人的價(jià)值,不應(yīng)該讓工具來帶代替我們思考,一旦思考都被替代,人也就失去了價(jià)值.
總結(jié)
我們常說開發(fā)中的編碼能力,這個(gè)說的是你對(duì)編程語(yǔ)言的掌握程度,對(duì)開發(fā)認(rèn)知的掌握程度,而不是你對(duì)工具的掌握程度,你去面試的時(shí)候面試官也不會(huì)問你,你對(duì)什么開發(fā)工具使用精通,而在開發(fā)中卻連hello world都不會(huì)寫,程序員界不需要這樣的程序員.