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