自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

刘伟技术博客

专注软件架构、设计模式、重构、UML和OOAD!

原创 设计模式微课版来啦——《设计模式(第2版)》

设计模式微课版《设计模式(第2版)》已由清华大学出版社正式出版,本书应该是国内第一本带视频的设计模式图书,可以直接扫书中的二维码看视频哦! 本书特点: 实例驱动,深入讲解常用设计模式 内容全面,提供完整配套教学资源(有视频,有视频,有视频!!!) 学练结合,每章配有...

2019-03-07 22:57:52 6600 11

原创 十年磨一剑——《Java设计模式》正式出版

        十年磨一剑,《Java设计模式》于2018年3月正式出版,感谢清华大学出版社和各位的大力支持!笔者自认为该书是国内最好的Java设计模式图书之一!,低调!      本书内容丰富,实例完整,主要特点如下:● 内容丰富,详细讲解7个面向对象设计原则和24个常用设计模式● 实例驱动,提...

2018-03-18 17:07:48 13605 23

原创 《C#设计模式(第2版)》来袭——刘伟诚意之作

    《C#设计模式(第2版)》已正式出版,感谢清华大学出版社和各位的大力支持!      出版社: 清华大学出版社      书号:9787302485704            京东链接    当当链接          在新版中增加了不少设计模式练习题和综合模拟题,大家可以好好考查一下对...

2018-03-18 16:51:39 4633 7

原创 史上最全设计模式导学目录(完整版)

圣诞献礼!          2012年-2013年,Sunny在CSDN技术博客中陆续发表了100多篇与设计模式相关的文章,涵盖了七个面向对象设计原则和24个设计模式(23个GoF设计模式 +  简单工厂模式),为了方便大家学习,现将所有与设计模式学习相关文章的链接进行了整理,希望能给各位带来帮...

2013-12-24 23:15:16 309577 190

原创 《C#设计模式》PPT及源码分享

《C#设计模式》一书所有PPT及源码已上传至百度文库和百度云网盘,欢迎各位阅读与下载,如有意见和建议,请发送邮件至:weiliu_china@126.com或weiliu_china@163.com,。        PS:本人正准备编写一本关于C++设计模式的书,如果大家有好的基于C++的模式应...

2013-06-22 00:12:13 17805 10

原创 《设计模式的艺术——软件开发人员内功修炼之道》交流贴

《设计模式的艺术——软件开发人员内功修炼之道》一书正式出版发行,已在国内各大知名电子商务网站陆续上架。 当当网            亚马逊            京东网              在本书的作者简介和前言中,我都加上了CSDN技术博客的地址,如下图所示,,以供大家学习和讨论之需。这...

2013-01-07 17:55:20 12393 31

原创 如何培养软件工程人才——参加“第一届高等学校软件工程人才培养高峰论坛”有感

2012年12月8日-9日,第一届高等学校软件工程人才培养高峰论坛在广州召开,Sunny有幸受到主办方(“教育部软件工程专业教学指导分委员会”和“教育部示范性软件学院建设工作办公室”)的邀请,作了一个题为工程型软件人才设计能力的培养与提升——“设计模式”课程教学改革实践的报告。本次论坛由华南理工大...

2012-12-21 22:38:02 10678 11

原创 《设计模式》一书PPT浏览及下载地址

微博地址: http://weibo.com/csusunny          为了给大家浏览与下载提供方便,现将《设计模式》一书PPT的下载地址(百度文库)公布如下(可直接在线浏览,也可免费下载,):      第1章 统一建模语言基础知识 http://wenku.baidu.com/vie...

2012-08-13 23:36:23 27438 29

原创 历年软件设计师下午考试试题汇总统计(更新至2016年上半年)

本文对2006年5月至2013年5月【8年,15次】的软件设计师级别下午试题进行一个简单的汇总统计,希望对准备参加软考的朋友能有所帮助。     从2006年5月开始(尤其是从2010年5月开始),软件设计师级别的试题题型基本固定:       (1) 第一题为结构化分析与设计,主要考查数据流图D...

2012-05-15 23:34:56 34105 35

原创 浅谈程序员的数学修养

可能有很多朋友在网上看过Google公司早几年的招聘广告,它的第一题如下了:{first 10-digit prime found in consecutive digits e}.com,e中出现的连续的第一个10个数字组成的质数。据说当时这个试题在美国很多地铁的出站口都有大幅广告,只要正确解答...

