寫在十分簡歷發佈前夕

關於十分簡歷

十分簡歷是咱們的第一個做品,這是一個微信小程序,用於生成漂亮的簡歷模板。前端

同時,考慮到用戶的隱私問題,增長了私密簡歷功能。面試

那麼,到底什麼是私密簡歷呢?數據庫

在傳統的簡歷投遞中,一般HR會將咱們的簡歷打印下來,面試完成後,會留下面試者的簡歷。這在必定程度上可能形成用戶的私密信息泄露。私密簡歷但願能夠解決這個問題!編程

相對傳統的紙質簡歷,私密簡歷會生成一個專屬於你的我的簡歷連接。經過這個私密簡歷連接,HR能夠實時查看你的簡歷。你能夠在小程序中設置一個簡歷過時時間,到達過時時間後簡歷會自動回收。爲了進一步防止其餘人查看你的簡歷,你還能夠設置專屬於當前私密簡歷的閱讀密碼。小程序

與此同時,你還能夠經過小程序隨時開啓或關閉當前私密簡歷。關閉後,將再也不容許任何人查看當前私密簡歷,直到再次打開。後端

事實上,我最感興趣的部分,剛好就是私密簡歷的開發。由於,確實存在一些公司的面試官會將用戶的紙質簡歷隨地丟棄,這就形成大機率簡歷內容泄密問題。微信小程序

不過,確定有人會說,如今的HR一般都會要求打印紙質簡歷,又有什麼辦法呢?全部的進步固然不是一時間能夠改進的,也許將來這樣的狀況會隨着這類產品的普及開始變得不同。我堅信,傳統的紙質簡歷終究被遺棄。安全

十分簡歷的點子來自於以前團隊的一個小夥伴,當時,公司剛剛成立,我但願用一個小而精的產品宣告公司的誕生,同時展現團隊強大的開發實力。微信

所以,公司成立後的第一件事情,就是號召你們天馬行空,思考第一個鏈接公司與世界的產品。最後發現,這個簡歷產品的思路有點意思,並且也不至於太過於複雜。因而,這個產品就成爲了咱們鏈接世界的第一個做品。架構

確立了產品原型以後,真正的挑戰開始了!

挑戰一:後端開發

後端開發是咱們面臨的第一個挑戰。事實上,個人第一份工做就是後端開發,而且進行了將近一年的時間,確實有必定的積累,但這並不能給我帶來很大的幫助。由於,時間已通過去了差很少5年。此後的4年時間裏,我一直從事移動平臺軟件開發。關於後端的知識點,大抵忘記了,如今撿起來,難度很多!

並且,時間過去了這麼久,以前的技術也慢慢地被淘汰了。爲此,我決定從新開始!

第一步:肯定技術選型

這一步我選擇了相對麻煩、但已經實踐成熟的解決方案:

  • Web框架:Spring Boot + Apache Shiro
  • 數據庫框架:MyBatis
  • 服務註冊與發現:Eureka Server
  • 路由網關:Zuul1
  • 編程語言:Kotlin

第二步:解決路由網關難題

在路由網關的技術選型上,最終確立了使用Zuul1做爲路由網關框架。實際上,還有一個更好的選擇是Spring Cloud Gateway。但使用Spring網關須要結合更多的新知識去作,並且還須要本身去處理數據庫的事務問題,的確會帶來很多的麻煩。加上在當時考察的文章中,發現Spring的網關性能並不能帶來本質上的提高。所以,最終確立了以Zuul做爲後端的路由網關框架。

在肯定了技術框架以後,第一個須要的解決的問題就是,如何經過一個字段標識路由到不一樣的服務層邏輯。例如:經過版本號路由到不一樣的邏輯服務層,避免版本之間相互干擾等等。遺憾的是,Zuul的路由處理是靜態配置的,這就須要對Zuul進行擴展,創建一個能夠進行動態路由配置的網關框架。

