自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (13)
  • 收藏
  • 关注

原创 [GO]使用 CSTD(Code Self Test Development) 技术方式处理 error

背景知识在以前使用 VC 开发代码时,微软提供了 ASSERT 和 VERIFY 宏,其在调试环境下能比较方便的发现问题。我基于此设计了 CSTD(Code Self Test Development) 和 API_VERIFY , COM_VERIFY 等宏帮助我开发了几乎 0bug 的 C/C++ 代码.在使用 go 语言开发时, 发现系统也是采用返回 error 的方式进行错误的处理, 而且不像 java, python 等使用异常。因此被戏称为 一半时间写代码,一半时间处理错误。Error

2024-01-29 21:44:28 902

原创 [GO]使用 Multi Part上传超过4G的大文件(全球首创)

go 使用 multi part 协议上传大文件(4G+)

2024-01-22 20:54:58 446

原创 华为商城秒杀时加密验证 device_data 的算法研究

华为商城秒杀 device_data 数据的加解密算法

2023-12-30 13:47:34 1214

原创 使用 curl multi interface 编写的高性能封装类和示例

libcurl multi interface 的简单封装和demo, 使用 MultiPart 的 POST 上传 600+文件, 仅耗时 4~6 秒

2023-01-17 21:42:49 498

原创 一次"Connection Reset"的根因和修改方式调查

在实际工作中遇到一次 Connection Reset 问题,确认了问题的根因和最佳修改方式,并编写了一些可以重用的检测工具

2018-11-21 20:43:14 28572 2

原创 开源:通用的日志分析工具(LogViewer)