2006-10-25 09:17:00 40843 92

转载 软件重构过程中的思维转换: 遗留代码如何变废为宝

“我开始收到各式各样的邮件,人们都表示‘天呐!我也是这样!’。”她说,“我开始去传播这条信息,告诉大家重新建构遗留代码这件事其实非常有价值,凭此来吸引合适的人。”编者注:Andrea Goulet是Corgibytes的首席执行官,她的公司专注于处理、改进并精简企业现有的代码库。        A...

2016-09-15 20:36:02 7552 9

原创 历年系统架构设计师考试之设计模式试题-2012年

2012年系统架构设计师考试下午试题中出现了一道25分的设计模式大题,上午仍旧是5道选择题,可以说是从2009年开考以来设计模式试题量最多的一年。Sunny友情建议:建议大家先做做这些试题,看是否能够正确解答,如果在解答的同时能够拿出具体的设计和实现方案,我相信一定会受益匪浅!

2014-03-17 22:11:51 17412 9

原创 【Eclipse AST】AST的修改

AST的修改主要包括三个方面的内容:修改节点、移动节点和创建节点。本文将通过一个综合实例来说明如何修改AST,并通过修改AST来修改源代码。

2014-03-07 20:04:19 12443 7

原创 【Eclipse AST】AST的创建

对于源代码优化过程而言,借助前文所介绍的AST访问与解析,可以自动查找出哪些地方需要优化,或者说能够发现优化或重构“时机”。接下来要做的就是采取相应的优化措施,在AST中创建节点(包括创建新的AST)或修改原有节点。本文将介绍如何创建一棵AST,以及通过AST来创建Java源代码。

2014-03-02 23:28:43 14092 4

原创 【Eclipse AST】AST的获取与访问

从本文开始将由浅入深向大家介绍AST的使用。Eclipse中的Eclipse JDT提供了一组访问和操作Java源代码的API,Eclipse AST是其中一个重要组成部分,它提供了AST、ASTParser、ASTNode、ASTVisitor等类,通过这些类可以获取、创建、访问和修改抽象语法树。

2014-02-10 23:47:17 26714 9

原创 软件工程研究领域最顶级的两个期刊

本文将向大家介绍软件工程研究领域最顶级(最牛X)的两个期刊,分别是IEEE Transactions on Software Engineering (TSE)和ACM Transactions on Software Engineering Methodology (TOSEM)。TSE和TOS...

2014-02-09 23:12:08 26746 17

原创 【Eclipse AST】AST与ASTView简介

要想自己设计并实现一个代码自动分析、优化和重构工具,得先理解代码;要想理解代码,得先用一个好的数据结构来存储和表示所读取的代码。基于程序代码本身的层次结构,用树状结构来表示是再好不过的了。抽象语法树(Abstract Syntax Tree, AST)使用树状结构来表示源代码的抽象语法结构,树上的...

2014-02-06 22:52:31 20170 11

原创 六种可定量分析的代码味道

传统的代码味道(Bad Smells in Code)识别主要依赖开发人员的经验,这将导致代码味道识别效率低,且容易漏掉很多代码味道。因此,设计和开发自动化的代码味道识别工具已成为软件工程研究的一个分支。国内外学者已经陆续提出了一些代码味道自动识别方法,其中有一类方法是基于软件度量和统计量的,可以...

2014-02-06 00:22:23 14543 9

原创 七款代码味道识别工具【简介】

代码味道识别工具 (Code Smell Detection Tools, CSDT)既可以应用于软件开发阶段,也可以应用于软件维护阶段。目前大部分IDE都集成了自动或者半自动重构工具,但是根据国外研究人员的调查发现,真正在软件开发和维护中使用重构工具的人并不多,其中有一个很重要的原因是不知道何时...

2014-01-18 23:50:19 26793 2

原创 【Java重构系列】重构31式之搬移方法

毋容置疑,搬移方法(Move Method)应该是最常用的重构手段之一,正因为太常用而且较为简单,以至于很多人并不认为它是一种很有价值的重构,但事实并非如此,在最初的代码诞生之后,有些方法可能会被放在一些不合适的地方,例如,一个方法被其他类使用比在它所在的类中的使用还要频繁或者一个方法本身就不应该...

2014-01-11 00:41:34 19819 10

