自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 探索并发编程(二)------写线程安全的Java代码

在写Java程序的时候,何时需要进行并发控制,关键在于判断这段程序或这个类是否是线程安全的。当多个线程访问一个类时,如果不用考虑这些线程在运行时环境下的调度和交替执行,并且不需要额外的同步,这个类的行为仍然是正确的,那么称这个类是线程安全的。我们设计类就是要在有潜在并发问题存在情况下,设计线程安全的类。线程安全的类可以通过以下手段来满足:不跨线程共享变量使状态变量为不可变的在任何访问状态变量的时候使用同步。每个共享的可变变量都需要由唯一一个确定的锁保护。满足线程安全的一些思路1)从源头避免并发问题很多开发者

2010-07-31 18:54:00 15636 17

原创 探索并发编程(一)------操作系统篇

在多线程、多处理器甚至是分布式环境的编程时代,并发是一个不可回避的问题,很多程序员一碰到并发二字头皮就发麻,也包括我。既然并发问题摆在面前一个到无法回避的坎,倒不如拥抱它,把它搞清楚,决心花一定的时间从操作系统底层原理到Java的基础编程再到分布式环境等几个方面深入探索并发问题。先就从原理开始吧。并发产生的原因虽然从直观效果上,处理器是并行处理多项任务,但本质上一个处理器在某个时间点只能处理一个任务,属于串行执行。在单处理器的情况下,并发问题源于多道程序设计系统的一个基本特性:进程的相对执行速度不可预测,它

2010-07-31 16:58:00 25959 12

原创 基于maven和hudson打造持续集成环境

<br />对持续集成的需求<br />对持续集成的需求主要来自项目过程的痛,在代码控制和管理方面我有以下几个方面的痛:环境时好时坏,开发人员对commit代码不够慎重缺乏一个统一集成的报告来反映项目质量各个方面各种代码检查工具运用门槛高无法量化开发人员的代码质量缺乏一种推进单元测试的有效手段<br />正因为有了上面的疼,让我想到了持续集成<br />持续集成原理和相应工具<br />持续集成的结构和原理由下图所示:<br /><br /> <br />说起来就一句话,持续集成就是用一套工具自动化地接管代

2010-07-28 21:29:00 14875 4

原创 架构师的行为准则(四)

原则大于个人口味很多架构师都有着丰富的经验和个人风格,以至于在平常工作中常以个人口味作为决策的依据,对于普通的开发人员也许是可行的,我们鼓励大家有个人特色,但架构师更应该依据原则办事,需要维护和遵守一套大家公认的原则,以此作为判断是非的工具从“可行走骨架”开始敏捷管理崇尚尽早集成,在架构设计这一块,这个原则也行之有效。架构师在开始阶段无需陷入某些难题或细节里,应该尽快地把各个核心模块串接起来,并能发动开发人员使其简单地运转起来,骨架一旦就绪,再进入健身环节。这样做的好处,一方面可以尽早消除大家之间的误解,也

2010-07-27 09:34:00 5847 2

原创 架构师的行为准则(三)

让开发人员自己做主架构师虽然需要为系统的设计负责,但无须包揽所有的设计工作,应该给予团队成员足够的自主权,让他们发挥自己的创意和能力,你的工作是确保大家的工作能很好的组合在一起,帮助他人解决棘手困难。当你发现同事遇到麻烦时,可以主动给出建议,但更可取的做法是创造良好的氛围,让大家主动向你征求意见。控制项目规模架构师要试图避免做那种“超大型”系统,因为这种系统往往难以控制,控制项目规模的办法通常有:抓住真正需求分而治之设置优先级尽快交付原则架构师不是演员,而是管家有些架构师误解了证明自己价值的含义,以为是炫耀

2010-07-25 23:56:00 6127 3

原创 架构师的行为准则(二)

先确保解决方案简单可用,再考虑通用性和复用性系统的复杂性往往是架构师基于通用性和复用性的设计而引入的,很多具体问题往往不需要通用性和复用性的解决方案。如果存在多个可实施方案难以取舍,先简单后通用原则可以成为最终的评判标准。架构师提供具体解决方案时,无需排斥通用和灵活,但是如果过早脱离具体情况,只会迷失在无限的可能性里,被复杂的配置选项、超负荷的参数列表、冗长罗嗦的接口,以及存在缺陷的抽象所淹没。先简单满足需求,当重复需求再次发生时,通过重构来达到复用是一种不错的方式架构师应该亲力亲为架构师干久了往往会脱离技

2010-07-25 20:11:00 7769 4

原创 架构师的行为准则(一)

