面試指南之如何介紹做過的項目

面試是每個程序員都逃不過的一環。在我面試過的程序員中,有一半的程序員都描述不好自己做過的項目,有些都講不到3分鐘就結束了,聽完我都不知道這個項目是做什麼的,所以,決定寫下這遍手記,希望對正在找工作的你有所幫助。

在面試過程中,程序員都需要介紹自己做過的項目,有的是在工作中做過的,有的是業餘時間完成的,有的是團隊合作完成的,有的是個人獨立完成的。豐富的開場是贏下面試的基礎。我總結了如下幾個方面的項目介紹流程,供大家參考:

項目描述

這一部分可以先總後分,總體介紹下描述下這個項目是做什麼的,是否已上線,用戶量有多大,然後介紹這個項目分爲了哪些模塊,如果是微服務,那可以介紹下有哪些應用。這一部分可以讓面試官對你做的項目有個大體的瞭解,有些公司對行業有要求,比如支付公司、銀行一般都要求有支付行業的項目經驗。

團隊組成

可以這樣說:這個項目,加上我,總共多少人,其中幾個是開發,幾個是測試。也可以說幾個前端,幾個後端。
這一部分可以讓面試官瞭解你這個項目的規模,參與規模大的項目肯定比規模小的項目有優勢。

角色擔當

可以這樣說:我在團隊裏擔當核心(前端、後端)開發,負責核心模塊(核心功能)的開發,比如權限管理模塊、登錄註冊功能、文件上傳等。

技術架構

接着,可以介紹項目中用到的技術,前端用了xx框架,後端用了xx框架,持久層用了xx框架,數據庫用的xxx。中間件用到了redis等,除了框架,還可以介紹一些工程化技術,比如jar包依賴使用maven,代碼管理使用git等

場景解決方案

當你介紹完上面的技術架構後,面試官可以會問你:

redis在什麼場景中用到?爲什麼要用redis?
爲什麼用git,不用svn?

所以我們需要提前準備好一些場景,描述一下用什麼技術解決什麼業務需求
每個項目的場景都不太一樣,需要結合各自的項目做準備。
比如電商項目,可能有添加購物車,支付,搶購秒殺等場景。
比如後臺管理系統,可能有單點登錄、報表導出等場景。

以上就是項目介紹的通用框架,在簡歷中,我們也可以用上面介紹的這個框架來寫【項目介紹】。


很多同學在學習了《Spring Cloud + Vue 前後端分離
開發企業級在線視頻課程系統》
這門課後,都想將這個項目寫到簡歷中,帶到面試裏,但是不知道該如何介紹。下面我們就以這個項目爲例,看看如何介紹這個項目。

項目描述

這是一個類似慕課網的在線視頻課程項目,也可以作爲網校平臺,項目分爲三大塊,前端網站+管理控臺+服務端。
【管理控臺】:供內部運營人員使用,用於管理課程、章節、講師等核心精選信息,也包含了用戶資源權限等系統管理。
【前端網站】:供網站會員使用,可以報名課程之後開始學習課程。
【服務端】:爲管理控臺和前端網站提供各種接口,具體分爲了註冊中心、網關路由、系統模塊、業務模塊、文件模塊、公共模塊,共6個模塊。

技術架構

圖片描述
整個項目採用目前最熱門的前後端分離架構
管理控臺和前端網站使用前端框架Vue CLI
UI使用響應式UI Bootstrap,一套頁面兼容PC、PAD、移動端
服務端使用微服務框架Spring Cloud
持久層使用Mybatis框架
數據庫使用Mysql
中間件使用了Redis
Jar包管理使用Maven
代碼管理使用Git。
(以上這些技術都是目前企業級項目開發中常用的,需要熟練掌握)
同時項目中還用到了阿里雲的服務,比如OSS服務,用來存儲圖片視頻;視頻點播服務,用來對視頻做加密轉碼並授權播放,保證視頻安全。

場景解決方案

代碼生成器:自己製作了代碼生成器,集成到項目中,使用freemarker模板引擎(課程中有介紹怎麼製作代碼生成器),用於生成service層、controller層,dto層和vue界面代碼,配合上mybatis-generator生成持久層代碼,極大的提高了開發效率。在一張表設計完成後,只要1分鐘,就可完成單表的增刪改查管理功能(包含界面)。
單點登錄:使用統一登錄標識token+分佈式緩存redis的方案,實現單點登錄。
短信驗證碼註冊:包括了短信驗證碼生成和驗證碼校驗,並對驗證碼的時效性做了控制,比如5分鐘有效;同一手機號1分鐘內只能發送一次驗證碼;驗證碼只能使用一次等。
圖片驗證碼登錄:使用redis存儲驗證碼,圖片驗碼登錄,可以有效防止撞庫攻擊、暴力破解,保障用戶信息安全。
權限管理:使用經典的用戶+資源+角色的權限設計方案,適用於絕大多數項目的權限管理,純手工打造,未使用任何現成的權限框架,代碼沒有盲區,安全,易擴展。
文件上傳:實現基本的Vue+SpringBoot文件上傳功能
分片上傳:當文件較大時,文件上傳受網絡影響較大,容易失敗。在上面基本的文件上傳的基礎上,擴展成分片上傳,提高大文件的上傳成功率。
斷點續傳:在分片上傳的基礎上,再擴展出斷點續傳,當傳到某一個分片失敗了之後,下次再上傳同一文件時,從餘下的分片開始上傳。
極速秒傳:對於同一個文件,上傳過一次後,再次上傳時,會直接提示極速秒傳成功,提高用戶體驗。
文件存儲:項目中實現了兩種文件存儲方法,一是自己搭建文件服務器,二是使用阿里雲OSS服務。(實際項目中推薦使用第二種,大大減少了運維工作)
視頻加密:作爲視頻網站,視頻安全是核心功能,這裏用到了阿里雲的視頻點播服務(慕課網也是用的阿里雲的視頻點播服務)。使用接口直接和阿里雲對接,實現控臺統一管理
授權播放:視頻經過加密後,需要授權,才能播放,這裏我們使用阿里雲aliplayer+阿里雲授權接口,實現授權播放。

上面我舉例了很多場景,實際在面試的時候,不一定要全部介紹,可以挑幾個比較熟悉的着重介紹,其它的可以簡單帶過。

團隊組成和角色擔當

如果是一個人跟着課程一步一步做下來的,可以介紹整個項目從框架搭建到前後端代碼開發,都是一個人完成的。


另外,還要自己準備一些常見的面試題,比如:

項目開發過程中遇到過什麼問題?
這個需要平時積累了,將開發過程中,遇到過的比較難解決的點記錄下來,可以這樣回答:……這個問題解決後,很有成就感,成就感很重要,聽起來有專研精神,不過只適合初中級程序員,高級程序員說成就感就有點掉價。

對我們公司有什麼問題
這個需要提交了解要面試的公司的相關情況,至少讓面試的人覺得你對他們公司還是有興趣的,有提前瞭解。

最後祝所有的程序員都能面試順利!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章