自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (1)
  • 收藏
  • 关注

原创 12306模型设计探讨

春节期间,无意中看到一篇文章,文章中讲到12306的业务复杂度远远比淘宝天猫这种电商网站要复杂。后来自己想想,也确实如此。所以,很想挑战一下12306这个系统的核心领域模型的设计。一般的电商网站,购买都是基于商品的概念,每个商品有一定量的库存,用户的购买行为是针对商品的。当用户发起购买行为时,系统只需要生成订单并对用户要购买的商品减库存即可。但是,12306就不是那么简单了,具体复杂在哪里,我下...

2016-04-28 14:10:01 293

原创 Dubbo与Zookeeper、SpringMVC整合

  互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的。现在核心业务抽取出来,作为独立的服务,使前端应用能更快速和稳定的响应。 第一:介绍Dubbo背景        大规模服务化之前,应用可能只是通过RMI或Hessian等工具,简单的暴露和引用远程服务,...

2016-03-18 16:31:24 142

原创 TCP/IP,http,socket,长连接,短连接

TCP/IP TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。 在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。 在传输层中有TCP协议与UDP协议。 在应用层有:TCP包括FTP、HTTP、TELNET、SMTP等协议                  UDP包括DNS、TFTP等协议 短连接 连接->传输数据->关闭连接 HTTP是无状...

2016-03-18 16:22:51 237

原创 机房流量问题总结分析

1【提出问题】【实际案例一】凌晨3:00点某公司(网站业务)的一个IDC机房带宽流量突然从平时高峰期150M猛增至1000M,如下图: 该故障的影响:直接导致数百台服务器无法连接,该机房全部业务中断。 实际案例二】某年某月某日夜老男1孩接到学生紧急求助,公司网站(web游戏业务)平时几十M带宽,结果突然跑满100M,持续100M已经很久。事后,该学生的总结开头如下,...

2016-02-27 19:38:51 883

原创 传统it项目管理与互联网项目管理的一些区别

传统行业项目经理更加注重的是项目的整体的把控性,针对一个项目成立一个项目组,专职的进行项目需求管理、客户的沟通管理、项目方案的设计等等具体的工作,区向与强矩阵管理。对于而互联网公司的项目经理,更加是一种协调管理,互联网公司的软件版本更新快,一般都是采用小而快迭代的开发方式。针对项目的开发过程多为产品经理提出设计思路后,直接和开发敲定项目开发进度后由项目经理进行进度管理,基本上属于职能型管理模式...

2016-02-17 15:09:27 1230

原创 分布式数据库方案

第1章 引言随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。通过数据切分来提高网站性能,横向扩展数据层已经成为架构研发人员首选的方式。水平切分数据库:可以降低单台机器的负载,同时最大限度的降低了宕机造成的损失;负载均衡策略:可以降低单台机器的访...

2016-02-03 16:54:40 295

原创 MySQL的读写分离的几种选择

 MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 原址如下:http://heylinux.com/archives/1004.html Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过。但在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性...

2016-02-03 16:24:52 324

原创 移动互联网App客户端服务端通信安全问题。

作为一个移动互联网App,天生是需要和服务器通信的。那么,服务器如何识别客户端的身份?我们如何保证数据传输过程中的安全性?要靠两个东西:使用AppKey做身份识别,使用AppSecret校验数据。这两个东西的定义可以参考淘宝开放平台上这种比较严肃的说法:AppKey客户端调用API时的唯一标识,服务器通过App Key来鉴别应用的身份。调用API接口时必须传入的参数。App SecretApp ...

2016-01-20 12:13:53 485

原创 前后端分离开发部署模式

这周着手开始重新构建官网,OTA1.3V继续推进,目前分为了企业版,与国外版,老官网那套架构的代码经过几千人手的改动,于是索性干掉,采用新的架构模式(前后端分离开发部署模式),找到下面这篇文章我觉得说的挺好,在开始讨论这个话题之前我们先来认识一下传统的开发模式。一、传统开发模式相信很多做过Web开发童鞋应该都会经历这样一种开发模式,利用后端语言提供的模版引擎编写HTML/XML页面,比...