最近看了一本书《软件架构师应该知道的97件事》,本来并没对它抱有太多期望和兴趣,毕竟这种讲大道理的书不可能带来什么实际收获,但看的过程中被里面中肯实在的建议给吸引,对于我这种在走向架构师这条路上常常迷失方向的人,实在是雪中送炭。读完后,决定选择其中对我有触动的条目,加上实际工作中的感悟,形成一套自认为正确的架构师行为准则吗,以此来矫正自己的行为。客户需求高于一切不要为了自己的项目经历上添加光彩而去一味追求时髦而光鲜的方案,而是应该扎根客户需求,脚踏实地地为客户着想,这样才能更体现技术的价值,不至于迷失方向简

2010-07-25 18:02:00 16641 11

原创 敏捷开发的45个好习惯

<br />今天把《高效程序员的45个习惯:敏捷开发修炼之道》翻了一遍,讲的基本是敏捷开发的一些原则,虽然没有焕然大悟的感觉,但定期来出来提醒自己一遍也不错,这些道理虽然简单易懂,但真正要在项目中实施起来还是很有挑战性的,一些成功的项目总结经验起来也无非出于这么些简单的原则:<br />   1. 做事 <br /> 2. 欲速则不达 <br /> 3. 对事不对人 <br /> 4. 排除万难,奋勇前进 <br /> 5. 跟踪变化 <br /> 6. 对团队投资 <br /> 7

2010-07-18 19:51:00 3943

原创 由操作系统的存储结构和CAP原则想到架构中的权衡

<br />架构实际上一种权衡的艺术,它的美往往体现在众多矛盾体间的周旋和则中。可以说,没有最好的架构,只有最合适的架构。<br />在一些经典的系统中常常存在多个矛盾因素并存的情况,而这些系统的经典架构就反映出如何解决这些矛盾而相克的因素的方案,比如操作系统的存储结构和分布式系统中CAP原则就是典型的例子。<br />1. 操作系统的存储要达到的目的有以下三个:快速存取大容量单位容量的低成本<br />而这三个目的是相互矛盾和牵制的,存取越快单位容量成本越高;容量越大,存取速度越慢;容量越大,价格越低。既

2010-07-18 14:22:00 3293

原创 阿里土话------记录职场经典语录

总是想要证明自己时,就没有了投入工作的心态你感觉不舒服的时候,就是成长的时候自得其乐是一种能力不要太把自己当回事,也别把自己太当回事与其怕失败,不如狠狠地失败一回不要总认为自己比别人聪明心中无敌,方能无敌于天下不要害怕把自己的弱点暴露给他人你自己觉得有,别人感觉不到你有,你就是没有别把沙子放大为绊脚石活力四射是激情,深水静流也是激情快乐和烦恼都是自己给的刚工作几年比谁更踏实,再过几年比谁更有激情不难,要你干嘛?不给失败找理由,要给成功找方向用勇气改变可以改变的事,用胸怀去接受不可改变的事,用智慧去分辨两者的

2010-07-12 20:05:00 10138 2

原创 构建高性能web之路------mysql读写分离实战

一个完整的mysql读写分离环境包括以下几个部分:应用程序clientdatabase proxydatabase集群在本次实战中,应用程序client基于c3p0连接后端的database proxy。database proxy负责管理client实际访问database的路由策略,采用开源框架amoeba。database集群采用mysql的master-slave的replication方案。整个环境的结构图如下所示:实战步骤与详解一.搭建mysql的master-slave环境1)分别在host1

2010-07-03 12:05:00 106718 14

Oracle 9i 10g编程艺术:深入数据库体系结构

Oracle 9i 10g编程艺术:深入数据库体系结构

2011-01-17

Pro HTML5 Programming

Pro HTML5 Programming

2011-01-17

Comet And Reverse Ajax

Comet And Reverse Ajax

2011-01-17

Lucene 3.0 原理与代码分析完整版

Lucene 3.0 原理与代码分析完整版

2011-01-17

Hibernate In Action(英文)

Hibernate In Action(英文).

2010-02-04

Java Development with Ant

Java Development with Ant

2010-02-04

OReilly - Creating Effective JavaHelp

OReilly - Creating Effective JavaHelp

2010-02-04

AJAX In Action

AJAX In Action,AJAX In Action

2010-02-04

Database Programming with JDBC and JAVA

Database Programming with JDBC and JAVA

2010-02-04

Data Structures and Algorithms In Java

Data Structures and Algorithms In Java

2010-02-04

Advanced Java Networking

Advanced Java Networking

2010-02-04

空空如也

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

TA关注的人

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