C++
1、《高性能 Windows Socket 服務(wù)端與客戶端組件(源代碼及測(cè)試用例下載)》
《基于 IOCP 的通用異步 Windows Socket TCP 高性能服務(wù)端組件的設(shè)計(jì)與實(shí)現(xiàn)》
《通用異步 Windows Socket TCP 客戶端組件的設(shè)計(jì)與實(shí)現(xiàn)》
摘要:編寫 Windows Socket TCP 客戶端其實(shí)并不困難,Windows 提供了6種 I/O 通信模型供大家選擇。但本座看過很多客戶端程序都把 Socket 通信和業(yè)務(wù)邏輯混在一起,剪不斷理還亂。每個(gè)程序都 Copy / Parse 類似的代碼再進(jìn)行修改,實(shí)在有點(diǎn)情何以堪。因此本座利用一些閑暇時(shí)光寫了一個(gè)基于 IOCP 的通用異步 Windows Socket TCP 高性能服務(wù)端組件和一個(gè)通用異步 Windows Socket TCP 客戶端組件供各位看官參詳參詳,希望能激發(fā)下大家的靈感。
資源下載地址:http://ldcsaa.googlecode.com/files/socket_server_and_client.zip
2、《Windows C++ 應(yīng)用程序通用日志組件(組件及測(cè)試程序下載)》
摘要:編寫一個(gè)通用的日志組件應(yīng)該著重考慮三個(gè)方面:功能、可用性和性能。下面,本座詳細(xì)說明在設(shè)計(jì)日志組件時(shí)對(duì)這些方面問題的考慮:
- 功能:本日志組件的目的是滿足大多數(shù)應(yīng)用程序記錄日志的需求 —— 把日志輸出到文件或發(fā)送到應(yīng)用程序中,并不提供一些復(fù)雜但不常用的功能
- 可用性:本日志組件著重考慮了可用性,盡量讓使用者用起來覺得簡(jiǎn)便、舒心
- 性能:性能是組件是否值得使用的硬指標(biāo),本組件從設(shè)計(jì)到編碼的過程都盡量考慮到性能優(yōu)化
資源下載地址:http://ldcsaa.googlecode.com/files/VC_Logger.zip
3、《如何養(yǎng)成良好的 C++ 編程習(xí)慣(一)—— 內(nèi)存管理》
摘要:說起 C/C++ 的內(nèi)存管理似乎令人望而生畏,滿屏的 new / delete / malloc / free,OutPut 窗口無盡的 Memory Leak 警告,程序詭異的 0X00000004 指針異常,仿佛回到那一年我們一起哭過的日子,你 Hold 得住嗎?其實(shí),現(xiàn)實(shí)并沒有你想的那么糟糕。只要你付出一點(diǎn)點(diǎn),花一點(diǎn)點(diǎn)心思,沒錯(cuò)!就一點(diǎn)點(diǎn)而已 —— 用 C++ 類封裝內(nèi)存訪問,就會(huì)解決你大部分的煩惱,讓你受益終身。以 Windows 程序?yàn)槔饕幸韵聨追N內(nèi)存管理方式:
- 虛擬內(nèi)存(Virtual Memory)
- 默認(rèn)堆和私有堆(Process Heap & Private Heap)
- 內(nèi)存映射文件(File Mapping)
- 進(jìn)程堆棧(Heap,其實(shí)就是用 malloc() 或 默認(rèn)的 new 操作符在 Process Heap 里一小塊一小塊地割肉 ^_^)
- 棧(Stack,內(nèi)存由調(diào)用者或被調(diào)用者自動(dòng)管理)
資源下載地址:http://ldcsaa.googlecode.com/files/socket_server_and_client.zip (源代碼在 Common/Src 目錄中)
4、《實(shí)現(xiàn) Win32 程序的消息映射宏(類似 MFC )》
摘要:對(duì)于消息映射宏,不用多說了,用過 MFC 的人都很清楚。但目前有不少程序由于各種原因并沒有使用 MFC,所以本帖討論一下如何在 Win32 程序中實(shí)現(xiàn)類似MFC的消息映射宏。其實(shí) Windows 的頭文件 “WindowsX.h”(注意:不是“Windows.h”) 中提供了一些有用的宏來幫助我們實(shí)現(xiàn)消息映射。本座是也基于這個(gè)頭文件實(shí)現(xiàn)消息映射。
資源下載地址:http://ldcsaa.googlecode.com/files/socket_server_and_client.zip (源代碼在 Common/Src/Win32Helper.h 文件中)
5、《用宏實(shí)現(xiàn) C++ Singleton 模式》
摘要:Singleton 設(shè)計(jì)模式應(yīng)用非常廣泛,實(shí)現(xiàn)起來也很簡(jiǎn)單,無非是私有化若干個(gè)構(gòu)造函數(shù),“operator =” 操作符,以及提供一個(gè)靜態(tài)的創(chuàng)建和銷毀方法。但是對(duì)每個(gè)類都寫這些雷同的代碼是本座不能容忍的,因此,本座使用宏把整個(gè) Singleton 模式封裝起來,無論是類的定義還是類的使用的極其簡(jiǎn)單。
資源下載地址:http://ldcsaa.googlecode.com/files/socket_server_and_client.zip (源代碼在 Common/Src/Singleton.h 文件中)
6、《C++ 封裝私有堆(Private Heap)》
摘要:Private Heap 是 Windows 提供的一種內(nèi)存內(nèi)存機(jī)制,對(duì)于那些需要頻繁分配和釋放動(dòng)態(tài)內(nèi)存的應(yīng)用程序來說,Private Heap 是提高應(yīng)用程序性能的一大法寶,使用它能降低 new / malloc 的調(diào)用排隊(duì)競(jìng)爭(zhēng)以及內(nèi)存空洞。
資源下載地址:http://ldcsaa.googlecode.com/files/socket_server_and_client.zip (源代碼在 Common/Src/PrivateHeap.h 文件中)
7、《基于 crt debug 實(shí)現(xiàn)的 Windows 程序內(nèi)存泄漏檢測(cè)工具》
摘要:Windows 程序內(nèi)存泄漏檢測(cè)是一項(xiàng)十分重要的工作,基于 GUI 的應(yīng)用程序通常在調(diào)試結(jié)束時(shí)也有內(nèi)存泄漏報(bào)告,但這個(gè)報(bào)告的信息不全面,不能定位到產(chǎn)生泄漏的具體行號(hào)。其實(shí)自己實(shí)現(xiàn)一個(gè)內(nèi)存泄漏檢測(cè)工具是一件非常簡(jiǎn)單的事情,但看過網(wǎng)上寫的很多例子,普遍存在兩種問題:
- 要么考慮不周全,一種環(huán)境下能用,而在另外一種環(huán)境下卻不能很好工作,或者漏洞報(bào)告的輸出方式不合理。
- 要么過于保守,例如:完全沒有必要在 _malloc_dbg() 和 _free_dbg() 的調(diào)用前后用 CriticalSection 進(jìn)行保護(hù)(跟蹤一下多線程環(huán)境下 new 和 malloc 的代碼就會(huì)明白)。
資源下載地址:http://ldcsaa.googlecode.com/files/socket_server_and_client.zip (源代碼在 Common/Src/debug/win32_crtdbg.h 文件中)
Java
1、《Portal-Basic Java Web 應(yīng)用開發(fā)框架 v3.0.1 正式發(fā)布(源碼、示例及文檔)》
摘要:Portal-Basic Java Web應(yīng)用開發(fā)框架(簡(jiǎn)稱 Portal-Basic)是一套功能完備的高性能Full-Stack Web應(yīng)用開發(fā)框架,內(nèi)置穩(wěn)定高效的MVC基礎(chǔ)架構(gòu)和DAO框架(已內(nèi)置Hibernate、MyBatis和JDBC支持),集成 Action攔截、Form Bean / Dao Bean / Spring Bean裝配、國(guó)際化、文件上傳下載和緩存等基礎(chǔ)Web應(yīng)用組件,提供高度靈活的純 Jsp/Servlet API 編程模型,完美整合 Spring,支持Action Convention“零配置”,能快速開發(fā)傳統(tǒng)風(fēng)格和RESTful風(fēng)格的Web應(yīng)用程序,文檔和代碼清晰完善,非常容易學(xué)習(xí)。
資源下載地址:http://code.google.com/p/portal-basic/downloads/list
2、《用 Java 實(shí)現(xiàn)的日志切割清理工具(源代碼下載)》
摘要:對(duì)于服務(wù)器的日常維護(hù)來說,日志清理是非常重要的事情,如果殘留日志過多則嚴(yán)重浪費(fèi)磁盤空間同時(shí)影響服務(wù)的性能。如果用手工方式進(jìn)行清理,會(huì)花費(fèi)太多時(shí)間,并且很多時(shí)候難以滿足實(shí)際要求。例如:如何在每個(gè)星期六凌晨3點(diǎn)把超過2G大的日志文件進(jìn)行切割,保留最新的100M日志記錄?網(wǎng)上沒有發(fā)現(xiàn)能滿足本座要求的日志切割工具,因此花了一些閑暇時(shí)間自己寫了一個(gè)。由于要在多個(gè)平臺(tái)上使用,為了方便采用 Java 實(shí)現(xiàn)。本工具命名為 LogCutter,主要有以下特點(diǎn):
- 支持 Linux、Mac 和 Windows 等所有常見操作系統(tǒng)平臺(tái)
- 支持命令行交互式運(yùn)行
- 支持后臺(tái)非交互式運(yùn)行(Linux/MAC 下使用 daemon 進(jìn)程實(shí)現(xiàn),Windows 用系統(tǒng) Service 實(shí)現(xiàn))
- 支持兩種日志清理方式(刪除日志文件或切割日志文件)
- 支持對(duì) GB18030、UTF-8、UTF-16LE、UTF-16BE 等常用日志文件類型進(jìn)行切割(不會(huì)發(fā)生切掉半個(gè)字符的情況)
- 高度可配置(程序執(zhí)行周期、要?jiǎng)h除的日志文件過期時(shí)間、要切割的日志文件閥值和保留大小等均可配置
資源下載地址:http://ldcsaa.googlecode.com/files/LogCutter.zip
3、《通用 Java 文件上傳和下載組件的設(shè)計(jì)與實(shí)現(xiàn)》
摘要:文件上傳和下載是 Web 應(yīng)用中的一個(gè)常見功能,相信各位或多或少都曾寫過這方面相關(guān)的代碼。但本座看過不少人在實(shí)現(xiàn)上傳或下載功能時(shí)總是不知不覺間與程序的業(yè)務(wù)邏輯糾纏在一起,因此,當(dāng)其他地方要用到這些功能時(shí)則無可避免地 Copy / Pase,然后再進(jìn)行修改。這樣丑陋不堪的做法導(dǎo)致非常容易出錯(cuò)不說,更大的問題是嚴(yán)重浪費(fèi)時(shí)間不斷做重復(fù)類似的工作,這是本座絕不能容忍的。哎,人生苦短啊,浪費(fèi)時(shí)間在這些重復(fù)工作身上實(shí)在是不值得,何不把這些時(shí)間省出來打幾盤羅馬或者踢一場(chǎng)球?為此,本座利用一些閑暇之時(shí)光編寫了一個(gè)通用的文件上傳和文件下載組件,實(shí)現(xiàn)方法純粹是基于 JSP,沒有太高的技術(shù)難度,總之老少咸宜 ^_^。現(xiàn)把設(shè)計(jì)的思路和實(shí)現(xiàn)的方法向各位娓娓道來,希望能起到拋磚引玉的效果,激發(fā)大家的創(chuàng)造性思維。
資源下載地址:http://code.google.com/p/portal-basic/downloads/list (作為 Portal-Basic 第一部分,代碼在 com.bruce.util.http 包中)
4、《深度剖析:Java POJO Bean 對(duì)象與 Web Form 表單的自動(dòng)裝配》
摘要:時(shí)下很多 Web 框架 都實(shí)現(xiàn)了 Form 表單域與 Java 對(duì)象屬性的自動(dòng)裝配功能,該功能確實(shí)非常有用,試想如果沒這功能則勢(shì)必到處沖積著 request.getParameter() 系列方法與類型轉(zhuǎn)換方法的調(diào)用。重復(fù)代碼量大,容易出錯(cuò),同時(shí)又不美觀,影響市容。現(xiàn)在的問題是,這些框架通過什么方法實(shí)現(xiàn)自動(dòng)裝配的?如果不用這些框架我們自己如何去實(shí)現(xiàn)呢?尤其對(duì)于那些純 JSP/Servlet 應(yīng)用,要是擁有自動(dòng)裝配功能該多好啊!本座深知各位之期盼,決定把自動(dòng)裝配的原理和實(shí)現(xiàn)方法娓娓道來。
資源下載地址:http://code.google.com/p/portal-basic/downloads/list (作為 Portal-Basic 第一部分,代碼在 com.bruce.util 包中)
5、《Linux 安裝 MySQL / MySQL 主從備份》
資源下載地址:http://ldcsaa.googlecode.com/files/services.zip
本文轉(zhuǎn)自:http://m.shnenglu.com/ldcsaa/archive/2013/01/07/197048.html
posted on 2013-01-07 10:39
王海光 閱讀(369)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
C++