一:學會如何讀一個JavaWeb項目源代碼
步驟:表結構->web.xml->mvc->db->spring ioc->log->代碼
1、先了解項目數據庫的表結構,這個方面是最容易忘記的,有時候我們只顧着看每一個方法是怎么進行的,卻沒有去了解數據庫之間的主外鍵關聯。其實如果先了解數據庫表結構,再去看一個方法的實現會更加容易。
2、然后需要過一遍web.xml,知道項目中用到了什么攔截器,監聽器,過濾器,擁有哪些配置文件。如果是攔截器,一般負責過濾請求,進行AOP等;如果是監 聽器,可能是定時任務,初始化任務;配置文件有如 使用了spring后的讀取mvc相關,db相關,service相關,aop相關的文件。
3、查看攔截器,監聽器代碼,知道攔截了什么請求,這個類完成了怎樣的工作。有的人就是因為缺少了這一步,自己寫了一個action,配置文件也沒有寫錯,但是卻怎么調試也無法進入這個action,直到別人告訴他,請求被攔截了。
4、接下來,看配置文件,首先一定是mvc相關的,如springmvc中,要請求哪些請求是靜態資源,使用了哪些view策略,controller注解放在哪個包下等。
然后是db相關配置文件,看使用了什么數據庫,使用了什么orm框架,是否開啟了二級緩存,使用哪種產品作為二級緩存,事務管理的處理,需要掃描的實體類放在什么位置。最后是spring核心的ioc功能相關的配置文件,知道接口與具體類的注入大致是怎樣的。當然還有一些如apectj等的配 置文件,也是在這個步驟中完成
5、log相關文件,日志的各個級別是如何處理的,在哪些地方使用了log記錄日志
6、從上面幾點后知道了整個開源項目的整體框架,閱讀每個方法就不再那么難了。
7、當然如果有項目配套的開發文檔也是要閱讀的。
二:爬蟲是如何實現的:
獲取規則url(正則表達式)
-> 模擬請求(如httpclient get請求)
-> 獲取列表頁html
-> 獲取信息頁
-> 發送請求
-> 信息頁html
-> 根據規則截取相應的字段信息
-> 對字段進行清理(如圖片壓縮)
-> 靜態化(存儲到數據庫)
三:架構文檔
開發項目是需要學會寫架構文檔,而不是只是做一個碼農
包含以下內容:
1、模塊分級,各模塊關系,各模塊負責人
2、各模塊時序圖
3、各模塊表結構
4、協議文檔(接口文檔)
5、每個負責人工作計划
下發任務后每個模塊的負責人用開發工具畫出自己的時序圖,表結構和接口文檔,最后匯總到總項目負責人處。
四:其它
1、數據庫是否分表問題:用分表的方式管理表有時並不合理,如果讀的壓力高是不值得的,可能更慢。如果寫並發高就行(以千萬級別為准)。 讀是按緩存的,緩存密度在95%以上是比較保險的。
讀的優化:讀單條信息,只需搜到這個id,然后直接從緩存中拿,緩存用id做緩存,查id的效率是很高的。
2、CMS=模板+數據:可以通過只有一套自己的模板(如用freemarker),發送請求獲取json數據填入信息。CMS有模板通過把數據填入模板即形成一個網頁。
3、計算機瀏覽器的網頁內容要在手機上查看,需要做到響應式HTML。
4、如通過抓取網頁內容放到app上顯示,需要做的內容:圖片大小自適應,內容盡量保真,校驗內容是否丟失,鏈接需要替換的需要進行替換,html標簽替換
5、爬蟲的核心是多線程的任務管理,抓取分頁列表內容。