zoukankan      html  css  js  c++  java
  • 发布本人所有博客文章中涉及的代码与工具(大部分是C++和Java)

    发布本人所有博客文章中涉及的代码与工具(大部分是C++和Java)

    有些内容已更改,对旧文重新编辑并再次发布,望见谅)

      为了更方便地管理博文中涉及的各种代码与工具资源,现在把这些资源迁移到 Google Code 中,有兴趣者可前往下载。


    C++

    1、《高性能 Windows Socket 服务端与客户端组件(源代码及测试用例下载)

        《基于 IOCP 的通用异步 Windows Socket TCP 高性能服务端组件的设计与实现

        《通用异步 Windows Socket TCP 客户端组件的设计与实现

      摘要:编写 Windows Socket TCP 客户端其实并不困难,Windows 提供了6种 I/O 通信模型供大家选择。但本座看过很多客户端程序都把 Socket 通信和业务逻辑混在一起,剪不断理还乱。每个程序都 Copy / Parse 类似的代码再进行修改,实在有点情何以堪。因此本座利用一些闲暇时光写了一个基于 IOCP 的通用异步 Windows Socket TCP 高性能服务端组件和一个通用异步 Windows Socket TCP 客户端组件供各位看官参详参详,希望能激发下大家的灵感。

      资源下载地址:https://ldcsaa.googlecode.com/files/high_pfm_socket_server_and_client-2.0.1.zip

    2、《Windows C++ 应用程序通用日志组件(组件及测试程序下载)

      摘要:编写一个通用的日志组件应该着重考虑三个方面:功能、可用性和性能。下面,本座详细说明在设计日志组件时对这些方面问题的考虑:

      • 功能:本日志组件的目的是满足大多数应用程序记录日志的需求 —— 把日志输出到文件或发送到应用程序中,并不提供一些复杂但不常用的功能
      • 可用性:本日志组件着重考虑了可用性,尽量让使用者用起来觉得简便、舒心
      • 性能:性能是组件是否值得使用的硬指标,本组件从设计到编码的过程都尽量考虑到性能优化

      资源下载地址:http://ldcsaa.googlecode.com/files/VC_Logger.zip

    3、《如何养成良好的 C++ 编程习惯(一)—— 内存管理

      摘要:说起 C/C++ 的内存管理似乎令人望而生畏,满屏的 new / delete / malloc / free,OutPut 窗口无尽的 Memory Leak 警告,程序诡异的 0X00000004 指针异常,仿佛回到那一年我们一起哭过的日子,你 Hold 得住吗?其实,现实并没有你想的那么糟糕。只要你付出一点点,花一点点心思,没错!就一点点而已 —— 用 C++ 类封装内存访问,就会解决你大部分的烦恼,让你受益终身。以 Windows 程序为例,主要有以下几种内存管理方式:

      • 虚拟内存(Virtual Memory)
      • 默认堆私有堆(Process Heap & Private Heap)
      • 内存映射文件(File Mapping)
      • 进程堆栈(Heap,其实就是用 malloc() 或 默认的 new 操作符在 Process Heap 里一小块一小块地割肉 ^_^)
      • (Stack,内存由调用者或被调用者自动管理)

      资源下载地址:https://ldcsaa.googlecode.com/files/high_pfm_socket_server_and_client-2.0.1.zip (源代码在 Common/Src 目录中)

    4、《实现 Win32 程序的消息映射宏(类似 MFC )

      摘要:对于消息映射宏,不用多说了,用过 MFC 的人都很清楚。但目前有不少程序由于各种原因并没有使用 MFC,所以本帖讨论一下如何在 Win32 程序中实现类似MFC的消息映射宏。其实 Windows 的头文件 “WindowsX.h”(注意:不是“Windows.h”) 中提供了一些有用的宏来帮助我们实现消息映射。本座是也基于这个头文件实现消息映射。

      资源下载地址:https://ldcsaa.googlecode.com/files/high_pfm_socket_server_and_client-2.0.1.zip (源代码在 Common/Src/Win32Helper.h 文件中)

    5、《用宏实现 C++ Singleton 模式

      摘要:Singleton 设计模式应用非常广泛,实现起来也很简单,无非是私有化若干个构造函数,“operator =” 操作符,以及提供一个静态的创建和销毁方法。但是对每个类都写这些雷同的代码是本座不能容忍的,因此,本座使用宏把整个 Singleton 模式封装起来,无论是类的定义还是类的使用的极其简单。

      资源下载地址:https://ldcsaa.googlecode.com/files/high_pfm_socket_server_and_client-2.0.1.zip (源代码在 Common/Src/Singleton.h 文件中)

    6、《C++ 封装私有堆(Private Heap)

      摘要:Private Heap 是 Windows 提供的一种内存内存机制,对于那些需要频繁分配和释放动态内存的应用程序来说,Private Heap 是提高应用程序性能的一大法宝,使用它能降低 new / malloc 的调用排队竞争以及内存空洞。

      资源下载地址:https://ldcsaa.googlecode.com/files/high_pfm_socket_server_and_client-2.0.1.zip (源代码在 Common/Src/PrivateHeap.h 文件中)

    7、《基于 crt debug 实现的 Windows 程序内存泄漏检测工具

      摘要:Windows 程序内存泄漏检测是一项十分重要的工作,基于 GUI 的应用程序通常在调试结束时也有内存泄漏报告,但这个报告的信息不全面,不能定位到产生泄漏的具体行号。其实自己实现一个内存泄漏检测工具是一件非常简单的事情,但看过网上写的很多例子,普遍存在两种问题:

      • 要么考虑不周全,一种环境下能用,而在另外一种环境下却不能很好工作,或者漏洞报告的输出方式不合理。
      • 要么过于保守,例如:完全没有必要在 _malloc_dbg() 和 _free_dbg() 的调用前后用 CriticalSection 进行保护(跟踪一下多线程环境下 new 和 malloc 的代码就会明白)。

      资源下载地址:https://ldcsaa.googlecode.com/files/high_pfm_socket_server_and_client-2.0.1.zip (源代码在 Common/Src/debug/win32_crtdbg.h 文件中)


    Java

    1、《Portal-Basic Java Web 应用开发框架 v3.0.1 正式发布(源码、示例及文档)

      摘要:Portal-Basic Java Web应用开发框架(简称 Portal-Basic)是一套功能完备的高性能Full-Stack Web应用开发框架,内置稳定高效的MVC基础架构和DAO框架(已内置Hibernate、MyBatis和JDBC支持),集成 Action拦截、Form Bean / Dao Bean / Spring Bean装配、国际化、文件上传下载和缓存等基础Web应用组件,提供高度灵活的纯 Jsp/Servlet API 编程模型,完美整合 Spring,支持Action Convention“零配置”,能快速开发传统风格和RESTful风格的Web应用程序,文档和代码清晰完善,非常容易学习。

      资源下载地址:http://code.google.com/p/portal-basic/downloads/list

    2、《用 Java 实现的日志切割清理工具(源代码下载)

      摘要:对于服务器的日常维护来说,日志清理是非常重要的事情,如果残留日志过多则严重浪费磁盘空间同时影响服务的性能。如果用手工方式进行清理,会花费太多时间,并且很多时候难以满足实际要求。例如:如何在每个星期六凌晨3点把超过2G大的日志文件进行切割,保留最新的100M日志记录?网上没有发现能满足本座要求的日志切割工具,因此花了一些闲暇时间自己写了一个。由于要在多个平台上使用,为了方便采用 Java 实现。本工具命名为 LogCutter,主要有以下特点:

      • 支持 Linux、Mac 和 Windows 等所有常见操作系统平台
      • 支持命令行交互式运行
      • 支持后台非交互式运行(Linux/MAC 下使用 daemon 进程实现,Windows 用系统 Service 实现)
      • 支持两种日志清理方式(删除日志文件或切割日志文件)
      • 支持对 GB18030、UTF-8、UTF-16LE、UTF-16BE 等常用日志文件类型进行切割(不会发生切掉半个字符的情况)
      • 高度可配置(程序执行周期、要删除的日志文件过期时间、要切割的日志文件阀值和保留大小等均可配置

      资源下载地址:http://ldcsaa.googlecode.com/files/LogCutter.zip

    3、《通用 Java 文件上传和下载组件的设计与实现

      摘要:文件上传和下载是 Web 应用中的一个常见功能,相信各位或多或少都曾写过这方面相关的代码。但本座看过不少人在实现上传或下载功能时总是不知不觉间与程序的业务逻辑纠缠在一起,因此,当其他地方要用到这些功能时则无可避免地 Copy / Pase,然后再进行修改。这样丑陋不堪的做法导致非常容易出错不说,更大的问题是严重浪费时间不断做重复类似的工作,这是本座绝不能容忍的。哎,人生苦短啊,浪费时间在这些重复工作身上实在是不值得,何不把这些时间省出来打几盘罗马或者踢一场球?为此,本座利用一些闲暇之时光编写了一个通用的文件上传和文件下载组件,实现方法纯粹是基于 JSP,没有太高的技术难度,总之老少咸宜 ^_^。现把设计的思路和实现的方法向各位娓娓道来,希望能起到抛砖引玉的效果,激发大家的创造性思维。

      资源下载地址:http://code.google.com/p/portal-basic/downloads/list (作为 Portal-Basic 第一部分,代码在 com.bruce.util.http 包中)

    4、《深度剖析:Java POJO Bean 对象与 Web Form 表单的自动装配

      摘要:时下很多 Web 框架 都实现了 Form 表单域与 Java 对象属性的自动装配功能,该功能确实非常有用,试想如果没这功能则势必到处冲积着 request.getParameter() 系列方法与类型转换方法的调用。重复代码量大,容易出错,同时又不美观,影响市容。现在的问题是,这些框架通过什么方法实现自动装配的?如果不用这些框架我们自己如何去实现呢?尤其对于那些纯 JSP/Servlet 应用,要是拥有自动装配功能该多好啊!本座深知各位之期盼,决定把自动装配的原理和实现方法娓娓道来。

      资源下载地址: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

     
    标签: c++javaweb程序设计socketTCP开发框架VC
    平时的开发如果我们能有些得心应手的开发工具,就好比是如虎添翼。会大大的提高我们的开发效率。Visual Studio 自不必说,通过此文,和大家回忆下除此之外的经典的开发工具,同时希望能把这些经典的工具介绍给新手,相信对平日的开发会有很大的帮助。

    Internet Explorer Developer Toolbar
    简介:微软发布了Internet Explorer Developer Toolbar最新版.该产品让开发人员能够深入探索和理解Web页面,帮助开发者更好地创建Web应用.安装后可以在IE中快速分析网页的软件.该工具条可集成在IE窗口,或以浮动窗口形式存在.

    IE Developer Toolbar特性如下:

    浏览和修改Web页的文档对象模型(DOM).通过多种技术方式定位、选定Web页上的特定元素.禁止或激活IE设置.查看HTML对象的类名、ID,以及类似链接路径、tab顺序、快捷键等细节.描绘表格、单元格、图片或选定标签的轮廓.显示图片象素、大小、路径、替代文字等.即时重定义浏览器窗口大小到800x600或自定义大小.清空浏览器缓存和cookie,被清除项可从所有对象或给定域中选择.直接访问关联W3C规范参考、IE开发组blog或其他来源.-显示设计时标尺,帮助对齐对象. .... 

    下载地址及相关资料:
    http://www.microsoft.com/downloads/details.aspx?FamilyID=e59c3964-672d-4511-bb3e-2d5e1db91038&DisplayLang=en#Overview

    HttpWatch
    简介:强大的网页数据分析工具。集成在Internet Explorer工具栏。包括网页摘要。Cookies管理。缓存管理。消息头发送/接受。字符查询。POST 数据和目录管理功能。报告输出。

    安装完HttpWatch后,就会在浏览器中找到他:

    主界面:
     
    下载地址:http://www.crsky.com/soft/3455.html

    使用介绍:http://www.cnblogs.com/mayingbao/archive/2007/11/30/978530.html

    Fiddler2

    简介:Fiddler2是一个网络调试代理,用来监测本地计算机和Internet之间所有的HTTP通讯。可以监测所有的HTTP通讯,设置断点,并且可以修改到进入到本地计算机的数据和从本地计算机出去的数据(就是可以伪造数据)。Fiddler包含一个JScript .NET 事件脚本子系统(event-based scripting subsystem),可以使用任何一种.Net语言扩展。该软件是免费的,支持多种浏览器,包括Internet Explorer,Mozilla Firefox,Opera和其它一些浏览器。

    从Fiddler官方网站上可以看见原版的英文介绍:http://www.fiddler2.com/fiddler2/
    下载地址:http://www.fiddler2.com/fiddler2/

    使用介绍:http://blog.csdn.net/lihongzhai/archive/2009/09/14/4551035.aspx

    NUnit 

    NUnit是一个单元测试框架,专门针对于。NET来写的.其实在前面有JUnit(Java),CPPUnit(C++),他们都是xUnit的一员。最初它是从JUnit而来。现在的版本是2.2.接下来我所用的都是基于这个版本。

    下载地址:http://www.nunit.org/index.php

    使用介绍:http://www.uml.org.cn/net/200702273.asp

    PowerDesigner

    简介:PowerDesigner是Sybase公司的CASE工具集,使用它可以方便地对管理信息系统进行分析设计,它几乎包括了数据库模型设计的全过程。
    利用PowerDesigner可以制作数据流程图、概念数据模型、物理数据模型,可以生成多种客户端开发工具的应用程序,还可为数据仓库制作结构模型,也能对团队设计模型进行控制。

    主要功能:DataArchitect:这是一个强大的数据库设计工具,使用DataArchitect 可利用实体-关系图为一个信息系统。创建"概念数据模型"-CDM(Conceptual Data Model)。并且可根据CDM 产生基于某一特定数据库管理系统(例如:Sybase System 11)的"物理数据模型"-PDM(Physical Data Model)。还可优化PDM,产生为特定DBMS 创建数据库的SQL 语句并可以文件形式存储以便在其他时刻运行这些SQL 语句创建数据库。另外,DataArchitect还可根据已存在的数据库反向生成
    PDM,CDM 及创建数据库的SQL脚本。
    ProcessAnalyst:这部分用于创建功能模型和数据流图,创建"处理层次关系"。
    AppModeler:为客户/服务器应用程序创建应用模型。
    ODBC Administrator:此部分用来管理系统的各种数据源。

    下载地址:http://www.baidu.com/s?tn=sitehao123&bs=PowerDesigner&f=3&wd=powerdesigner%CF%C2%D4%D8&oq=powerdesigner&rsp=0 :)

    使用介绍: http://www.cnblogs.com/yxonline/archive/2007/04.html 

     Reflector

    简介:Visual Studio内置的ILDASM成为最初挖掘程序集的上佳工具。但自从Reflector出现后,ILDASM相形见拙。因为,Reflector能提供更多的程序集信息。Reflector可以将.NET程序集中的中间语言反编译成C#或者Visual Basic代码。除了能将IL转换为C#或Visual Basic以外,Reflector还能够提供程序集中类及其成员的概要信息、提供查看程序集中IL的能力以及提供对第三方插件的支持。

    下载地址: /Files/gaoweipeng/Reflector.rar

    使用介绍及其他相关下载:http://www.cnblogs.com/zzy2740/archive/2005/09/20/240216.html

    1st JavaScript Editor

    简介: 1st JavaScript Editor 是一款强大的JavaScript开发、校验和调试工具,它简单易用,不论你是初学者或者是专业的开发人士,都可以轻松上手!同时它又是完美的Ajax (Asynchronous JavaScript and XML),CSS, HTML, DOM DHTML开发工具!它提供了简单而且实用的功能:丰富的代码编辑功能(JavaScript, HTML, CSS, VBScript, PHP ,ASP(Net)),语法高亮,内置预览功能,提供了完整的HTML 标记, HTML 属性, HTML 事件, JavaScript 事件和JavaScript 函数等完整的代码库,同时有着贴心的代码自动补全功能。

    官网及下载地址:http://yaldex.com/

    Regulator

    简介:使用Reglator可以方便的验证正则表达式的执行结果,带有智能感知功能。帮助文档是一个很好的学习正则的入门教程,也可以当作参考手册。基本上就全了,同时进行学习和实践。还有生成c# or vb.net代码等附加功能。 类似的软件现在很多:RegexBuddy ,RegexTester。等

     下载地址:http://sourceforge.net/projects/regulator/

     使用介绍:http://www.ctochina.net/topic/ShowArticle/112.html

     小结:上面的开发工具都是我平时喜欢用的,希望通过此文的介绍,对没有使用过的朋友带来帮助。也希望园子中的朋友们秀一秀自己平时常用的开发工具,分享些更实用,方便的开发工具!

      



        文章作者:高维鹏(Brian)
        文章出处:http://www.cnblogs.com/gaoweipeng 
        欢迎转载,转载时请注明出处。谢谢合作。

     
     
    分类: 随笔
  • 相关阅读:
    程序安装打包
    sql 2005 分页存储过程
    带线的无限级下拉树列表
    MapXtreme 2005 学习心得 概述(一)
    存储过程中用到的年,月,周的函数
    委托/事件/线程传参简单理解
    清除svn/vss小工具
    查看数据库连接数
    MapXtreme 2005 学习心得 使用WebTool工具(七)
    C#日期格式化
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2989889.html
Copyright © 2011-2022 走看看