大三下有幸到了美團點評實習。在這半年的時間里,經過導師和主管的悉心教導,無論是專業(yè)技能還是開發(fā)技巧方面都有很大的提升。恰好午休時間,隨便寫寫,總結一下這半年的收獲吧。不留下篇文章總感覺有點遺憾。
一、 初到美團
  剛入職的時候,其實自己非常虛,因為懂的東西不多。投簡歷的時候,自己只是做過一些Android的Demo,然后就掌握了一點課堂上的知識吧。(計算機網(wǎng)絡,數(shù)據(jù)結構等等)面試的時候,也是面試了這些,很幸運主管讓我通過了面試。后來被告知入職之后要學習Spring來開發(fā),雖然自己以前寫過一些Servlet的小程序,但是框架、控制反轉、依賴注入和切面這些東西真的是一點都不理解。怎么看網(wǎng)上的博客也不懂,就是和JavaSE中間隔了一堵墻的感覺。
  入職之后,美團給開發(fā)配發(fā)的是15寸的mac pro,雖然當時剛使用mac不適應,但是現(xiàn)在看來,mac的確很適合開發(fā)工作。剛開始的一周主要是熟悉環(huán)境,熟悉mac的操作,熟悉美團點評的內部系統(tǒng)等等。值得一提的是,美團的內部應用很多,并且在工作中很實用。內部交流有專門的應用,類似微信,功能強大。最近還出了一個話題社區(qū),和知乎差不多??梢哉f現(xiàn)在主流的互聯(lián)網(wǎng)產品,美團點評都有相應的內部應用。有一點比較麻煩但是很重要的就是每天要發(fā)工作日報,每一周要發(fā)周報。對于記錄和思考自己的工作,還是有很大幫助的。
  熟悉了內部環(huán)境,就要開始學習一下開發(fā)相關的知識了。有兩點讓我感觸很深,一個是開發(fā)使用IDEA,第二個是Git。說一下之前我是這么寫程序的吧,用Eclipse,寫好類,在Main函數(shù)里面寫寫幾句話就完了,然后也沒有什么保存的工作。下次繼續(xù)開發(fā)就找到項目存儲的地方打開項目即可。所以在那個時候,我并不理解Git的作用,不就是遠程保存一下代碼嘛。但實際上,開發(fā)工作并不是一個人完成的,不可能大家進度都一樣,也不可能保存在一個硬盤。難道別人開發(fā)的時候,你就把項目拷給別人添加完代碼自己再弄嗎?在導師的指導下,我學習了IDEA和Git。
  IDEA是主流的Java開發(fā)IDE,用過AndroidStudio的就明白了,同一個公司的。主要是好用,能集成的東西很多,個人感覺比Eclipse好用。
  至于Git,基本上每天都會接觸到。最簡單的用處就是能夠保存代碼,創(chuàng)建了Git項目后,pull到本地,然后編寫完代碼后push上去。這樣就算你電腦進水了壞了開不了了,換了一臺電腦,你的項目還在的。第二個用處,當一個項目,已經在線上運行了,但是你要開發(fā)一個新功能,怎么辦呢?你不可能在現(xiàn)有的項目上改啊,因為改了代碼重新編譯,服務肯定會斷掉的,會影響到使用的用戶們。還有就是改錯了怎么辦呢?Git提供了一個辦法就是,新開一個dev分支,該分支上的代碼和master分支上一樣的,你可以在dev分支上隨意改。Dev就算改錯了,還能回滾到以前的版本。當確認無誤了,可以將dev的代碼合并到master分支上。當然了,大項目的合并是有權限的,master分支不能讓你隨便合并。你可以提一個合并的請求,然后在Git上能看到你修改的地方。當管理員查看的你的代碼之后,確認沒有問題,他就會讓合并通過。如果沒有沖突,這樣新的功能就添加上去了。第三個用處就是在服務器部署很方便。不需要從本地拷貝代碼到服務器,只需要從git上pull代碼下來,直接跑就可以了。當然,重新編譯啟動項目要選在使用者較少的時候。這就能理解為什么一些游戲都選在晚上更新維護了吧。主要用到的地方,暫時想到的就這么多吧。說實話,當時我看Git教程也非常迷糊根本不懂,在工作中慢慢接觸就理解明白了。

二、 接觸項目
  說起來非常幸運,實習的任務就是和導師一起負責美團點評·眾測平臺的后端開發(fā)。這個項目主要是讓用戶通過這個平臺提交試用美團點評旗下APP發(fā)現(xiàn)的BUG與建議,然后相關業(yè)務線的QA能在后臺處理相關的問題。在我實習結束之前,已經進行過四次的線下眾測活動和三次版本迭代。目前的運營方式就是讓報名參與眾測活動用戶(非對應QA)在限定的時間內去測試某一業(yè)務組提供的一個新應用包,提交自己發(fā)現(xiàn)的BUG,然后給予相應的積分獎勵。讓我感到非常驚訝的是,每次活動結束完,都能發(fā)現(xiàn)一百多個有效BUG。不敢相信一個待上線的應用能有這么多的Bug,第二個就是感嘆參與的用戶發(fā)現(xiàn)Bug能力太強了。
  為什么說幸運呢,我感覺有兩點。第一點是這個項目覆蓋面很廣,基本上美團點評線上應用很多都通過了眾測平臺來收集發(fā)現(xiàn)BUG。是個影響面廣并且很實用的項目。自己負責開發(fā)的項目這么多人用到,很有成就感。第二點就是,它不是一個很難的項目。麻雀雖小五臟俱全,現(xiàn)在想起來,對于我這種剛起步的Spring學習者來說真的最適合不過了。
  說一下項目用到的框架:Spring+SpringMVC+Mybatis,構建項目使用了Gradle,數(shù)據(jù)庫使用MySQL,服務器是jetty,部署于美團點評的線上機器。接下來就簡單說下每個框架的用處吧。
  Gradle:最簡單的說法,就是管理依賴??偛荒苊坑玫揭粋€jar包,就去網(wǎng)上下載,或者在美團點評的庫上下載,拉進項目里面吧。使用gradle

網(wǎng)友評論