勤哲Excel服务器设计系统原则_第1页
勤哲Excel服务器设计系统原则_第2页
勤哲Excel服务器设计系统原则_第3页
勤哲Excel服务器设计系统原则_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、勤哲 Excel 服务器设计系统原则在做软件系统设计时,不仅要考虑其功能性需求,还需要考虑非功能性需求,比如软件 的性能:可扩展性,系统的稳定性、部署和更新,可维护性,版本的管理,系统的安全,界 面的友好程度可用性等。勤哲软件公司基于这几种考虑,在 excel 的基础上开发了勤哲 Excel 服务器。勤哲 Excel 服务器设计原则一:大道至简,合适最好什么是优秀的系统设计 这个问题颇有争议, 但几乎每个软件工程师和架构师都追求优秀 的系统设计。当然,系统设计并不代表结果,系统设计只是架构师或者带头程序员的工作, 优秀的系统设计必须经由良好的项目管理和团队努力,经过分析需求、设计、开发、测试、

2、 分发、维护,以及迭代或重构的过程。中间哪个环节出了问题,再好的设计都将功亏一篑。勤哲公司选用了优良的软件设计团队,并且由公司CEO崔亚军的带领,制定了良好紧密的设计环节,保证了每个阶段的良好运作。可能每个人都对自己设计的系统很自信很满意, 但“实践是检验真理的唯一标准” 。如果 一个系统设计经过实践证明,大家( 指客户或用户 )公认为优秀的系统, 那就是一个优秀的系统设计。大道至简,适合的就是最好的。其实设计并没有那么严重,适合的就是最好的,简单最 好。软件也是一种服务, 这个系统设计出来就是为了服务一些用户还没有被满足的需求,如果你能够恰好满足了这些没有被满足的需求, 而且能以比较低的代价

3、提供这种服务, 那这就 是最好的系统。 因为系统设计的来源是商业需求, 而商业追求利益最大化。 你的软件和服务 必须比别人功能更加先进,更加好用,对变化的商业 需求反应更加灵活,推出或者升级的 速度更快, 开发和维护成本更低,才能证明这个系统设计的优秀性。所以系统简单,不能说 明你的系统不优秀, 说不定设计者有化繁为简的过人能力;系统复杂, 功能繁多, 也不能说 明系统优秀。所以,勤哲公司CEO崔亚军在开发勤哲 Excel服务器时候,基于软件化繁为简 的原则, 将此款软件系统设计简单, 主要是为了让用户便于操作。 这加快了用户对软件的掌 握速度,被众多企业而接受。技术人员常常犯的错误是技术至上

4、,技术第一,不计成本的去设计和开发无比先进和灵 活的系统, 不计风险的去采用最新的没经过实用的新技术。 所以作为架构师, 不仅仅需要精 通技术, 更需要良好的沟通协调, 去了解业务和客户真正的需求, 真正站在客户利益角度和 最终用户利益角度思考问题和设计系统,在各种选择中做出权衡。勤哲软件在设计原则上, 本着用户需求为第一目标, 研究和开发了各种企业需求的功能, 从而使得软件的实用性很强。勤哲 Excel 服务器在设计系统时,本着不要为了考虑程序的可扩展性,把目前不需要的 功能加入到软件中来的。 不要过度设计。 抓住重点, 合适就好原则。 比如根据二八原则, 80% 的用户只会使用 20%的功

5、能,而这 20%的功能就是客户最关注的最需要的功能,也就是软件 或服务的“卖点 “,系统设计时必须集中精力和充分考虑到这部分需求。如果把精力放在某些花哨的功能上,既不重要,也没必要,那就是过度设计。要想避免过度设计,我觉得可以 遵循敏捷开发方式来做。尽可能的简单设计,当满足不了时,重构;保证产品是可运行的, 不断的加入新的特征;产品经常性的提交给客户使用。勤哲 Excel 服务器设计原则二:稳定压倒一切标题党的风格,但这个口号在社会上如此,系统设计上也是如此。系统的稳定性压倒一 切,即使牺牲性能,也要确保系统的稳定。即使扩展性不强,也要保持系统稳定。即使用户 界面不友好,也不要系统不稳定。为什