2015-12-12 11:10:33 915

原创 高并发 网站前期的技术准备(转)

高并发 网站前期的技术准备开了自己域名的博客,第一篇就得来个重磅一点的才对得起这4美金的域名。作为一个技术从业者十年,逛了十年发现有些知识东一榔头西一棒槌的得满世界 看个遍才整理出个头绪,那咱就系统点的从头一步一步的说,一个从日几千访问的小小网站,到日访问一两百万的小网站,怎么才能让它平滑的度过这个阶段,别在 技术上出现先天不足,写给一些技术人员,也写给不懂技术的创业者。...

2015-11-07 11:09:41 126

原创 Jenkins + Git + Maven + tomcat集成环境(转)

     折腾了好几天,终于吧Jenkins + Git + Maven + tomcat集成环境搭建起来了,最终主要实现“自动构建、部署”web应用。 1、安装环境    操作系统:Centos 6.5    JDK:1.7.x    Maven:3.1.x    Git: 1.7.1,自建GitLab平台    tomcat:7.x     上述宿主机...

2015-11-07 11:01:01 114

原创 迭代开发模式(9)需求变更的关键步骤--(转)

前面我们提到了需求变更。当客户提出了需求变更,经过与我们的需求人员的详细讨论与分析,最后确定下来了变更内容和修改方案。但这时草率地开始进行设计和开发是不正确的,它将成为项目后期的一个巨大的风险,一颗定时zhadan,为什么呢?我们来详细分析分析。每当发生需求变更的时候,不管是大是小,项目的许多因素都会相应地发生变化。首先发生变化的是工作量。每次的变更必然造成工作量的增加,到底增加了多少呢?我们...

2014-03-12 16:31:25 308

原创 迭代开发模式(8)从容的面对需求变更--(转)

前面我们已经详细描述了一次迭代式开发的完整过程,首先是项目计划的前期分析——工作量评估和优先级评估,然后是制订迭代式的项目计划,最后是按照项目计划执行项目。每天,运用Burn-Down Table监控项目进程,随时掌握项目进度的偏差(是滞后还是超前),然后制订相应的应对方案予以调整,直到最后的项目结束,一切似乎进行得比较顺利。但真实的情况往往不是这样,这里忽略了一个最重要的因素,那就是需求变更...

2014-03-12 16:30:41 198

原创 迭代开发模式(7),开始工作--(转)

我们经过以上一系列的分析,工作量评估与优先级评估,制订出一个迭代式的项目计划,再经过一系统用户确认与公司评审以后,终于可以开始我们真正的开发工作。其实,迭代式开发的执行过程,也就是制作和不断去关注与评估项目进度表的过程。因此,当项目进入执行开发过程时,项目经理应当首先制作项目进度表。现在我们看看项目进度表长得啥样儿。在一个项目进度表中,首先被纵向划分为三个区域:未开始任务区、正在进行任务区和已...

2014-03-12 16:30:16 127

原创 迭代模式项目计划(6)转

前面我们提到,当我们为软件分解工作项目,评估了工作量,确定了优先级。同时,整个项目的人员安排,也就是哪些人负责需求分析,哪些人负责设计,哪些人负责开发,哪些人负责测试,被确定下来,我们就可以制订我们的迭代式开发的项目计划了。迭代式开发的最重要的特点就是迭代,即将整个开发过程划分为数个迭代期,每个迭代期的时间长短并非完全一致,但却差别不大,这就是迭代周期。迭代周期的长短视项目情况而定,过短可能会...

2014-03-12 16:29:42 540

原创 迭代模式的最终总结(10)where you are?(转)

其实做一个项目经理真不是一个好的职业,它需要太多的千锤百炼才能修炼出来。这不仅需要反复经历“失败-总结-再失败”的轮回,而且需要有一颗无比坚强的心,能够在无数次经历无比艰难并且令人沮丧的时刻而能坚持不懈、毫不气馁。一个项目经理就像一位将军。将军百战死,而项目经理呢,经历无数项目以后沉淀下来的,更多的是疲惫与沧桑。 但凡一个好的项目经理都是要经过一次又一次项目失败的教训,似乎只有失败才能留给他们...

