作者:薛勤,網際網路從業者,程式設計愛好者。 本文首發自公眾號:程式碼藝術(ID:onblog)未經許可,不可轉載
非常高興的告訴大家,我已經入職阿里巴巴一百天了。一百天,是一個非常有紀念性的日子,也許你已經忘記你的百天照咋拍的,但是你的女盆友一定會提醒你別忘了百天紀念日給她買禮物。
加入阿里一百天了,這段時間我做了啥呢?
其實說來,加入阿里一百天我就完成了一件事,那就是自己負責的專案經過開發、測試於4月3日正式上線了,當我寫下通告全組的上線郵件時,心情還是不免有些激動的!
剛加入阿里的前三週吧,我基本上是全身心投入到學習中,這個學習不是學習什麼書本知識,而是去學習我所在小組負責的專案和業務。然後,去參加答辯,讓同事們去檢驗你的學習成果,順便考察你的學習能力和業務理解能力。
有的同學看到這裡,可能會嗤之以鼻,覺得只有研究技術才是最高大上的,曾經,我也是這樣想的。但是,真的讓你去研究開發什麼技術,你用什麼去研究、去開發呢?你真的瞭解技術背後的設計原理與業務場景嗎?
技術是為業務服務的,相信大家對這句話也有些瞭解。只有當業務遇到發展瓶頸時,技術才能體現出它的價值。
舉個例子,為什麼會有訊息中介軟體呢?讓你去做訊息中間價的研發工作,你怎麼去做?你第一步不得是去找業務溝通實際需求場景嗎?
有需求才有供應。不然,憑空想象嘛?
理解需求是研發技術的第一步,你還需要具備非常深厚的專業知識和研發經驗。不然,你造出來的輪子千瘡百孔,你覺得會有人用嗎?而且,你自己恐怕也意識不到你的輪子究竟有哪些孔洞需要去補,沒有一定的積累,造輪子除了爽之外沒有多少技術提升。
你有沒有發現,造輪子就是一種知識變現。很多人光著急著去變現了,而忘記去積累。這些人,我送他們一句話:先沸騰、再折騰。
想去造火箭是好事,說明你有上進心,但是,首先你得擰好螺絲。
當你離開校園,走進更高層次的圈子,經過不同思想火花的碰撞,你就會發現你很多堅持的、認為的,是錯的。
我之前寫過很多所謂的技術產品,比如分散式限流、Web伺服器等等,現在看來,都是玩具,用來樂呵樂呵虎虎人不錯。
回到正題,在阿里僥倖過了答辯之後,我成功接手了一個專案的開發工作。師兄指定我自己去做,不懂得再去問。
在師兄熱情的指導下,我順利理解了需求文件,然後在資料庫新建表結構,接下來就是開發。
到這一步,我已經懂了要做什麼,但是怎麼去做,兩眼一抹黑。
公司專案不同於個人專案,最大的特點就是有自己的規範,用什麼記錄日誌,用什麼專案結構,用什麼必備的框架,都得安排上。
並不是直接用你的 IDE 建立個 Spring Boot 專案就完了,要是有這麼簡單那還是阿里嗎?這裡有一個小竅門,就是我們在課堂學習時的關鍵一步,看例題。
師兄給了我一句非常不錯的建議,先搭建系統的框架,寫一些介面,編寫整體邏輯,後面再慢慢去寫細節。事實證明,這個開發手段相當高明。
我寫程式碼有個習慣,對一段自己沒有把握的程式碼,先去寫單元測試,後來才知道這種方法很火,英文名叫 TDD,中文名叫測試驅動開發,是敏捷開發中的一項核心技術。
經過兩週時間,專案初步開發完成,我自己先對系統的一些介面進行模擬測試(自測),然後去打通我的上游,與上游一起進行流程測試(聯調),主流程沒有問題後,提交測試單(提測),測試人員會與我進行交接,開個會,拉個群。到了第二天,你會發現郵件爆滿,全是測試人員提交的缺陷單。
在這段溝通中,你須得有強大的心理素質和抗壓能力,以及較高的情商和交際能力,不然,頻繁的報錯會讓你懷疑自己的能力,心理素質不強者,甚至自暴自棄,覺得自己不適合這個行業。
很榮幸,我的缺陷單突破兩位數,可以說是慘不忍睹,原因就是沒有進行充分的自測,太過於依賴測試人員,實際上,這個想法完完全全就是錯的。這也是我第一次完成專案最大的經驗積累。
就在離專案上線還有一天的時間,突然爆出來個評估錯誤,需要對某一模組進行重構。要知道,發現這個問題的存在已經耗費了很長時間。當意識到原來的設計方案已經走不通了,師兄立馬緊急研究新的方案,從開始研究到最後確定,只用了幾分鐘而已。
方案確定了,資源也正在申請,開發當然就由我來完成了。由於對新方案所涉及的技術一點不懂,但是明天一定要做完,只能晚上加班閱讀相關文件了。
我先是去官網檢視該技術的官方文件,心裡有數之後再去 Github 看它的程式碼,這裡不建議大家在 Github 網站線上檢視,還是推薦 clone 到本地,看看 demo 就差不多搞明白了。第二天,如期完成開發和測試。
專案上線後,我心中依舊還是留有許多遺憾,比如一些功能由於後面的需求越來越多導致日誌記錄雜亂。
沒工作前我特別討厭說程式設計師就是隻會拷貝和貼上,沒想到自己也這麼幹了,其實我覺得拷貝沒有關係,有關係的是對拷貝的程式碼壓根心裡沒數,當你對這段程式碼進行修修補補時就很容易出問題。也許你已經懂了這段程式碼的含義,但是拷貝的方案就是最好的方案嗎?這次我比較遺憾的就是沒有去重構我拷貝的這段程式碼。
一百天的分享就告一段落,如果覺得文章不錯,可以訂閱我的個人公眾號“程式碼藝術”(ID:onblog),你會收到我所創作的最新推送!