6、么用户这么关注稳定性由于人们日常的工作对系统依赖程度越来越多,因此系统必须可靠。举个例子,我想我们都玩过 CPU超频吧,频率高了确实挺爽,但如果一天死机几次, 正在干的活全部丢失, 你心里还会放心踏实的工作吗同样的道理, 一个网站如果不稳定, 经 常宕掉, 用户的信息和辛辛苦苦写的文章搞丢失, 还会有人上这个网站吗所以稳定性是系统 设计最重要的方面。但实施起来比说起来困难,有时候为了实现系统灵活的扩展性,导致系统架构不稳定; 也有时候为了实现高性能,导致系统不稳定。如何取舍和平衡,不同的需求,不 同的架构 师会做出不同的抉择。但个人认为稳定性放第一位,再先进灵活的框架,再牛的功能, 如果 不够

7、稳定,坚决不要没有充分测试匆忙上线。系统稳定性如果获得除了大量充分的测试以外,在设计上必须有针对可靠性的设计,基 本原则是在尽量保证各服务可靠的基础之上, 通过一个健壮的体系结构来确保系统能够在硬 件和软件出错的情况下依然平稳的运行。比如采用统一面向方面的框架,统一的异常处理、 错误隔离、报警、容错和恢复机制,考虑系统的冗余度,尽可能地避免单点故障,尽可能地 保证一个进程故障都不会引起系统的瘫痪, 同时也允许系统对部分服务做升级和维护而不影 响系统继续提供核心的服务等等。 总之, 系统可靠性是系统在给定的时间间隔及给定的环境 条件下,按设计要求,成功地运行程序的概率。成功地运行不仅要保证系统能

8、正确地运行, 满足功能需求,还要求当系统出现意外故障时能够尽快恢复正常运行,数据不受破坏。勤哲 Excel 服务器软件良好抓住了此项原则,着重了软件运营的稳定性,这也是勤哲软 件得到众多用户亲睐的原因之一。勤哲 Excel 服务器设计原则三:可扩展性,灵活性 毋庸置疑,一个先进的系统设计具有很强的可扩展性和灵活性,因为现在的商业需求变 化迅速, 如果每次小小变化都导致大量系统改动的话, 这样的体系结构无疑是失败的。 所以 架构师必须去主动迎接未来可能的变化, 设计灵活的可扩展的架构。 但具体系统的可扩展性 做到哪个程度,以及和其他设计指标的权衡利弊如何取舍是个问题。比如具体灵活到哪个程度的问题

9、,是要实现对各个组件的无依赖性,是要实现对具体数 据库 (File/XML/SQL Server/Oracle/DB2) 的无依赖性, 还是要实现对具体操作系统 (Windows, Linux, OS2, AIX) 的无依赖性灵活程度不一样,设计要求和设计方法不一样。架构设计必须尽量封装可能的变化,例如在业务流程发生有限的变化时(比如每个业务 模块本身的业务逻辑没有变的情况下) ,能够比较方便地修改系统程序模块或组件间的调用 关系而实现新的需求; 如果这种调用关系被设计成存储在配置库的数据字典里, 则连程序代 码都不用修改, 只需修改数据字典里的模块或组件调用规则即可。 这就是按需设计, 不是

10、过 度设计。设计指标的权衡利弊如何取舍的问题也很明显,比如降低依赖性常用的方法是封装变化 (Wrapper) ,分层设计,但会带来系统的性能下降,尤其是大数据量的情况下;引入缓存机 制吧又会增加系统复杂性, 降低系统稳定性等。 因为过于复杂的设计既造成系统不稳定的隐 患,又影响性能。这方面的讨论很多,个人认为可扩展性和灵活性设计是架构设计中非常重要的方面,但 不能过度。 稳定性第一, 接下来是灵活性第二,还是性能第二灵活性第三的问题, 要具体看 需求的情况了。 如果是一个实时大数据量大用户在线服务系统, 应该在性能的前提下实现灵 活;如果是一个其他的业务系统,灵活性优先于性能。具体情况要具体权

11、衡利弊。勤哲 Excel 服务器是一款平台软件,用户可根据企业需要设计模板,所以软件的扩展性 和灵活性强。勤哲 Excel 服务器设计原则四:高性能 在进行性能设计时,首先要与客户充分地沟通,了解客户的性能需求,不管它是清晰的 还是暗含的。 不要等到项目后期才发现其实数据量是 60 万而不是 10 万。所以预先了解项目 的性能指标,获取与性能相关的数据,从而预先评估架构的性能指标非常重要。勤哲 Excel 在设计之初,做了很多相关数据调查,了解了用户需求,从而开发了软件。勤哲 Excel 服务器设计原则五:可用性,用户友好性。设计以人为本,到头来还是给人用的。产品经理、客户和最终用户很注重界面

