NOP項(xiàng)目
為保持緊跟NOP更新,項(xiàng)目組堅(jiān)持不改NOP源碼。
以觸發(fā)器,插件化開發(fā)為拓展模式
NOP自定義好的接口或完全獨(dú)立的新拓展功能很容易插件化。
但部分功能要在NOP原項(xiàng)目上擴(kuò)展修改在不改源碼的要求下非常不易。
能改原碼也就10分鐘的事,但因?yàn)樗朗夭桓脑创a的規(guī)定,邏輯要更繞,更費(fèi)精力,工作量更大,并且有很多風(fēng)險(xiǎn)。
為了擴(kuò)展將部分邏輯寫在Module里,Module嚴(yán)重影響性能。
功能開發(fā)前,個(gè)人的建議,是直接改某處,寫日志,后期有更新再按日志改就可以,這種修改的量不會(huì)太大。
項(xiàng)目組不接受,因此提出可以改全局module來擴(kuò)展。
之后爽歪歪,各種繞,起初只寫一小部分邏輯,后期不斷的添加。
今日?qǐng)?bào)錯(cuò)。
因采用IIS全局模式。
module內(nèi)有選擇或cookie或session的操作一部
JS,CSS靜態(tài)頁面,api,也經(jīng)過module,但此兩類訪問,無cookie session。
初版忘記加靜態(tài)頁驗(yàn)證,導(dǎo)致訪問靜態(tài)頁時(shí),因null異常,靜太文件無法加載,導(dǎo)致頁面樣式和效果全丟失。
api更是詭異,api也曾因session報(bào)錯(cuò),其本身無session屬性,但古怪之處在于,如果以一個(gè)普通的賬號(hào)登陸。再經(jīng)module調(diào)用api,那么session是有值的。
當(dāng)然,此session與api無關(guān),除了由同一臺(tái)終端訪問。
api的session原本為空,不可調(diào)用
但若在同一終端以賬號(hào)登陸,則session有值,且=此用戶的session
現(xiàn)是全局正則檢測(cè)是否為靜態(tài)文件(損性能,且可能會(huì)有遺漏不說)
并驗(yàn)證是否有session。
JS和靜態(tài)頁面經(jīng)Module的問題,后期可以配置nginx靜態(tài)緩存來避免訪問web服務(wù)(也就在走module前直接從nginx拿到)
插件開發(fā),只需對(duì)自已的插件負(fù)責(zé),即使錯(cuò),也只是在小范圍。
搞Module開發(fā),一個(gè)未考慮到的小錯(cuò)就會(huì)出現(xiàn)大量錯(cuò)誤,以致網(wǎng)站崩潰,費(fèi)力且嚴(yán)重不討好。
PS,公司項(xiàng)目新上,但尚無獨(dú)立的測(cè)試環(huán)境。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注