在這一部分問題的處理上,從最開始的設計到最終整個後端框架定型,差很少花掉了半個月左右的時間。一方面要考慮動態配置,另外一方面須要考慮到網關的性能問題。經過不斷地嘗試,查資料,總算解決了這個問題。這個問題的難度,在此次整個產品開發過程當中排名第一。

第三步:整合安全框架

這裏的安全架構不只僅指的是數據加密。固然,由於將來會涉及到付費交易,毫無疑問,咱們的數據是進行過加密處理的。但這裏,我要說的是,Java安全框架的接入問題。

考慮到將來開發的便利性,我但願用一個安全框架幫助接管用戶權限控制、分配等問題。爲此,首選的固然是Spring Security。但實際試用下來,發現Spring Security設計的過於複雜,可用性不高。而且,靈活性也受到了限制,不得不另闢蹊徑。最終肯定了使用Apache Shiro做爲平臺的安全框架。

Apache Shiro從必定程度上規避了Spring Security的很多問題,從一開始閱讀文檔就能感覺到其簡潔的設計。Apache Shiro的接入相對Spring Security就簡單了許多,並且可定製性也提高了很多。最終,安全框架接入順利完成。

第四步:搞定邏輯層編碼

實際上,我在早年從事Java後端開發的時候,咱們還使用的是SSH(Spring, Struts2, Hibernate)的組合。而如今Struts已經慢慢地被淘汰了,取而代之的是Spring MVC + MyBatis + Spring。同時,爲了進一步下降Java Web開發的難度,Spring官方推出了Spring Boot。相對傳統的Java Web開發,Spring Boot幾乎能夠脫離配置文件,使用註解完成全部配置,親和力提高很多。 所以,我最終選擇了使用Spring Boot來構建咱們的Web應用。但全部的這些對於我而言都是全新的知識點,不得不從從新學習,好在以前的基礎還算比較紮實,上手很快。

挑戰二:小程序開發

搞定了後端開發的難題,第二個挑戰接踵而至:小程序開發。

團隊成員中幾乎都沒有小程序開發的工做經驗。實際上,團隊成員中有一位同窗有必定的小程序開發經驗。但事實證實,這位同窗的開發經驗依然很是淺,並不足以支撐整個小程序的開發。爲此,我決定親自學習小程序,幫助你們完成小程序端的架構。制定小程序開發規範。

小程序的開發難度相對較低,但也踩了很多坑,關於這一部分的經歷,我會用另一篇文章記錄下來。

小程序開發過程當中,最大的問題來自團隊成員,其中一個小夥伴是兼職參與開發。因爲學習知識較慢, 同時對本身自信心不夠。加上生活的一些雜事,即便分配了足夠簡單的任務也未能順利完成,這就致使了整個研發過程被拉長。

最後,在Release的版本庫中,我驚奇地發現,我最終參與了70%以上的小程序代碼開發。看到這種場景,心中五味雜陳,這顯然不是一個良性循環。

這也讓下定決心,從明年開始,租寫字樓,正式招人辦公。兼職員工將由全職員工帶隊進行工做安排,處理。並適當給予兼職員工必定的資金鼓勵。

挑戰三:Web前端開發

Web前端開發在此次開發的難度排行榜中能夠排名第二。團隊成員中,幾乎沒有一我的擁有前端開發工做經驗。其中一個同窗作過極少一段時間的前端開發,所以,我讓他牽頭開發了第一個模板。

但在第一個模板的開發過程當中,也是不斷地磕磕絆絆,走了很多彎路。那一段時間,是整個開發階段最艱苦的時段,我跟這位同窗天天從早上忙到晚上12點。持續了連續10天左右,沒有周末,沒有午休。好在終於順利完成了第一個模板的開發。

模板開發完成後,整個產品的基礎形態第一次呈如今了你們的面前。前期因爲時間過於緊張,在咱們的產品原型中,並無一個充分的流程能夠展現完整。以致於兼職參與開發的同窗們在理解產品的設計上出現了很多問題。這種理解上的問題後來也讓我頭疼不已,這也是此次開發過程當中得到的寶貴教訓之一。

