開門見山,最近閱讀了一下一款開源引擎的源碼,受益良多(學到了一些套路)。外加很久沒有寫博客了(沉迷吃雞,沉迷想念姑娘),特別開一篇。Hoot 的源碼地址,
原理介紹地址。外加我看過以後的註釋版本,固然我本人對源碼作了一些調整,我叫它HootEngine。linux
介紹很少說,能夠直接下載源碼調試,已經提供了Demo可供玩耍。裏面有不少地方值得學習,好比LZO壓縮、讀寫鎖的方式、IO讀寫的一些技巧、安全數據結構(有序列,安全字典等等),我本身是有打算徹底看完(目前的進度是70%,有部分是能夠忽略的)。Hoot自己有很多缺陷,例如使用了WIn32少許綁定了系統API(不過我後來直接就改掉了)、文件路徑出現硬編碼(這個很傷,須要修改後才能兼容linux的路徑作到跨平臺)。還好整個項目的代碼量不大,不少地方能夠作優化,好比加入一些並行計算。也能夠本身擴展組件,搭建本身的搜索引擎或者融合別的組件成爲一個新的東西,MIT的開源方式也至關nice。結合大環境,基於Lucene的Elasticsearch都作得發財了,搜索引擎其實應用的很廣,目前不少機器學習、大數據分析,都離不開搜索引擎,以前也有說起推動算法引擎和搜索引擎結合做爲解決方案的(目前國內玩得溜的,應該是淘寶的搜索),套路不少。git