12、,他们不 知道你的系统有多么先进,只看界面是不是美观,界面友好,标准,操作流畅,有良好的用 户体验。界面做好了,客户满意,你就成功了一半;否则内部系统再先进,客户都会认为这 个系统非常糟糕,用户体验非常不好。因此,可用性设计在这个的时代尤其重要。针对可用性的设计应该由架构师、用户体验设计师共同完成。可用性设计不等于界面设 计。界面设计是静态的, 而可用性设计是以用户为中心的交互设计, 更关注用户的行为和体 验。交互设计需要研究角色模型,用户行为和上下文,数据整合和呈现方式等。一个成功的 可用性设计 / 用户体验设计需要一个或多个跨学科的设计师,倾听和收集用户对系统使用的 需求、体验或不满,并进

13、行艺术化的设计。例如一个失败的网站,内容繁杂,让客户无所适从;搜索了一个内容,出来一堆东西, 用户想在这里面进一步搜索,却找不到这个功能。而良好的网站设计,用户操作非常流畅, 流程很容易让用户理解。 简洁明了, 没有乱七八糟的东西干扰用户。 因为后者仔细研究过用 户交互模型, 知道大多数用户的操作习惯和困难, 而网站内容是根据清晰的流程设计的。 数 据的呈现方式也是经过整合的,不是所有数据都呈现给用户,而是呈现对用户有用的数据。勤哲 Excel 服务器设计原则六:可维护性,可管理性可维护性包括代码的可理解性,可测试性,可修改性和系统的可移植性。如果一个系统 的可维护性从最初没有得到很好的重视,

14、 当系统面临重大的设计改动时, 会发现几乎无法入 手,最简单的方法是彻底推翻重写,于是造成大量的资源浪费。具体来说,软件系统可维护性差的原因有:1. 过于僵硬 : 加入一个新性能, 不仅仅意味着建造一个独立的模块, 而且因为这个新性 能会波及很多其他的模块,最好变成跨越几个模块的改动。2. 过于脆弱 : 对一个地方的修改, 往往会导致看上去没什么关系的另外一个地方发生故 障。尽管在修改之前,设计师会尽力预测可能的故障点, 当是修改完成之前,系统的原始设 计师们甚至都无法预测到可能会波及的地方。3. 复用率低 : 每当程序员发现一段代码、 函数、 模块所做的事情是可以在新的模块、 或 者新系统中

15、使用的是, 他们总是发现, 这些已有的代码依赖于一堆其他的东西, 以至于很难 将它们分开。最好他们发现最好的办法就是不去“碰”这些已有的东西,而是重新写自己的 代码。他们可能会使用源代码拷贝的办法,以最原始的复用方式,节省一些时间。4. 黏度过高 : 有的时候,一个改动可以以保存原始设计意图和原始设计框架的方式进 行,也可以以破坏原始意图和框架的方式进行。 一个系统设计, 如果总是使得第二种办法比 第一种办法容易,就叫黏度过高。5. 系统过于复杂:系统过于复杂和庞大, 结构不尽合理, 设计文档缺乏或没有更新,系 统年龄大时间久远。勤哲 Excel 服务器在设计时,可维护性设计采用灵活架构,采用复用的设计方法,尽量 减少相互之间的依赖项,尽量采用成熟的工业应用级的产品和框架,采用代码审查机制等。 传统软件工程用可理解性、可测试性和可修改性来衡量软件的可维护性。勤哲公司的 Excel 服务器软件工程则以考察可重用性来衡量可维护性。 可维护性最直接的体现是良好的软件结 构和完整正确的文档体系。维护应在文档级以上展开 ,应从软件结构出发 , 即以重构为核心。 可重用性是可维护性的基本属性, 最大限度地重用现存软件是软件维护方法学的重要思想原 则。运行可管理性,包括运维对系统软硬件各个部分的监控,以便于控制系统运行、监视系 统状态、错误处理。 为了实现上述目标, 系统

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论