2014-03-12 16:29:20 137

原创 迭代开发模式(5)功能点的优先级的评估(转)

前面我们提到,迭代式开发最重要的两项前期分析就是工作量评估和优先级评估。工作量评估不仅能够确定整个项目的开发周期、成本预算,而且能够确定每项工作的开发周期,为工作的时间分配提供了依据。但是,如此多的工作,谁先做谁后做,如何安排它们的先后顺序,则是由工作优先级来决定的。迭代式开发的特点就是持续集成,也就是首先开发最重要、最基本的功能,而暂时忽略掉分支的、次要的功能。正因为如此,迭代式开发需求将优先...

2014-03-11 09:40:52 444

原创 迭代开发模式(4)工作量的评估(转)

当我问起无数人,什么是迭代式开发时,人们总是抛来一副不屑的神情:“迭代开发!这还不清楚?就是按迭代的方式进行开发嘛,开发过程采用持续集成的方式。”但我再详细询问怎么进行开发,甚至谈到如何制订计划,以及计划前的分析整理时,人们却投来诧异与迷茫的神情:“啊!迭代开发这么复杂呢?”所有对迭代式开发的实践与研究中,工作量评估往往是最令人头痛、最大的难题。当人们信心满满地决定尝试迭代开发时,工作量评估就让...

2014-03-11 09:36:48 440

原创 迭代开发的开始(3)-(转)

古人云:“运筹帷幄之中,决胜千里之外。”一次成功的软件开发,制订完善的项目计划是决定性的第一步,迭代式开发更是如此。前面我们提到,迭代式开发与传统开发方式差异不小,迭代式开发其过程更加复杂,协调各方协同工作的步骤也就更多。迭代式开发的特点就是迭代,在每个迭代期都包含需求分析、设计、开发、测试。因此,迭代式开发从一开始就要求开发中的各方人员,需求分析员、设计师、开发人员与测试人员,几乎同时开工。如...

2014-03-11 09:30:39 114

原创 如何进行迭代开发(2)(转)

前面我们提到了迭代式开发的巨大优势,它可以降低我们软件开发的巨大风险,它可以使我们把握用户的真正需求,它可以使我们从错误与偏差中及时纠正过来,那么我们应该如何进行迭代式开发呢?要回答这个问题,我们首先要弄清迭代式开发与传统的瀑布式开发的差别在哪里。1.需求分析的差别与传统的软件开发一样,迭代式开发同样需要与客户进行一个充分的需求分析。但与传统的软件开发不一样,迭代式开发不要求初期的需求分析是一...

2014-03-11 09:23:29 147

原创 迭代开发(1)(转载自fangang)

我们的软件开发存在巨大的风险,但问题到底出在哪里呢?这对于问题的解决至关重要。1. 我们在没有深刻理解业务需求的情况下就必须完成需求分析;2. 客户在没有弄明白自己的真正需求的情况下就被要求确定软件的业务需求;3. 我们在没有与客户再次沟通的情况下埋头苦干,直到完成开发并交付客户。既然问题出在这里,我们就可以制订我们的解决办法:1. 业务需求的分析不再是一蹴而就,而是贯穿软件开发的始终。一方面...

2014-03-11 09:16:38 87

原创 Webservice RPC风格 SOAP,REST风格 各之间的对比

webservice:上世纪90年代流行的分布式技术,如DCOM,CORBA,RMI,范式是RPC,但各系统数据类型不一致,实现/调用机制不同,各系统间互通不可能。XML的出现,让数据类型一致了,SOAP的出现,让各系统可以相互调用了。Simple Object Access Protocol的原意是XML-RPC,但人们很快就发现方法调用太狭隘,而消息传递更加通用。WSDL即支持rpc/enc...

2013-11-26 15:32:07 419

原创 oracle索引