關於Web前端的技術選型,也走了一些彎路。最開始,我考慮使用Vue + TS的組合做爲前端開發。最終架構完成後卻發現,這個組合對於前端開發的難度提高了很多。這在很大程度上會拖延項目的開發進度。所以,立刻放棄了這個組合。轉而使用你們比較容易掌握的jQuery。事實上,模板頁做爲咱們的單頁應用,使用jQuery已經徹底足夠了。

肯定了技術選型以後,依然出現了一些問題。因爲第一位同窗開發的比較匆忙,沒有造成必定的規範。致使第二位同窗接力的時候出現了一頭霧水的狀況。所以,第二位同窗不得不從新去學習Webpack,從新去設計本身的代碼架構,這在必定程度上也拖慢了整個開發進度。

事實上,在整個開發進程中,Web前端的開發比重確實佔據了很多。這個挑戰的難度在本次開發過程當中應該能夠排名第二。

第一階段總結

在整個十分簡歷的開發過程,就像在作一次冒險,全部的知識對於咱們來講,都是陌生的。咱們須要從0開始學習,剛好是這種從0開始學習的勇氣讓我更加自信我能夠搞定任何事情,不會再害怕第一次。同時,我也堅信,這一次難忘的開發經歷,會讓團隊中堅持到最後的同窗都有了勇往直前、無所畏懼的勇氣。

這是一次十分難忘的開發經歷,也是咱們第一次勇敢地探索未知的世界,最終克服了重重困難,將十分簡歷帶到了你們的面前。

這不是結束,這剛好是咱們故事的開頭!

最後,感謝全部參與十分簡歷開發的同窗們,爲本身鼓個掌吧!大家所經歷的,不只僅是開發了一個產品,而是克服了心裏對於未知事物的恐懼,勇於踏出第一步。這種收穫,必將讓大家終身受益!

後記

送給中途離開十分簡歷開發的同窗們

在十分簡歷的開發過程當中,有兩位同窗中途離開了開發團隊。第一位同窗是由於同時在開發另一個產品,時間有限,不能同時兼顧兩個產品開發,最終選擇了另一個產品的開發。這是徹底能夠理解的,這是我的選擇問題,也是眼界問題。這樣的同窗,在後續團隊擴展中,將不會再次接收。由於,有了第一次這樣的選擇,就會有下一次。這樣的同窗不能穩定產出,穩定投入,會由於種種問題搖擺不定。

另一位同窗,由於受不了個人嚴厲性格,在中途選擇了離開。這固然更加容易理解,這樣的的離開於我而言,幾乎是徹底無感的。相反,若是一位同窗在開發中投入了不少,對團隊的奉獻很大。忽然選擇了離開,對個人打擊反而會比較大。而相似這位同窗這樣的一個緣由,選擇離開。對於我,反而會感受到欣慰,由於即便這樣的同窗留下來,也並不能跟我走到最後。他的抗壓能力,以及他的意志力決定他不能走的很遠。創業的路就像攀登珠峯同樣,隨時都有掉下去摔死的風險。你也許感受不到你要摔死,我不得不用最嚴厲的語氣罵醒你,你在「登山」,你不該該睡覺!但相似這樣的同窗,在後續開發中,做爲員工能夠再次接收,由於他至少符合穩定產出的條件,只是意志力會薄弱一些,這個能夠慢慢改善。

全部兩位同窗的離開,都是很是恰當的時機,在團隊初期選擇離開也是對於團隊小夥伴最大的尊重。請離開的同窗放心,我對你們不會有任何的責備,我很是開心你們能夠在初期就選擇離開了團隊,這很重要。就像進行一場計劃好的旅行,在旅行前10天就有人中途離場,這其實很好。咱們還能夠從新組織同窗加入到這場旅行中來,這是一件好事,我要感謝你們。同時,你們的離開也有利於篩選更優秀的員工。固然,也但願離開的兩位同窗工做順利,一切順風順水。

微信掃描下方二維碼體驗小程序

十分簡歷
相關文章
相關標籤/搜索