這一年多的時間裡,我寫了乙個由眾多構件組成的lisk。
lisk分別由以下構件:
定時器 lisk_clock
詞典 lisk_dict key-value(string-string型別,可讀取配置檔案)
hashtable lisk_hashtable
list lisk_list
log lisk_log
map lisk_map
多級hash lisk_mul_hash
網路庫 lisk_network
string lisk_string
vector lisk_vector
目錄結構是 lisk---./mk.sh
---mak
---inc
---src
---exam
基於linux,lisk全部用c語言實現,沒用用到一句我討厭的c++(雖然以前也使用了近四年多)。
本人程式設計環境是opensuse12.3,uname -a結果是 linux linux-xv96 3.4.6-2.10-desktop #1 smp preempt thu jul 26 09:36:26 utc 2012 (641c197) x86_64 x86_64 x86_64 gnu/linux。
另外本人使用了工具ccache。編譯**是請保證安裝了ccache。
測試過成中借助valgrind基本上排除了所有的記憶體洩露。
編譯過程很簡單,先執行chmod u+x ./mk.sh以保證mk.sh可執行,然後執行指令碼./mk.sh即可。
mak目錄放置了makefile的配置項,inc目錄放置了lisk所有的標頭檔案,src目錄放置了所有的原始檔,exam放置了所有的示例**。
可以修改檔案lisk/exam/makefile第24行以編譯不同的示例程式。
基本上可以保證每個字母和每行**都是個人實現,例外就是其中有乙個lisk_rand,被本人用來測試,就是這個我也有修改。
其中有些**你可能從網上沒見過的,建議可以看看log、多級hash、hashtable和network,以及用hashtable實現的詞典。
網路庫lisk_network採用了event driven形式,還是單程序的,而且只實現了server(支援tcp和udp)。
下一步主要是修改可能的bug並在network中新增client。在下一步考慮支援多程序或者多執行緒,個人傾向於多程序,這個又是近半年的工作量了,如果工作不多而空餘時間多的話。
雖然這一年多的時間裡,為了寫lisk,吾人已心神俱疲。但它還會持續進化中,以後我會刪除一些冗餘**。
**遵循gpl2.0協議,請尊重我的勞動成果。
歡迎加入qq群189546765,請不要對qq群名稱大驚小怪^_^。來者不拒。群共享中也有lisk。
人之初,性本善
古人很偉大,說了一句符合統計學原理的話。如果以95 作為置信度,人剛生下來時,應該是有95 的概率是乙個好人,5 的概率是個壞蛋。如果人之初,性本惡的話,你走在馬路上,遇到100個人,會有95個人過來傷害你,這不是現實,因此人之初,性本善。是乙個好人,不代表好人不做壞事,只是好人做好事的概率大,做壞...
SOA學習之初
根據公司專案的需要,這兩天正在惡補soa概念性的一些知識,發現這東西可真是博大精深啊,涉及各方面的知識,有網路 架構 各種協議 實現方式等。總的來說,收穫還是大大地。至少明白了一些基本的概念,至於是否學會了如何實現soa,這個還真是一定沒有,因此我需要記敘努力。我又看了一本書,書名為是 soa實踐者...
寫在開學之初
今年是個多事之秋。被繁忙的事務所累的時候,總是想到初中的時候,語文老師高興的誇我說很有文采。這樣的感覺很久沒有,好可惜啊。日子一天天過得飛快,再也不像小時候覺得每個分鐘都很長。新的學期開始,只想像男朋友說的那樣,做乙個普通的女孩子,好好的過日子。不再想象太多。暑假打工的事情帶給我的傷痛我希望能夠盡快...