摘要:閱讀本文約分鐘序章月至月中旬一直在忙公司新項目,這也是我第一次做技術領隊的項目,從面試開始就一直在閱讀有關技術團隊管理有關的書籍,本文將簡述此項目的總結,從設計到編碼實現到上線測試用戶反饋等方面,篇幅略長,建議收藏。
閱讀本文約“5.8分鐘”
序章7月至8月中旬一直在忙公司新項目,這也是我第一次做技術領隊的項目,從面試開始就一直在閱讀有關技術團隊管理有關的書籍,本文將簡述此項目的總結,從設計到編碼實現到上線測試用戶反饋等方面,篇幅略長,建議收藏。
當然,這是期間也可能有更好的技術實現方案,希望各位朋友看后提出自己的建議,MySelf自當摸索了解,吸收消化,謝謝。
前言這是一個基于小程序的電商類項目,前端一人,UI一人,后臺兼項目技術總控一人,小弟不才,負責了最后一項,具體原因是公司內部......
人員也是由我親自面試,因為3至6月自己負責設計完成了一整個類共享的小程序(后續相關推文介紹),所以對于小程序還算一點了解,僅在于功能實現與開發上的了解吧,對于UI,我一向是比較重視的,無論你的技術多好,產品對于用戶沒有吸引力那么一切都無從說起。
前端面試:小程序類MVC開發模式(model層js)
UI面試:產品核心理解、用戶體驗為主、功能核心突出
項目數據庫設計這個在面試階段就開始設計了,項目是圖書類電商,所以與商品差不多,主要是ISBN這塊,對于數據庫設計主要遵循范式,不要存在不必要的多表關聯,數據讀寫邏輯清晰,CRUD便捷,由于上一項目的基礎,所以我這次的設計也是比較熟練,當然還是存在一點缺點,類似一些推薦模塊、積分商城、優惠券等的設計可能是沒有經驗,總感覺設計的不是很好。
對于數據庫相關的具體,后期會推出一個系列,實際的踐行,這里不是重點。
后臺架構設計上個項目SSM后,對于配置上的一些重復工作,讓我這次直接選擇SpringBoot,且它對于Java Web的功能都很好的便捷集成了,數據庫操作工具選擇JPA,緩存涉及登錄Token、搜索引擎關鍵字,我選擇大眾品牌Redis,消息隊列Kafka配合ElasticSearch搭建搜索引擎,數據庫選擇MYSQL,現在很少用Oracle。由于項目較趕,所以后臺的管理界面使用Freemarker模板,確實比較方便。支付使用微信的SDK,小程序所以僅使用微信支付。對于日志系統,由于公司決定,所以僅做了基本的日志輸出到對應文件,定期備份,沒有做可視化模塊,后期再上線,
大致項目架構圖,沒有畫的很詳細。
對于后臺實現而言,如果你要寫對應的Api文檔給前端對接,那是一種相當耗時的事情,那么你可以選擇SwaggerUI,一個小小的插件,可以減少你對文檔花的時間,如下圖,api開頭的就是對應小程序的RESTFui API,fb開頭的是后臺管理界面的Freemarker模板生成頁面。
首先是后臺管理界面,你要與上線后的操作人員溝通,一般會有原型文檔,對于產品與模塊有上線下線,類似本項目的一個功能:閱讀推薦,需要選擇推薦的圖書與編輯對應的文案還有作者、時間等信息,它也是需要上下線的,且對于圖書的信息,只錄入一次,庫存或其他模塊,需要唯一ID去對應獲取信息即可。
VO的重要性,View Object,即排行版需要的數據信息僅僅是封面、書名、借閱人數、金額等,但是圖書信息Entity是由這本圖書的全部信息,我們需要定義一個對應的VO對象,針對排行版去給前端對應的數據,不要把全部信息都給前端,這是一種準則!且可能后臺的屬性名,與前端要讀取的JSON參數名不一樣,你可以使用@JsonProperty去與前端統一。
登錄校驗,Aspect切面處理,后臺管理是一個禁區,所以需要Token的校驗,除了登錄、登出URL,其他URL都需要去校驗Token的有效性,Token存放于Redis中,時效性是半小時,開發時可以設置長一點。
小程序也有對應的登錄校驗,app.js初始化小程序時,進行token校驗,不存在就使用code來后臺生成一個token,并保存用戶的OpenId(SessionId),之后每次請求Token都放在Header中。
SpringBoot對于Redis、Kafka、ElasticSearch等其實都有默認支持,這一點是一個福音。
統一異常、Constants常量包、Utils、SDK包等這里就不一一介紹了。
逐步分解:四搜素引擎ElasticSearch與Kafka的搭建,大致簡介一下,圖書數據入庫(新增時)或更新,ElasticSearch中也有新增對應的圖書信息,參數根據業務而定,圖書下架時,ElasticSearch中進行移除,但是每次圖書新增需要同步去執行ElasticSearch的操作,是一件存在隱患的事情,那么我們可以使用Kafka消息隊列,讓ElasticSearch去消費Kafka中的消息,去除同步的隱患。
ELasticSearch還能快速實現Search-as-your-type,保存關鍵字,定義返回關鍵字的個數,定義優先級別等。(后期因部分原因未上線)
在搜索中,還加了歷史搜索,這個存在Redis中,一個Set,不重復且長度為7,即最多為7條歷史搜索記錄,會自動迭代上去。
對于用戶信息,是比較重要的,押金、訂單、快遞信息等都是需要重復測試,不過這里主要是業務實現了,就不細說。
那么我們說說前端吧,我對前端實現的要求,H5模塊,小程序有Template,即一些模塊可以抽取,重復的樣式抽取后使用雙向數據綁定填充,js塊則是MVC,算是這么說吧,多定義一層model進行數據的請求操作,原js層引入model(ES6的類操作),去調用model的數據請求方法,獲取到的數據重新轉給View層。
優化,數據懶加載,緩存使用等,這里涉及的比較多,那一個較容易理解的解釋,排行版的數據是最多的,如果一次性加載完,那么用戶需要等待10幾秒不止,這個是絕對不允許的,那么我們可以一次加載10條,當用戶下拉到底部時,再向服務器請求10條,這樣可以提高用戶體驗,服務器接口也能提高工作效率,那么如果用戶重新回到排行榜頁面,那么我們又要再加載一次,其實這是沒有意義的,我們可以使用小程序本地緩存,加載過的數據都放到緩存里面,當用戶重新進入頁面時,之前加載過的直接去緩存里面拿,不需要再次請求api,即如果用戶之前已經看了100條數據,那么重新回來頁面會直接顯示100條,速度非常快,這樣減少了服務器的不必要請求。
這里的緩存設置,再用戶每次重新進入時,會重置,即每一次緩存里的數據是當前的最新數據。
拿出產品看看一直說了那么多,也要讓你們體驗一下才行呀,一個借書平臺,省去買書煩惱,不是廣告,大家可以看看實現效果,當然項目較趕存在部分bug,見諒。(掃碼了解,下單更好,哈哈哈)
對于技術,我還有很多進步空間,對于人員管理更甚。
本次項目總結到此結束,還有不足,將慢慢填充,如訪問量瓶頸、數據讀寫瓶頸等,Tomcat橫向擴展、Redis分布式等等。
往下一個階段都會寫總結,勉勵自己,發現不足,定制目標,謝謝。
如果有幫助,請關注此公眾號,點個贊。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/76862.html
摘要:加密數字貨幣價格巔峰,區塊鏈成二線企業股價春藥年月日,是區塊鏈行業的高光時刻,整個加密數字貨幣市值億美元,人民幣近萬億元。直接原因是,當日,中網載線剛剛宣布與井通網絡科技有限公司合作開展區塊鏈產業。 加密數字貨幣價格巔峰,區塊鏈成二線企業股價春藥 2018 年 1 月 8 日,是區塊鏈行業的高光時刻,整個加密數字貨幣市值 8139 億美元,人民幣近 6 萬億元。在 10 天之前,12 ...
摘要:前言功能業務實現,在小程序電商類應用上,新增邀請碼活動模塊,目的是提高用戶量與訂單量,更多的效用就是運營上的點了。 前言 功能業務實現,在小程序電商類應用上,新增邀請碼活動模塊,目的是提高用戶量與訂單量,更多的效用就是運營上的點了。那么我接到功能時其實是很模糊的,上頭說來一個別人做出的那種邀請碼的模塊,我第一步想到的是后臺一鍵開關?通過后臺模塊的啟動、設定、關閉活動,這樣,這個模塊在接...
摘要:親愛的小伙伴立秋已至,驕陽卻依舊不減。一周動態開展社群問卷調查月日,團隊在中文官方社群中投放調查問卷。社群成員完成問卷即可獲得幣,問卷填寫時間截止至本周日晚。將有大動作敬請期待。 showImg(https://segmentfault.com/img/bVbtKHf);親愛的ETM小伙伴: 立秋已至, 驕陽卻依舊不減。 青黃交接的八月中旬, 區塊鏈登《福布斯》2020十大科技, 央行...
摘要:從用戶成為股東在基金會的天從年開始為的初始版本打補丁,堵俊平已經在社區深耕了近年,年月成為中國第一個的年月,年月榮升。他們有權選舉董事會,成為董事會選舉的候選人。基金會成員對基金會直接負責,在多個項目中做出貢獻,擁有董事會的投票權。 3月27日,騰訊云大數據及人工智能產品研發的專家研究員堵俊平受邀成為 Apache 軟件基金會Member(Apache Softeware Founda...
閱讀 2770·2021-11-23 09:51
閱讀 3529·2021-10-08 10:17
閱讀 1261·2021-10-08 10:05
閱讀 1309·2021-09-28 09:36
閱讀 1833·2021-09-13 10:30
閱讀 2174·2021-08-17 10:12
閱讀 1670·2019-08-30 15:54
閱讀 2004·2019-08-30 15:53