一,oracle的索引陷阱一个表中有几百万条数据,对某个字段加了索引,但是查询时性能并没有什么提高,这主要可能是oracle的索引限制造成的。 oracle的索引有一些索引限制,在这些索引限制发生的情况下,即使已经加了索引,oracle还是会执行一次全表扫描,查询的性能不会比不加索引有所提高,反而可能由于数据库维护索引的系统开销造成性能更差。 下面是一些常见的索引限制问题。1、使用不等于操作...

2013-08-29 15:51:36 75

原创 25岁毕业,拿一万块钱月薪

25岁毕业,拿一万块钱月薪30岁,涨到一万五,期间无女盆友,吃10块钱盖饭,跟同学合租,挤2块钱地铁上下班,存钱25万31岁,啃老找父母要了35万块钱,买了50平米老房子一处,贷款90万,20年,月供6500。35岁0个月,认识一4分木耳,接盘玩腻的木耳结婚。35岁6个月,生了小孩,小孩眉宇间有高富帅的痕迹36岁,工资涨到2万,木耳要买驴牌,便宜儿子要喝进口奶粉,压力很大37岁,木耳说,人家的...

2013-05-13 17:42:07 114

原创 新项目经理必读:分析什么是项目经理

.项目经理的处境经过数年的打拼,怀着美好的向往,我们终于成了他——项目经理。然而,梦做到最真的时候,往往也是梦醒的时候。项目经理其实也是悲情人物。从“程序猿”到项目经理,可以说是刚出虎穴,又入狼窝。要知道,做一个合格的项目经理,比成为一个优秀的程序员,还要难得多。本来以为当上了项目经理,王子和公主从此就可以幸福的生活在一起了,没想到,跋涉的路才刚刚开始。我实在不想打碎这美好的梦想,...

2013-05-08 17:34:41 223

原创 关于程序猿,你不知道的15件事

1、程序员喜欢被称作码农,她们认为这样的称呼更接地气,但自我介绍一般都会说自己是工程师。2、码农要写代码、改BUG,即没时间出轨也没时间陪老婆。3、码农都有良好的职业素养,只要你苦恼地撑着头说:这个我不会,可不可以拜托你实现呢… … 旁边的码农就会千方百计的完成它。4、码农的智商优越感不可侵犯,觉得桌游都弱爆了,恨不得自己设计一个 0 BUG的专属游戏。5、码农一定舍得花1000元...

2013-05-08 17:07:22 75

原创 软件开发模式对比(瀑布、迭代、螺旋、敏捷) 转

1、瀑布模型是由W.W.Royce在1970年最初提出的软件开发模型, 瀑布式开发是一种老旧的计算机软件开发方法。瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求分析、设计、编码、集成、测试、维护的步骤顺序进行。步骤成果作为衡量进度的方法,例如需求规格,设计文档,测试计划和代码审阅等等。 瀑布式的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺导致对后期需求的变...

2013-05-08 16:43:52 80

原创 编程技能和做员工的技能——哪个更重要?

摘要:不管我们程序员如何认识这个问题,如果你想在给别人编程打工中获得事业成功,编程技能不是第一重要的。学会如何做一个好的员工才是重要的,甚至是非常重要的。从最最基本的层面上讲,每个员工都应该为最求两种基本的能力而奋斗,它们是:编程技能和做员工的技能。编程技能是指能写出好的,稳定的,有效率的,可维护的,以及所有其它褒义形容词能描绘的代码的能力。这些是程序员们喜欢花时间反复唠叨,讨论...

2012-09-18 11:57:27 57

原创 Apache Commons(转)

Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动。我选了一些比较常用的项目做简单介绍。文中用了很多网上现成的东西,我只是做了一个汇总整理。Commons BeanUtilshttp://jakarta.apache.org/commons/beanutils/index.html说明:针对Bean的一个工具集。...

2012-08-31 11:36:58 53

原创 Cron 常用表达式

