作者:ihr
在網際網路盛行的時代,車聯網,物聯網相關的字眼随處可見。為了友善企業在員工管理上提供更為快捷有效地方式, ihr是基于當下主流企業人才管理方式及員工普及的社交方式微信的一個開放性平台。
它包含企業端的招聘管理、員工管理,其中招聘管理又包含了面試通知邀請、到Offer發放以及候選人入職管理;員工管理包含了員工資訊及狀态跟蹤;求職者端包含了對職位檢視及投遞履歷狀态的跟蹤。
就企業而言,能夠更快擷取到人才資訊,包括内部員工推薦,求職者投遞及第三方推薦,迅速跟進,篩選招聘,在企業端招聘負責人及需求責任人可通過不同用戶端,web和微信了解到最新的職位動态,進而提高招聘效率;就求職者而言,人性化且簡易地操作,省去繁瑣地各種錄入,多種管道投遞意向職位,實時了解面試情況,專業地流程讓求職者提高了對公司的認可度。
考慮到平台的使用者量較大,是以在架構時選擇了成熟、穩定地J2EE架構。如下圖所示,該系統包含了兩個獨立的應用,分别提供web服務和wechat服務,兩者的後端均采用了JAVA+JFinal的MVC模式;web應用的前端采用HTML5+CSS3+Bootstrap+AngularJS, wechat應用前端采用了HTML5+CSS3+Bootstrap;資料庫目前使用了MySQL後期看使用者量可以考慮mangoDB;在使用者消息通知功能中使用了騰訊雲的短信平台;兩個應用共享一個伺服器,如果後期流量過大将考慮拆分到不同伺服器。

(整體架構圖)
由于項目采用開源架構,是以與别的原生項目相比多了以下特點:
基礎開源架構,項目采用了JFinal作為基礎架構。JFinal 是基于 Java 語言的極速 WEB + ORM 架構,其核心設計目标是開發迅速、代碼量少、學習簡單、功能強大、輕量級、易擴充、Restful。作為一個中小型項目,既能在短期内完全滿足項目所需,同時也能極大提高開發效率且無第三方依賴。
頁面維護性高,bootstrap的推出,解救了很多程式員的審美觀,讓他們脫離美工也能寫出豐富多彩的頁面,它是基于 HTML、CSS、JAVASCRIPT 的,簡潔靈活,使得 Web 開發更加快捷。
獨立應用,為了給使用者提供更快捷地通路方式,将web端與微信端獨立。Web端的登入采用了傳統的角色,使用者名和密碼的驗證;wechat端登入采用了微信OAuth接口授權方式,進而省去了使用者注冊流程。
将中介推薦、自薦以及内部推薦的履歷直接歸檔入庫,并開啟招聘流程。伴随整個招聘流程結束,期間求職者所需送出的資料,或需填寫的資訊,皆可由系統負責通知或采集。
求職者,關注微信服務号,可以及時收到面試通知,檢視面試結果,接收offer,回報求職資訊,以及提前錄入個人資料。為HR簡化通知面試及員工入職資料錄入人力成本。
面試官,可通過微信檢視面試者履歷,上一輪面試評價,面試者是否已到場等候,提升面試管理效率。
部門負責人,可随時關注釋出的職位招聘近況。提前了解求職者招聘流程,降低溝通成本,提高資訊時效性。
項目組一共3人,分别承擔業務需求分析、系統詳細設計及編碼實作的工作。由于初創團隊資源不足,3人的配置還是略顯不足,特别是缺少熟悉建構雲服務方面的人員及經驗。
在類似于登入或者敏感資訊送出時,使用驗證碼,可以在一定程度上防止暴力攻擊。但并不是說,隻要是驗證碼都能起到很好的作用。
簡單的圖形驗證碼,很容易就能被代碼解析。是以驗證碼也在不斷更新換代,比如加幹擾,驗證碼變形等。除非你有充足的時間或者現成的代碼可以盡快實作,否則在一個驗證功能花費過多的時間得不償失,另外使用者體驗還不見得有多好。騰訊雲服務提供的驗證碼,有多種驗證方式,比如拼圖和滑動拼圖,使用者體驗都感覺不錯,還能節省很多開發時間。可以考慮作為前期過渡使用。
當然,除了驗證碼外,還有通路次數限制和防重複送出等可以有效防止暴力攻擊。
短信的使用已經越來越頻繁,比如發送重要的通知資訊,找回密碼的驗證碼等。選擇一個收費合理,同時能保證送達率和實效性的短信平台,就尤其重要。
因為我們項目準備部署到騰訊雲,正好了解到騰訊雲也有短信平台,是以就進一步了解了下。不管是控制台操作,還是接口調用,都和微信服務号類似,容易上手。另外收費也還算合理,考慮到對雲服務上的應用支撐應該還不錯,最終決定選擇騰訊雲的短信平台。
在以往的項目中,權限是最讓人頭疼的,有角色,有使用者,有大量的邏輯需要考慮。Shiro可以支援三種授權方式,包括編碼,注解及jsp taglig,本項目考慮到耦合度,不想因為角色的改變去修改源碼,就采用了注解方式。
為了順應當下日益更新的需求,相比傳統的瀑布式開發已經不能适應。将系統拆分為系統子產品化,排出優先級,盡快盡早地完成可用功能,再在此基礎上循環疊代直到功能完善和穩定。