- 博客(32)
- 资源 (56)
- 收藏
- 关注
原创 向架构师进军-->可重用架构资源
软件架构有三个主要来源:拿取、方法以及直觉。拿取也就是可重用资源。对于一个标准的系统而言,可能包含80%的拿取、19%的方法和1%的直觉。而崭新的系统则包含30%的拿取、50%的方法和20%的直觉。由此可见,拿取在软件架构中的重要性,本节我来带领大家了解可重用架构资源。一个可重用资源可以代表一个可重用需求(在不同系统里反复出现的需求)、可重用的解决方案元素(一个架构模式或者可重用代码)、可重用测试、可重用的方法等。可重用资源减少了架构师必须关注的事情的数量,使他们不必再做无用功,因此可重用资源会对项目的时
2014-05-17 23:08:00 2734
原创 思考力——提升企业竞争力的核心因素
· 思考力就是竞争力:在这个科技飞跃进步的时代,很多事物是我们未曾经历也难以预料的。要想成为卓越的经理人或是领导者,我们必须强化自己的思考力,理性而巧妙地解决我们面临的问题· 用力思考,不如用正确的方法思考:很少有人正襟危坐地学习如何思考,许多人的思考方式都是来自孩提时无意间学到的模式和习惯。其实比较好的做法是,分析自己的思考方式,再循序渐进的改进· 思考力是能够增进决策效率的一门科学:只要改善自己的思考习惯,就能在作决策、解决问题和发现创意等各方面,有更杰出的表现。提升思考技巧,能够帮助你跨越只是蓝领
2014-05-17 22:58:22 1572
原创 向架构师进军--->系统架构设计基础知识
在讲解系统架构设计之前,有必要补充一下架构相关的概念,因此本博文主要讲述架构、架构师和架构设计等相关的概念以及关系。这是系统架构设计的基础,只有具备了此方面的知识之后,我们才能进一步了解架构师在软件开发过程中扮演的角色,架构师如何编写架构文档来满足不同利益相关者的需求等相关内容。现在我们通过定义的概念来了解架构设计中的一些相关术语。架构:架构是体现在它的组件中的一个系统的基本组织、它们彼此的关系、与环境的关系及指导它的设计和发展的原则。
2014-05-13 22:21:45 1273
原创 思考方式--SMART原则
万事开头于你目标的设定,如果开始走错了,那么后面的路将会更加的错误,甚至于更加的努力犯错就会越严重。目标已经成为我们工作与生活的一个重要问题,特别是对于现在如此竞争力大的社会中,如果目标选错了,后面的付出将会是白费功夫。人生一辈子不可能有太多的目标,不要轻易的随意的确定目标,不要随意抛弃目标,对待自己认真,社会才会对你认真。对于目标的确立,带团队也有非常重要的作用,你被下属定下的目标是否合适,以什么标准来确定目标是否正确?
2014-05-13 22:16:18 1547
原创 向架构师进军--->如何编写软件架构文档
有文档的架构有助于不同利益相关者之间进行有效的沟通。 有文档的架构可以提供追溯其他工作产品的上下文。 有文档的架构可以传达可供选择的架构解决方案。 有文档的架构有助于从一个现有架构转换到一个新架构计划的计划编制。 有文档的架构通常能通过识别组成架构的元素及它们之间的依赖性来帮助编制计划。 有文档的架构可以提醒架构师在其所作的某些决定背后的基本原理。 有文档的架构有助于识别哪些资源可重用以及可重用的时机。 有文档的架构有助于架构的评估。
2014-05-13 22:05:25 3314
原创 让创意更有黏性!
做软件开发的往往太过于关注技术、功能,千里马非要等到伯乐才能够展现吗?不然,这个时代人才过多,仅仅靠技术无法获得长足的进步,如何学会描述事情,如何学会处理事情,如何把一个功能通过你的展示,吸引别人的注意力,这是一个PM需要做到的。简约、意外、具体、可信、情感、故事
2014-05-13 22:01:45 1188
原创 eaby技术架构变迁
最近在infoq上面看到 ebay介绍其系统架构变迁以及系统设计分享方面的讲座,其中陈述了ebay从1995年到2006年之间系统架构的变化过程。从这里,我们可以学习到许多宝贵的经验来设计一个大容量,高并发,分布式的系统。 ebay的系统架构的变迁主要经历了4个阶段,下面一幅图展现了ebay系统架构变迁的时间表 在ebay的V1版本,ebay采用的是FREEBSD + APACHE + PERL +DGBM,这是一个比较原始的模型,而且相对比较简单,操作系统,应用服务器,web服务器 以及 数据库服
2014-05-12 23:44:01 1363
原创 应用系统之间数据传输的几种方式
随着近年来SOA(面向服务技术架构)的兴起,越来越多的应用系统开始进行分布式的设计和部署。系统由原来单一的技术架构变成面向服务的多系统架构。原来在一个系统之间可以完成的业务流程,通过多系统的之间多次交互来实现。这里不打算介绍如何进行SOA架构的设计,而是介绍一下应用系统之间如何进行数据的传输。 应用系统之间数据传输有三个要素:传输方式,传输协议,数据格式
2014-05-12 23:40:43 1873
原创 抓住幸运四原则--多图PPT
如果你对项目管理、系统架构有兴趣,请加微信订阅号“softjg”,加入这个PM、架构师的大家庭如果你对项目管理、系统架构有兴趣,请加微信订阅号“softjg”,加入这个PM、架构师的大家庭
2014-05-12 23:37:00 1038
原创 数据库架构的演变
最近看了很多公司架构的演变的文章,发现其中的基本思路和架构演变都很类似,这里也总结一下数据库架构的演变以及演变背后的思路。 单主机最开始网站一般都是由典型的LAMP架构演变而来的,一般都是一台linux主机,一台apache服务器,php执行环境以及mysql服务器,一般情况下,这些都在一台虚拟主机上,简称单主机模式。
2014-05-12 23:34:17 1024
原创 一个简单的跨库事务问题
近在做一个项目,其中一个方案涉及到跨库事务一致性问题,是一个简单的场景。这个项目是对老的业务进行性能提升,业务逻辑基本上保持不变。主要是在于新项目采用了分库分表的设计,从而提升了性能。考虑到项目发布之后可能存在风险,采取了新老系统的并行方案。这个系统的业务比较简单:接收来自外部的数据,然后对数据进行核对处理。为了保证新老系统能够并行,在接收数据的时候必须实现双写方案,从而导致了跨库事务的一致性问题。
2014-05-12 23:28:37 1264
原创 一个优美的架构需要考虑的几个问题
随着公司的架构逐步发展,越来越多的问题被提出来,也发现一个良好的技术架构需要考虑的问题 1 架构的可扩展性 这里面又包括以下几个方面 •水平垂直可拆分•服务无状态•数据可缓存•可异步处理(提高性能)•可复制(提高效率)•无单点设计
2014-05-12 23:26:19 1016
原创 铁道部新客票系统设计
如果你对项目管理、系统架构有兴趣,请加微信订阅号“softjg”,加入这个PM、架构师的大家庭 几天正好看到一条新闻 铁道部:新客票系统2015年建成 ,正好最近想整理和总结一下这几年的工作中的收获,正好可以借这个机会,尝试设计一下铁路客票系统,把自己所学全部用到这个系统中去,顺便也希望各位猿们拍砖,一起探讨一下设计,技术吗,讨论讨论总是有点收获的,总比一个人在那里看书好。非功
2014-05-11 14:13:00 1659
原创 详细介绍软件架构设计的三个维度
如果你对项目管理、系统架构有兴趣,请加微信订阅号“softjg”,加入这个PM、架构师的大家庭架构设计是一个非常大的话题,不管写几篇文章,接触到的始终只是冰山一角,更多的是实践中去体会。这篇文章主要介绍面向对象OO、面向方面AOP和面向服务SOA这三个要素在架构设计中的位置与作用。架构设计有三个维度,或者说是我们在考虑架构时需要思考三个方向。这三个维度分别为面向对象、面向方面、面向
2014-05-11 14:04:48 1276
原创 单代号网络图
如果你对项目管理、系统架构有兴趣,请加微信订阅号“softjg”,加入这个PM、架构师的大家庭 单代号网络图 是以节点及其编号表示工作,以箭线表示工作之间逻辑关系的网络图,并在节点中加注工作代号,名称和持续时间。用一个圆圈代表一项活动,并将活动名称写在圆圈中。箭线符号仅用来表示相关活动之间的顺序,不具有其他意义,因其活动只用一个符号就可代表,故称为单代号网络图。特点1.
2014-05-11 14:01:44 6331
原创 分库分表带来的完整性和一致性问题
在最近做的一个项目中,由于每天核算的数据量过于庞大,需要把数据库进行分库保存。当数据分散到各个库之后,带来的数据更新操作就会存在一个一致性和完整性的问题。下面是一个典型的场景假设目前存在三个物理库,现在有一个文件,里面有1W条数据,根据分库的规则,可以把文件里面的数据分到三个库中,现在需要保证这1W条数据要要完整的保存到这三个库里面,并且数据是一致性的,也就是说 三个库里面已导入的数据完全
2014-05-11 13:59:41 998
原创 软件架构设计箴言理解
1:软件中唯一不变的就是变化。在软件开发过程中需求是不停的变化,随着客户对系统的认识,和现有开发功能和软件的认识,也许以开始他提出的需求就是背离的。记得网上有一句笑话,师说需求变化的:程序员XX遭遇车祸成植物人,医生说活下来的希望只有万分之一,唤醒更为渺茫。可他的Lead和亲人没有放弃,他们根据XX工作如命的作风,每天都在他身边念:“XX,需求又改了,该干活了,你快来呀!”,奇迹终于发生了,XX醒来了,第一句话:“需求又改了在设计和架构中,凡事无绝对,作为架构师或者项目负责人你必须永远的清晰认识到没有
2014-05-11 13:56:49 1035
原创 设计高并发的电子商店
闲暇之余准备开发一套电子商店的网站,要求能够面对大数据量,高并发。我会将实现的全过程记录下来,并通过博客分享给大家,当然最后也会把这个电子商店网站免费开源,希望大家多多拍砖。我们的电子商店都准备实现哪些功能模块呢?
2014-05-11 13:54:04 1089
原创 双代号网络图
箭线图(ADM)法又称为双代号网络图法,箭线图法用箭线表示活动,活动之间用节点(称作“事件”)连接,只能表示结束——开始关系,每个活动必须用唯一的紧前事件和唯一的紧后事件描述;紧前事件编号要小于紧后事件编号;每一个事件必须有唯一的事件号。双代号网络图的组成
2014-05-11 13:50:11 12962
原创 从100PV到1亿级PV网站架构演变
一个网站就像一个人,存在一个从小到大的过程。养一个网站和养一个人一样,不同时期需要不同的方法,不同的方法下有共同的原则。本文结合我自已14年网站人的经历记录一些架构演变中的体会。1:积累是必不可少的架构师不是一天练成的。
2014-05-11 13:47:00 2013
原创 架构设计-业务逻辑层简述
如果你对项目管理、系统架构有兴趣,请加微信订阅号“softjg”,加入这个PM、架构师的大家庭业务逻辑层是专门处理软件业务需求的一层,处于数据库之上,服务层之下,完成一些列对Domain Object的CRUD,作为一组微服务提供给服务层来组织在暴露给表现层,如库存检查,用法合法性检查,订单创建。业务逻辑层包含领域对象模型,领域实体,业务规则,验证规则,
2014-05-11 13:34:26 932
原创 对.Net系统架构改造的一点经验和教训
在互联网行业,基于Unix/Linux的网站系统架构毫无疑问是当今主流的架构解决方案,这不仅仅是因为Linux本身足够的开放性,更因为围绕传统Unix/Linux社区有大量的成熟开源解决方案,覆盖了网站应用扩展的方方面面。我记得十几年前第一波互联网浪潮的时代,采用Windows平台ASP架构的大型网站是非常普及的,而如今采用Windows平台.net架构的大流量知名网站已经凤毛麟角了。很多采用Windows平台.net架构的大型网站都面临了架构上的扩展问题
2014-05-11 13:26:10 1147 1
原创 架构设计中服务层的简单理解
我的理解是服务层是处于我的应用程序业务层和表现层之间的应用程序边界,边界可能是很薄的一层类设计或者是分布式服务网络跃点。它是一个与技术无关的名词。由表现层直接调用,契约,执行命令(修改状态(CUD))或者是查询返回dto(数据迁移对象)(cms,命令-查询分离)。他对业务逻辑层接口很清楚,组织业务逻辑 微服务形成宏服务,适配表现层。
2014-05-04 23:30:34 1992
原创 架构师都要懂哪些知识
Web架构师究竟都要学些什么?具备哪些能力呢?先网上查查架构师的大概的定义,参见架构师修炼之道这篇文章,写的还不错,再查查公司招聘Web架构师的要求。 总结起来大概有下面几点技能要求:一、 架构师有优秀的编码能力,解决开发人员无法解决的难题。二、 架构师对系统的大数据容量高性能高并发高容错的网站有架构设计和开发经验。三、 架构师对操作系统、数据库、服务器各种软件使用的配置比较了解,比如Linux、Web负载均衡、反向代理、数据库集群、容灾等比较了解。四、 架构师对软件开发过程有清晰明确的认识,也就是
2014-05-04 23:27:01 7519
原创 一些软件设计的原则
以前本站向大家介绍过一些软件开发的原则,比如优质代码的十诫和Unix传奇(下篇)中所以说的UNIX的设计原则。相信大家从中能够从中学了解到一些设计原理方面的知识,正如我在《再谈“我是怎么招聘程序”》中所说的,一个好的程序员通常由其操作技能、知识水平,经验层力和能力四个方面组成。在这里想和大家说说设计中的一些原则,我认为这些东西属于长期经验总结出来的知识。这些原则,每一个程序员都应该了解。但是请不要教条主义,在使用的时候还是要多多考虑实际情况。其实,下面这些原则,不单单只是软件开发,可以推广到其它生产活动中,
2014-05-04 23:23:50 735
原创 架构设计--逻辑层 vs 物理层
Layer 和Tier都是层,但是他们所表现的含义不同,Tier指的是软件系统中物理上的软件和硬件,具体指部署在某服务器上,而Layer(逻辑层)指软件系统中完成特定功能的逻辑模块,逻辑概念。
2014-05-02 12:25:14 1893
原创 社会化海量数据采集爬虫框架搭建
如果你对项目管理、系统架构有兴趣,请加微信订阅号“softjg”,加入这个PM、架构师的大家庭随着BIG DATA大数据概念逐渐升温,如何搭建一个能够采集海量数据的架构体系摆在大家眼前。如何能够做到所见即所得的无阻拦式采集、如何快速把不规则页面结构化并存储、如何满足越来越多的数据采集还要在有限时间内采集。这篇文章结合我们自身项目经验谈一下。我们来看一下作为人是怎么获取网页数据的呢?
2014-05-02 12:00:37 2250
原创 面向设计原则理解
面向对象设计(OOD)核心原则让我的程序模块达到“高内聚低耦合”,这是来自于30年前兴起的结构化设计(structured Design),但是同样适用于我们的OOD。
2014-05-02 11:58:42 906
原创 职场中架构师面试,你会怎么回答?
最近参加了一次面试,应聘架构师的职位,不是很爽,倒不是因为问题本身,而是面试官的态度。面试基本的礼仪,握个手,自我介绍一下,是最基本的吧。感觉对方很傲慢,其实从这一刻起,这次面试已经结束。我不是什么狂人,也并非傲慢,但也是在这个行业摸爬滚打了十多年,最基本的尊重还是应该有的吧。面试是一个双向选择,企业选择个人,个人选择企业,地位是平等,脱离了这个前提,一切都是空谈。这少这个面试官的态度这个层面,已
2014-05-02 11:55:17 1549
原创 支撑5亿用户、1.5亿活跃用户的Twitter最新架构详解及相关实现
Twitter出道之初只是个奋斗在RoR上的小站点,而如今已拥有1.5亿的活跃用户,系统日传输tweet更多达4亿条,并已完成了以服务为核心的系统架构蜕变。Twitter如今在世界范围内已拥有1.5亿的活跃用户,为了给用户生成timeline(时间轴)需支撑30万QPS,其firehose每秒同样生成22MB数据。整个系统每天传输tweet 4亿条,并且只需要5分钟就可以让一条tweet从Lady Gaga手中呈现到她3100万粉丝的屏幕上。当下Twitter系统的规模及强大的吞吐量确实惹人艳羡,然而在出
2014-05-02 11:53:33 3233
原创 关键路径法
关键路径法(Critical Path Method, CPM)是一种基于数学计算的项目计划管理方法,是网络图计划方法的一种,属于肯定型的网络图。关键路径法将项目分解成为多个独立的活动并确定每个活动的工期,然后用逻辑关系(结束-开始、结束-结束、开始-开始和开始结束)将活动连接,从而能够计算项目的工期、各个活动时间特点(最早最晚时间、时差)等。在关键路径法的活动上加载资源后,还能够对项目的资源需求和分配进行分析。关键路径法是现代项目管理中最重要的一种分析工具。
2014-05-02 11:49:19 8472
CSS研究例子,有10个项目
2009-07-23
OWC图形报表,WEB
2009-07-23
AccessHelper类
2009-05-19
TCP连接方式的聊天系统C#
2009-05-17
实现桌面与winform文件互相拖拽
2009-05-17
一个很好看的flash图片切换工具
2009-05-16
Flash应用于winform的DLL下载
2009-05-16
Web项目三层架构Codesmith模板GreatqnTemplates
2009-05-16
SQLLite provice/city
2020-10-25
挣值分析详解以及案例说明
2014-04-20
从Winform各种空间中拖拽功能实现,并且有拖拽跟随影子
2010-05-17
可拖拽的资源管理器,已经做成了独立的项目
2010-05-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人