工具介绍本工具最早是制作出来查看我的 FTL(Fast Trace Log) 二进制日志文件的, 后来因为去做Java后台,经常看 SpringBoot, Tomcat 等的日志, 就简单重构了一下, 从而支持通过正则来通用的分析日志.LogViewer一个通用的日志查看器. 可以通过用户配置的正则表达式解析文本格式的日志文件(如 Spring-Boot, Android, ...

2018-06-29 20:27:28 60257 10

原创 Java 线程池(ThreadPoolExecutor)的自动调整策略分析

前言: 最近分析Java源码,对Java的线程池有一些疑惑,特提出来,希望大家能一起讨论确认一下。Java提供了线程池, ThreadPoolExecutor 实现,可以在 corePoolSize 和 maximumPoolSize 中自动根据传入的任务数自动调整。注释中有这样一段话:If there are more than corePoolSize but less t

2018-01-16 22:13:07 2512 1

原创 最简单的调试学习Hadoop Examples的方法

本文介绍了直接在IDE(Idea中进行,但适用于Eclipse)中调试Hadoop Examples中的一个简单方法,能轻松通过调试示例的方式来学习其使用方式

2016-08-20 20:35:39 3579 3

原创 ssh免密码登录的最佳实践(Ubuntu 16.4 + CentOs 6 中验证通过)

本文介绍了通过命令行脚本,批量配置集群中大量机器的ssh免密码登录的配置方式

2016-08-17 22:47:27 1359

原创 命令行编辑XML的最佳实践(修改版xmlstarlet)

本文介绍了通过修改后的 xmlstarlet 来在shell脚本中直接修改 XML(增加复杂的子节点,属性等)

2016-08-15 23:35:11 4890 1

原创 搜索jar包(binary和sources)中的代码

背景介绍       有的时候, 我们调试运行一个带了很多 jar 包的Java程序时,通过日志等方式发现一些感兴趣的信息,但无法定位具体的代码位置。比如我在维护一个转交过来的老项目代码(原有开发者都找不到了。。。)时遇到如下情况:xwork中通过 Interceptor 进行了登录拦截,因为是使用debug服务器,在访问任何页面时都会提示验证登录失败,并输出验证失败的日志,但不清楚具体是哪个jar

2016-08-10 21:25:53 4903 1

原创 使用SWT+WinBuilder制作JavaDemo程序

(代码下载地址:http://download.csdn.net/detail/fishjam/9407273)最近在学习Java相关的知识,按照我学习的一贯做法,都是通过 UT + Demo 的方式来学习、测试和记录笔记。因此,希望能制作出一个比较容易增加测试项的GUI测试程序,方便测试各种学习点。通过学习研究,发现参照Eclipse 自带的 ControlExample SWT

2016-01-17 13:26:42 3714

原创 [Go语言学习]之一:搭建单元测试环境

简单介绍Go中的测试环境搭建方法,大家在学习Go语言时可以一边写笔记,一边进行测试,从而加强理解。

2013-07-03 21:20:54 2559 1

原创 服务程序性能优化之另辟蹊径

前言:    很久没写文章了,因为最近和朋友讨论问题时说到了性能优化这个话题,特将我之前解决一个linux下服务器性能问题的思路和方式共享一下。背景:    基本需求如下:在Linux下,有一台数据处理服务器,需要从网络上的很多节点获取信息,并按照管理员的要求进行分析和过滤,然后保存结果等待二次处理(从业务逻辑上,可以认为是网监部门从各位的QQ聊天中分析关键字,发现特别之处进行关注或请

2013-05-26 12:12:20 1344

原创 一个可以重用的线程安全生产者消费者队列类

生产者、消费者队列的代码和文档和例子,CSDN或别的网站上已经有很多了,我就不再多说了。不过一般的文档中给出的例子往往只是“例子”,要用于实际的项目开发中差的很远,共享一下我以前写的一个线程安全的生产者消费者队列类。具有如下特点:1.可以设置队列中的最大长度;        2.线程安全;       3.多线程想向队列中放入数据时,可设置等待队列有空位的超时时间,当有空位时,等待线程

2013-04-21 21:51:21 2110

原创 福利贴:使用线程池实现的Http上传下载实现

前段时间发布了《Windows下一个比较完美的线程池实现和示例》(http://download.csdn.net/detail/fishjam/5106672),根据下载量和评论来看,对大家还比较有用现在发布一个利用该线程池实现的Http上传下载实现,不过这几个类写的比较粗糙,个人觉得存在不少问题,尚需测试分析和重构:1.还有很多问题没有考虑或提供解决方案:

2013-03-17 15:51:47 1919

原创 在Exe和Dll之间共享变量

今天解决了我开发的FTL里面一个困扰我很久的Bug,把方法共享一下。首先说明:这不是用 pragma_data 设置的在多个 Exe 公用同一个DLL时,使用DLL中相同的变量,而是同一个进程的EXE和各个DLL之间共享变量。背景介绍:   FTL是本人参考ATL、WTL等开发的一个模版库,其中是我常用到的各种可重用的功能代码(比如日志、线程、线程池、流水线等)。因为全部都是头

2013-03-07 21:18:36 5009

原创 Windows下一个比较完美的线程池实现(更新)

1.  前言线程池不是一个新鲜的东西,网上能找到很多原理、实现,甚至很多库都提供了实现,比如微软的 ATL::CThreadPool, Vista后提供的CreateThreadpoolWork, boost 中提供的 thread_pool, CSDN、CodeProject 等网站上很多人已经实现的类。但这些库往往只支持启动任务,而不能很好地停止任务(相信很多人都会和我一样有这个需求),于

2013-03-03 23:45:07 24310 28

原创 DebugInfoFIlter -- DirectShow调试工具

下载地址为:http://download.csdn.net/detail/fishjam/48632021.  功能介绍DirectShow中用于调试的一个Inplace Transform Filter,具有如下功能:a.      当不起用其“Dump”功能时,对原始的Graph没有影响,但推荐只在调试时使用;b.      能列出并动态更改前后连接的Filter采用的M

2012-12-09 09:19:19 2048

原创 软件流水线--多核时代的高性能编程

1.  前言流水线技术是把一件任务分解为若干顺序执行的子任务,不同的子任务由不同的执行机构负责执行,而这些机构可以并行工作。在任一时刻,任一任务只占用其中一个执行机构,这样就可以实现多个任务的重叠执行,以提高工作效率。自从福特汽车在工业生产中引入了流水线后,流水线这一方式就广泛应用于各种生产环节中,大大提高了生产效率。对于IT人士来说,大家都知道Intel和AMD也在CPU中引入了流水线的

2012-04-05 22:47:50 8965 4

原创 C++实现的可以安全的暂停、继续、停止线程的封装类

在使用线程时,最麻烦的就是线程的同步控制,如暂停、继续、停止(包括暂停状态下)等。虽然微软提供了 SuspendThread、TerminateThread 等函数“似乎”可以完成这个功能,但如果你在代码里使用这些函数,则往往会遇到各种问题(比如SuspendThread时正好在CRT分配内存的锁中造成其他线程也跟着锁死,TerminateThread时资源未释放)等。本人经过试验和总结,

2012-04-04 16:15:39 7088

原创 COM学习的总结和测试程序

在学习COM的过程中,看了不少书,做了不少笔记,也做了不少测试。将COM相关的学习内容整理成一个VC工程,在工程中采用注释的方式记录笔记,并通过Dialog上的按钮来测试各种COM功能。现在将该程序共享出来,方便初学者的学习。简单介绍如下:  1. 程序结构:主要有三个工程,分别是一个ATL的COM组件、ATLCOMPs 、和一个做为客户端的MFC 的Dialog工程。   2.文

2012-03-27 22:52:15 1386 2

原创 兼容DC和兼容位图

昨天在论坛上看到有人因为绘图出现错误而求助,感觉其中对于兼容DC和兼容位图的问题,很多人(包括我)都不是很清楚,经常犯错误(比如画出来的图只有黑白二色),于是把之前的一些总结共享出来。兼容DC 和 兼容位图 概念和作用我就不再介绍了,网上一搜一大堆,主要将我用CPPUnit做单元测试的代码贴出来,大家就清楚了。 //总结:创建兼容位图时,★不能★使用才创建好的内存兼容DCvoid

2012-03-27 21:31:09 3161

原创 COM接口中的信息获取

大家都知道,作为客户端使用COM服务时,需要通过 QueryInterface 获取到组件支持的COM接口,然后再调用其提供的各种方法来完成功能。但各种COM服务都支持哪些接口呢?这个信息一般比较难直接获取到,通常是到处查找资料,参看人家的例子,然后自己再不停的做试验,效率非常低。在开发Visual Studio的插件过程中,也需要通过 IServiceProvider::QueryServi

2012-03-17 23:27:25 2554

原创 FTL中高性能的日志系统(CFFastTrace)

在软件的开发中,往往要用日志(比如 TRACE/ ATLTRACE 等)来跟踪程序的运行,方便查找错误,确认性能等。但过少的日志不容易定位问题,过多的日志又难以分析,而且一个程序中多个线程的日志又交接在一起,又难于分析,等等诸多问题。因此,我在FTL中使用了高性能的日志跟踪类 FastTrace,将各个线程的日志输出到单独的目的地(文件)中,查看时再使用专门的工具进行查看,并且可以按照日志

2012-03-05 22:03:31 1461

原创 编译器选项检测文件 -- ftlConfigDetect.h

在编译时,IDE中往往有各种设置,经常会因为各个项目之间的配置不兼容造成问题,而检查起来还比较麻烦。因此制作了对IDE的各种配置进行检查的 ftlConfigDetect.h 文件,只要在 stdafx.cpp 等文件中包含,就可以检测出当前的很多配置信息,并在 Output 窗口中输出来,方便检查配置情况。注意:由于很久没有更新了,可能有些项目不是最新的(比如不识别 VS 2010),需

2012-02-22 20:37:02 875

原创 FTL(Fishjam Template Library)简介

相信各位程序员在软件开发的过程中,为了方便学习和开发,大多都设计、实现或使用过各种Utility库。我也曾经将常用的代码开发成Dll形式的库,但后来发现维护起来实在太困难。主要的问题是使用时需要区分各种版本(Debug/Release, Unicode/ANSI,不同的Visual Studio版本,甚至其中使用的 CString 都区分 MFC/ATL/WTL 的等),在没有CI的情况下,个人维

2012-02-22 19:58:20 1699 2

原创 使用CSTD技术轻松编写0 Bug的代码

前言软件开发,在很多人的眼里是一件艰苦、困难的事情,在软件开发中发生诸多问题,如:1.“改一出两”或客户处发生但开发环境下不再现的Bug;2.客户“随心所欲”的更改要求,而现有的设计又无法满足。3.进行新项目开发时,由于没有一个好的通用架构,每次都要重新进行设计和实现,却无法在项目期限内获得高效、高质量的代码。以上等等诸多问题,使得开发人员经常加班却看不到多少效果,使得软件开发

2012-02-13 22:49:40 1734

原创 用于删除map中new出来的Key/Value 的PairDeleter

<br />  一般对于 vector/list/set 等中 new出来的数据,在最后都会用 for_each(begin(),end(), ObjectDelete()) 一类的写法进行删除,但对于map中new出来的数据,则没有比较方便的删除方法。写一个类似的 PairDeleter<br /> <br /> //使用 for_each 删除容器中保存的对象指针的类(结构) -- 参见 Effective STL 中的条款7 template <typename T> str

2011-01-08 19:01:00 1402

原创 扩展的find算法 -- find_nearest(查询最接近的数据)

通常使用需要快速查找定位的数据时,会通过 set/map 等保存数据,然后使用find等算法进行查找。但有时想查找的数据不能完全匹配,而是查找一个最接近的值(比如,在两个不同的数据结构中,想匹配出ID相同,且发生时间最接近的数据)时,STL没有提供可用的函数,一般的做法就是将数据全部遍历计算一遍,然后选取最接近的值。其算法复杂度为 O(n)。通过扩展,写出通用的模版算法 find_nearest 可以完成这个功能

2011-01-08 18:17:00 4474

原创 程序化的设计模式学习

编写了一个程序,将设计模式的学习信息采用程序的方式进行显示,并且可以方便的增加新的学习笔记。其程序界面主要分为四个部分:  1. 模式列表 -- 列出了常用的23个设计模式,通过单击,可以在其他部分显示详细信息;  2. UML 图示 -- 显示模式对应的UML图示;  3. 模式的说明信息或运行效果 -- 根据用户选择,显示以下两种内容(可以通过菜单“Option”切换显示内容)

2009-01-09 12:57:00 1531

原创 JavaScript调试的小工具(jsTrace)

前段时间写一个JavaScript的程序,根据用户鼠标的操作进行控件的拖放。感觉用 alter 或 断点跟踪调试的方法太难受了。就仿照MFC的TRACE功能写了如下的小代码(trace.js)。拥有的功能如下:  trace(str) : 在调试窗口输出信息;  traceObj(obj): 在调试窗口输出对象所有不为空的属性;  tracefmt(...): 按照用户定义的格式进行输出  t

2007-01-23 13:14:00 4855 2

Windows下比较完美线程池的升级版本

Windows下比较完美线程池的升级版,加入了我对线程池能想到的几乎所有功能,而且更改了第一版本的一些Bug,并进行了效率的优化。 第一版的介绍地址:http://blog.csdn.net/fishjam/article/details/8632049 功能列表如下: 1.能自动根据任务和线程的多少在 最小/最大 线程个数之间调整(Vista后的系统有 SetThreadpoolThreadMaximum 等函数有类似功能),现已支持动态改变最小、最大值。 2.可以设置等待Job的最大个数,并在加入Job时,队列满了的话,可以设置等待超时并根据返回值进一步处理 3.能方便的对任一任务进行取消,如任务尚未运行则由框架代码处理,如任务已经运行,则需要 JobBase 的子类根据 GetJobWaitType 的返回值进行处理 4.能对单个Job或整个线程池进行 暂停、继续、停止 处理 -- 需要 JobBase 的子类根据 GetJobWaitType 的返回值进行处理 5.支持回调方式的反馈通知( Progress/Error 等) 6.使用模版方式实现,能方便的进行参数传递 7.在加入任务时可以设置优先级,现已支持动态调整优先级 8.使用的是微软的基本API,能支持WinXP、Vista、Win7等各种操作系统(CreateThreadpoolWork 等只能在Vista后才能使用) 9.可以有多个实例,方便进行控制(QueueUserWorkItem 等是单实例) 10.采用的是对称模式的线程池(没有管理线程),运行成本低

2016-01-18

Windows下比较完美线程池的升级版

Windows下比较完美线程池的升级版,加入了我对线程池能想到的几乎所有功能,而且更改了第一版本的一些Bug,并进行了效率的优化。 功能列表如下: 1.能自动根据任务和线程的多少在 最小/最大 线程个数之间调整(Vista后的系统有 SetThreadpoolThreadMaximum 等函数有类似功能),现已支持动态改变最小、最大值。 2.能方便的对任一任务进行取消,如任务尚未运行则由框架代码处理,如任务已经运行,则需要 JobBase 的子类根据 GetJobWaitType 的返回值进行处理 3.能对单个Job或整个线程池进行 暂停、继续、停止 处理 -- 需要 JobBase 的子类根据 GetJobWaitType 的返回值进行处理 4.支持回调方式的反馈通知( Progress/Error 等) 5.使用模版方式实现,能方便的进行参数传递 6.在加入任务时可以设置优先级,现已支持动态调整优先级 7.使用的是微软的基本API,能支持WinXP、Vista、Win7等各种操作系统(CreateThreadpoolWork 等只能在Vista后才能使用) 8.可以有多个实例,方便进行控制(QueueUserWorkItem 等是单实例) 9.采用的是对称模式的线程池(没有管理线程),运行成本低

2016-01-18

使用SWT+WinBuilder制作的JavaDemo程序

通过学习研究,发现参照 Eclipse 自带的 ControlExample SWT 示例程序,并结合 WinBuilder可以很好的进行可视化开发出完全满足我要求的JavaDemo程序,方便演示效果和进行扩展,特共享出来。

2016-01-17

一个可以重用的线程安全生产者消费者队列类

生产者、消费者队列的代码和文档和例子,CSDN或别的网站上已经有很多了,我就不再多说了。不过一般的文档中给出的例子往往只是“例子”,要用于实际的项目开发中差的很远,共享一下我以前写的一个线程安全的生产者消费者队列类。具有如下特点: 1.可以设置队列中的最大长度; 2.线程安全; 3.多线程想向队列中放入数据时,可设置等待队列有空位的超时时间,当有空位时,等待线程会被唤醒并将数据加入队列。函数原型为:FTLThreadWaitType Append(const ELEMENT& element, DWORD dwTimeOut). 4.多线程从队列中取出数据时,可设置等待队列有数据的超时时间, 当有数据时等待线程会被唤醒。函数原型为:FTLThreadWaitType Remove(ELEMENT& element, DWORD dwTimeOut), 5.支持安全的退出,即如果在等待加入数据或取出数据时,能直接通过Stop唤醒。 6.支持动态改变队列大小 -- 但这个功能我测试的不是很多,可能有Bug,如发现有Bug请告诉我。 7.和我其他FTL中的类一样,支持模版。 本次就偷一下懒,只上传源码和UT代码,就不再写示例程序了。下载了源码以后需要自己对应更改一下(如果实在更改不来,可以给我回复信息,我有空时再写个Demo放上来)。 博客地址:http://blog.csdn.net/fishjam/article/details/8832145

2013-04-21

使用线程池实现的Http上传下载实现

福利贴: 前段时间发布了《Windows下一个比较完美的线程池实现和示例》(http://download.csdn.net/detail/fishjam/5106672),根据下载量和评论来看,对大家还比较有用。 现在发布一个利用该线程池实现的Http上传下载实现,不过这几个类写的比较粗糙,比如: 1.还有很多问题没有考虑或提供解决方案(本地磁盘已有同名下载文件的处理,理论上应该通过回调由用户选择处理); 2.也有很多我想加的东西(比如 身份验证、多线程下载同一个文件等)都没有加进去, 希望大家多多包含。另外如果大家发现有什么问题或好的建议,请及时告知。我。 PS:更改了我在博客中所说的,当以 Start(0, N) 启动线程池,可能造成 Wait 超时的Bug.

2013-03-17

Windows下一个比较完美的线程池实现和示例

Windows下一个比较完美的线程池实现和示例 本线程池提供了如下功能: 1.能根据任务个数和当前线程的多少在最小/最大线程个数之间自动调整(Vista后的系统有 SetThreadpoolThreadMaximum 等函数有类似功能); 2.能方便的对任一任务进行取消操作,无论该任务是等待运行状态还是正在运行状态都支持(相比较而言,WaitForThreadpoolWorkCallbacks 函数只能取消尚未运行的任务); 3.能对整个线程池进行安全的暂停、继续、停止处理 4.支持回调方式的反馈通知 5.使用模版方式实现,能方便的进行参数传递 6.在加入任务时可以设置优先级(目前尚不支持动态调整) 7.使用的是微软的基本API,能支持WinXP、Vista、Win7等各种操作系统(CreateThreadpoolWork 等只能在Vista后才能使用) 详细说明参见本人博客

2013-03-03

Debug Info Filter(二进制,非源码)

具体内容参见blog DirectShow中用于调试的一个Inpladce Transform Filter,具有如下功能: a.当不起用其“Dump”功能时,对原始的Graph没有影响,但推荐只在调试时使用; b.能列出并动态更改前后连接的Filter采用的MediaType(参见示例1); c.能将流过其中的指定数据按照结构化存储的方式Dump到指定文件中,方便分析(参见示例2),个人感觉比微软Sample中的Dump好用多了; d.能查看当前Graph中的各个Filter的详细信息,比如名字、MediaType、Allocator、支持的接口等(参见示例3)。这个可是好东西哦,当在使用一个Filter时,至少通过其提供的接口,猜到怎么用,及应该去查什么资料了。

2012-12-09

C++实现的可以安全的暂停、继续、停止线程的线程类和Sample

在使用线程时,最麻烦的就是线程的同步控制,如暂停、继续、停止(包括暂停状态下)等。虽然微软提供了 SuspendThread、TerminateThread 等函数“似乎”可以完成这个功能,但如果你在代码里使用这些函数,则往往会遇到各种问题(比如SuspendThread时正好在CRT分配内存的锁中造成其他线程也跟着锁死,TerminateThread时资源未释放)等。 本人经过试验和总结,整理出可以安全的进行暂停、继续、停止线程执行的一个线程类,能非常方便的对线程进行控制。 附件里是源码和Sample程序,并有详细的使用说明。

2012-04-04

COM学习笔记和测试程序2

之前在 http://download.csdn.net/detail/fishjam/4174884 共享了我学习COM的时做的测试程序和笔记, 结果有人下载以后说”包里只有程序而没有笔记“ 而且”不能运行“。 我在相关的博客文章中(http://blog.csdn.net/fishjam/article/details/7400954)也写的非常清楚,”采用一个COM知识分类一个★头文件★的方法,将各种COM知识的学习笔记记录在其中“,莫非没有doc文件就不叫笔记了? 何况还抓了图。。。 因为我没有找到修改上传文件的地方,因此采用0资源分的方式重新上传,让大家自由下载并评测是否真的没有价值。 补充说明: 1.因为csdn不能重复上传相同的文件,因此我将压缩文件的名字改了,不过内容仍然是以前那个; 2.编译环境是 VS2008 + SP1 , 没有装SP1的话我不知道会出现什么问题,如果有问题可以及时和我沟通并更改。

2012-03-28

COM学习笔记和测试程序

针对COM学习中记下的各种笔记和测试代码,方便学习各种COM知识。

2012-03-26

检测COM接口信息的源码和例子

通过简单的宏获取一个接口能提供的信息,比如能QueryInterface的接口,能通过QueryService提供的服务,容器希望接口提供的服务等。 比如,代码为: COM_VERIFY(spShellBrower.CoCreateInstance(CLSID_ShellDesktop)); //定义并创建 ShellDesktop 的实例 COM_DETECT_INTERFACE_FROM_REGISTER(spShellBrower); 输出为: f:\mywork\comdetectdemo\comdetectdemodlg.cpp(105) : Begin Detect Interface spShellBrower( 0x00162A00 ) From Register 1 : IUnknown 2 : IStorage 3 : IPersist 4 : IShellIcon 5 : IShellFolder 6 : IPersistFolder 7 : IPersistFolder2 8 : IItemNameLimits 9 : IShellFolder2 10 : IOleCommandTarget 11 : IObjectWithSite Total Check 10637 Interfaces spShellBrower's Interfaces Count are at least 11 可知 CLSID_ShellDesktop 至少提供了 11 个接口。 更多信息参见文档: http://blog.csdn.net/fishjam/article/details/7365322

2012-03-17

程序化的设计模式学习源码

将设计模式的学习信息采用程序的方式进行显示. 详细信息参见:http://blog.csdn.net/fishjam/article/details/3740114

2012-02-13

将设计模式的学习信息用C#程序展现

将23个设计模式的学习信息用C#程序展现,可以通过列表方式查看任何一个设计模式的详细信息,并能随时修改运行示例代码。具体信息参见 http://blog.csdn.net/fishjam/archive/2009/01/09/3740114.aspx

2009-01-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除