Cron 常用表达式<SELECT NAME=""><OPTION value="0 * * * * ?" />每分钟执行一次</OPTION><OPTION value="0 0/5 * * * ?" />每隔5分钟执行一次</OPTION><OPTION val

2012-08-31 11:34:25 260

原创 httpSession的正确理解

httpSession的正确理解关于HttpSession的误解实在是太多了,本来是一个很简单的问题,怎会搞的如此的复杂呢?下面说说我的理解吧:一个session就是一系列某用户和服务器间的通讯。服务器有能力分辨出不同的用户。一个session的建立是从一个用户向服务器发第一个请求开始,而以用户显式结束或session超时为结束。其工作原理是这样的:1.当一个用户向服务...

2012-07-20 12:43:44 63

原创 高负载系统架构设计(转)

一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单,随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要...

2012-07-20 10:03:30 97

原创 如何在struts+spring+hibernate的框架下构建低耦合高内聚的软件(转)

问题的提出分析与决策1.       编写DAO的时候不要直接去使用hibernate或spring对hibernate的支持。现在我们在编写DAO的时候普遍都是直接继承spring对hibernate的封装类HibernateDaoSupport,然后使用该类提供的诸如等等。另外,在使用方法实现一些更复杂的h...

2012-07-20 10:03:04 75

原创 利用Session防止表单重复提交

为什么需要防止表单重复提交呢?重复提交不仅仅是验证的问题,有时候可能会出现重复执行业务逻辑。比如你买东西付款,如果不禁制重复提交,用户心急点两次,或者误操作点两次,结果扣两次钱,那这个网站还不得立刻死翘翘。重复提交更多的时候是为了安全来。-----:1)包含有Form表单得页面必须通过一个服务器程序动态生成,服务器程序为每次产生得页面中的form表单...

2012-07-20 10:01:43 63

原创 RedHat9.0下安装Oracle9i

1、创建用户和组: [roko@miniroko] su -   [root@miniroko]# groupadd oinstall [root@miniroko]# groupadd dba [root@miniroko]# useradd -g oinstall -G dba oracle [root@miniroko]# passwd oracle ...

2012-07-18 19:46:38 127

原创 精妙SQL

asc 按升序排列desc 按降序排列下列语句部分是Mssql语句,不可以在access中使用。SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)首先,简要介绍基础语句:...

2012-07-18 19:45:31 56

原创 如何减少数据库应用死锁

1.按同一顺序访问对象,如果所有并发执行的事务都按照同一个顺序访问对象,发生死锁的可能性就会降低2. 不要在事务中出现和用户交互,如果用户长时间不响应,则事务只要挂起3.尽量使事务短小简练,一个长事务执行的时间越长,其持有锁的时间也就会越长4.使用低的隔离级别...

2012-07-18 19:45:01 81

原创 程序员的10种级别

导读:   第一级:神人,天资过人而又是技术狂热者同时还拥有过人的商业头脑,   高瞻远瞩,技术过人,大器也。如丁磊,求伯君。      第二级:高人,有天赋,技术过人但没有过人的商业头脑,通常此类人不   是顶尖黑客就是技术总监之流。      第三级:牛人,技术精湛,熟悉行业知识,敢于创新,有自己的公司和软   件产品。   ...

2012-07-18 19:43:47 59

原创 (转)union/union all的用法

请看一下一个查询的问题  我有两张表  tab1         字段         aID         bID   tab2         字段         aID         bID  tab1中有记录:  aID    bID  as1    19  as2    19  as3    23  as4  ...

2012-07-18 19:42:59 145

原创 锁的用处及脏读、不可重复读和幻觉读的概念

锁就是防止其他事务访问指定的资源的手段。锁是实现并发控制的主要方法,是多个用户能够同时操纵同一个数据库中的数据而不发生数据不一致现象的重要保障。一般来说,锁可以防止脏读、不可重复读和幻觉读。脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到...

2012-07-16 19:35:16 90

jd-gui 反编译工具

jd-gui是一款反编译工具,目前来说就是为了方便查看java编译后的class文件源码

2014-12-23

空空如也

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

TA关注的人

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