原创 【Java重构系列】重构31式之封装集合

2009年,Sean Chambers在其博客中发表了31 Days of Refactoring: Useful refactoring techniques you have to know系列文章,每天发布一篇,介绍一种重构手段,连续发文31篇,故得名“重构三十一天:你应该掌握的重构手段”。...

2014-01-10 02:27:18 20190 8

转载 数据可视化:一张图胜过千言万语

本文转自:【云创存储】http://www.cstor.cn/textdetail_5768.html,特此说明!              信息爆炸时代,一组经过精心设计、形象生动的信息图往往要比一篇深度长文章更容易赢得眼球和青睐。在社交媒体上,你会发现,出色的可视化产品很容易就获得海量转发和分...

2014-01-08 22:07:26 12598 3

原创 Sunny谈重构

按照软件工程大神Martin Fowler的定义,重构就是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。这是重构的定义,简单来说就是不改变软件的功能,优化软件设计和代码,让软件更易于扩展和维护,当然也包括易于复用。

2013-12-31 00:51:29 9710 6

转载 对模式的十大误解

葛子昂译 这些日子,模式引起了大家强烈的兴趣,同时还伴随着一些迷惑、诧异和误解。这在一定程度上体现了主流软件开发人员认为这个领域有多么新,虽然从严格意义上说,它并不是一个新领域。这个领域的快速发展,也造成了一些空白。作为模式的倡导者,我们对此负有一定的责任:我们虽然一直努力让大家理解和接受模式([...

2013-12-29 22:06:51 11831 11

原创 创新教育实例之“三国人物关系模型”

最近与一位从事高校软件工程教育的同仁和挚友聊天,谈到如何提高学生的创新性思维,两人不免大肆吐槽一番,有谈到过目前高校教育体制、学校的培养方案等等等等,但是这些东东无论是作为我们老师还是学生,只有微不足道的建议权,没有任何决策权,而且有些东西根深蒂固,在短时间内根本无法解决。因此,我们只能从现实出发...

2013-12-21 22:29:08 6856 5

原创 Sunny谈软件架构

软件架构是软件工程一个很重要的分支,随着软件规模的扩大和软件寿命的延长,软件架构也越发重要。就像建筑领域,盖一个狗窝不需要进行分析与设计,但是如果是要盖一座万人体育场或者摩天大楼,那一定会离不开设计师。软件工程与之同理,好的架构能够决定软件的成败。软件架构不只是简单的分层或者划分模块,它包括更多的...

2013-12-19 23:11:44 7104 4

转载 一道关于高朋网(Groupon)的设计模式题(英文版)

Groupon has already been called the “fastest growing company in history” by the Forbes magazine. In it’s second full year of business, 2010,  it pull...

2013-12-18 23:05:31 4923 0

原创 Bug管理系统UML2.0建模实例(四)

3.3 顺序图(实现模型)       在系统设计与实现阶段我们也可以使用顺序图进行建模,此时通过顺序图可以明确表示系统设计中对象之间的交互,考虑到具体系统实现,对象之间通过方法调用传递消息。在BMS系统中,对每个用例均可以绘制基于实现模型的顺序图。由于篇幅关系,未将每个用例的顺序图一一列举。图3...

2013-12-16 23:15:48 7900 3

原创 Bug管理系统UML2.0建模实例(三)

3.系统设计       在对系统进行全面分析后,我们开始使用UML方法对系统进行设计,构造了BMS系统的设计模型,包括类图、包图、顺序图(实现模型)、组件图和部署图等的绘制,回答了“怎么做”的问题。具体设计工作如下: 3.1 体系结构设计       BMS采用多层Java EE设计方案,考虑到...

2013-12-16 23:12:15 8186 2

原创 Bug管理系统UML2.0建模实例(二)

2.3 BMS顺序图(需求模型)       在UML中,我们将顺序图分为两类,一类用于描述系统需求,构造系统的需求模型(分析模型);另一类用于指导设计与实现,构造系统的实现模型(设计模型)。       在系统分析时,可以通过顺序图来对执行者和系统的交互过程进行建模,方便用户更好地理解系统的工作...

2013-12-16 22:08:50 8890 2

原创 Bug管理系统UML2.0建模实例(一)

本实例是Sunny给企业做UML内训时所用教学实例之一,是一个较为完整的UML建模实例,可供大家学习参考之需! 1.项目概述       随着软件项目规模和复杂性的增大,有效跟踪和管理项目中存在的缺陷Bug变得越来越重要。每一个软件企业都需要妥善处理软件中的缺陷,这将直接关系到软件过程质量与软件产...

2013-12-16 21:47:28 13802 2

原创 您的鼓励,我的动力!(CSDN 2013年度博客之星评选)

亲爱的小伙伴们,大家好!很荣幸我能够成为CSDN 2013年度博客之星评选的候选人,希望继续得到大家的支持与鼓励,我定会继续努力!       投票地址:http://vote.blog.csdn.net/blogstaritem/blogstar2013/LoveLion            ...

2013-12-13 23:01:27 5153 41

转载 将会改变未来IT世界的十种编程语言

这里要说的都是革新,说这些的目的就是要保持关注最新技术。如果你是一个程序员,想要探寻未来技术,那这篇文章就是你的必读之选。我们这里列出了10种编程语言,10种将会改变IT世界工作方式的编程语言。这些语言已经在开始改变IT界的景象。看看吧: Dart语言       这种语言由谷歌制造,用来替代Ja...

2013-09-30 22:19:06 6125 8

转载 设计模式的局限性与适用性

《设计模式》的出版,是软件开发领域的一个关键转折点。设计模式理论的出现,让我们对软件的关注点,从如何在特定语言中实现最好的算法,提升为如何在特定环境下找到特定软件问题的最佳解决办法。这个转变不是一夜完成的,因为在这本书诞生前,软件模式运动已经进行多年。但这本书引领我们超越了在代码重用上的争议,上升...

2013-09-29 16:14:44 4846 2

转载 任何设计模式都只是工具

《设计模式》从诞生之日到现在,已经走过整整15年!每当触及这本书,我就会想到一件事。1997年,我用非常巧妙的方法解决了一个程序上的难题,于是兴冲冲地找到名满Java界的大师Doug Lea,不无得意地向他“讲解”我那“史无前例”的解决方案。哪知他只是淡淡一笑,告诉我这个方案在1995年出版的图书...

2013-09-26 23:54:49 4549 1

转载 要想深入理解设计模式,就必须究其细节

15年前,设计模式的经典之作《设计模式》出版之际,我在其封底写下了这样的评论:“这本书是对对象设计和开发实践者的重大贡献!你可有过为自己某个想法的命名冥思苦想的经历?这事的确令人苦恼。《设计模式》解决了这个问题,它归纳并组织了对象设计、创建和使用领域中已被证明行之有效的各种思想,组织出了一个清晰的...

2013-09-22 22:49:33 5497 7

转载 设计模式思想还远未广泛应用

1994年,在波特兰举行的OOPSLA(Object Oriented Programming, Systems, Languages and Applications)大会上,Addison-Wesley出版社展示了一本新书——《设计模式》。此后15年,它以各种语言在全球发行,成为总销量达50万...

2013-09-22 22:17:49 3968 2

原创 遍历聚合对象中的元素——迭代器模式(六)

6 迭代器模式总结       迭代器模式是一种使用频率非常高的设计模式,通过引入迭代器可以将数据的遍历功能从聚合对象中分离出来,聚合对象只负责存储数据,而遍历数据由迭代器来完成。由于很多编程语言的类库都已经实现了迭代器模式,因此在实际开发中,我们只需要直接使用Java、C#等语言已定义好的迭代器...

2013-08-15 23:44:16 9379 6

原创 遍历聚合对象中的元素——迭代器模式(五)

5 JDK内置迭代器       为了让开发人员能够更加方便地操作聚合对象,在Java、C#等编程语言中都提供了内置迭代器。在Java集合框架中,常用的List和Set等聚合类都继承(或实现)了java.util.Collection接口,在Collection接口中声明了如下方法(部分):pac...

2013-08-15 23:41:50 12888 8

原创 遍历聚合对象中的元素——迭代器模式(四)

4 使用内部类实现迭代器       在迭代器模式结构图中,我们可以看到具体迭代器类和具体聚合类之间存在双重关系,其中一个关系为关联关系,在具体迭代器中需要维持一个对具体聚合对象的引用,该关联关系的目的是访问存储在聚合对象中的数据,以便迭代器能够对这些数据进行遍历操作。       除了使用关联关...

2013-08-15 23:29:29 9162 9

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