菜单

2017赌博网站开户送金关于系统规划条件回顾

2018年9月24日 - 2017赌博网站开户送金

     最近有人提问我
系统规划之规范,事实上无论今天各个技术栈怎么演化,那些本质之尺度和方式不会见换,
让我们回想一下 这些原则:

•分散关注 Separation of concerns. Divide your application into
distinct features with as little overlap in functionality as possible.
The important factor is minimization of interaction points to achieve
high cohesion and low coupling. However, separating functionality at
the wrong boundaries can result in high coupling and complexity
between features even though the contained functionality within a
feature does not significantly overlap.
不同世界的功用,应该由不同之代码和无限小重迭的模块组成。

•单一任务,功能强内聚 Single Responsibility principle. Each
component or module should be responsible for only a specific feature
or functionality, or aggregation of cohesive functionality.

•一个模块不待掌握其他一个模块的中间细节 Principle of Least Knowledge
(also known as the Law of Demeter or LoD).
A component or object
should not know about internal details of other components or
objects.

•Don’t repeat yourself (DRY). You should only need to specify
intent in one place. For example, in terms of application design,
specific functionality should be implemented in only one component;
the functionality should not be duplicated in any other component.

•不要过于设计过多模块 Minimize upfront design. Only design what is
necessary. In some cases, you may require upfront comprehensive design
and testing if the cost of development or a failure in the design is
very high. In other cases, especially for agile development, you can
avoid big design upfront (BDUF). If your application requirements are
unclear, or if there is a possibility of the design evolving over
time, avoid making a large design effort prematurely. This principle
is sometimes known as YAGNI (“You ain’t gonna need it”).

2017赌博网站开户送金 1

软件设计 中 SOLID原则

Simplicity (KISS)

     The most important principle is keeping things simple.
简单是软件设计的靶子,简单的代码占用时间不见,漏洞少,并且爱修改。Simplicity
should be your northern star, your compass, and your long-term
commitment. Keeping software simple is difficult because it is
inherently relative. There is no standardized measurement of
simplicity, so when you judge what is simpler, you need to first ask
yourself for whom and when. For example, is it simpler for you or for
your clients? Is it simpler for you to do now or maintain in the
future?

不如耦合原则(Minimize Coupling)

      
代码的旁一个片应压缩针对其他区域代码的依赖性关系。尽量不要使用共享参数。低耦合往往是到结构体系以及良好设计之表明

Designing for scale      Designing for scale is a difficult art, and each technique
described in this section comes with some costs. As an engineer, you
need to make careful tradeoffs between endless scalability and the
practicality of each solution. To make sure you do not over engineer
by preparing for scale that you will never need, you should first
carefully estimate the most realistic scalability needs of your system
and design accordingly.
Design for Self-Healing
    
The final design principle in this chapter is designing
software for high availability and self-healing. A system is
considered to be available as long as it performs its functions as
expected from the client’s perspective. It does not matter if the
system is experiencing internal partial failure as long as it does not
affect the behavior that clients depend on. In other words, you want
to make your system appear as if all of its components were
functioning perfectly even when things break and during maintenance
times.
Designing For Failure
    
Each application component must be deployed across redundant
cloud components, ideally with minimal or no common points of
failure
      Each application component must make no assumptions about the
underlying infrastructure—it must be able to adapt to changes in the
infrastructure without downtime
      Each application component should be partition tolerant—in other
words, it should be able to survive network latency (or loss of
communication) among the nodes that support that component
      Automation tools must be in place to orchestrate application
responses to failures or other changes in the infrastructure

有规划之履

Keep design patterns consistent within each layer. Within a
logical layer, where possible, the design of components should be
consistent for a particular operation. For example, if you choose to
use the Table Data Gateway pattern to create an object that acts as a
gateway to tables or views in a database, you should not include
another pattern such as Repository, which uses a different paradigm
for accessing data and initializing business entities. However, you
may need to use different patterns for tasks in a layer that have a
large variation in requirements, such as an application that contains
business transaction and reporting functionality.
Do not duplicate functionality within an application. There should
be only one component providing a specific functionality—this
functionality should not be duplicated in any other component. This
makes your components cohesive and makes it easier to optimize the
components if a specific feature or functionality changes. Duplication
of functionality within an application can make it difficult to
implement changes, decrease clarity, and introduce potential
inconsistencies.
Prefer composition to inheritance. Wherever possible, use
composition over inheritance when reusing functionality because
inheritance increases the dependency between parent and child classes,
thereby limiting the reuse of child classes. This also reduces the
inheritance hierarchies, which can become very difficult to deal
with.
Establish a coding style and naming convention for development.
Check to see if the organization has established coding style and
naming standards. If not, you should establish common standards. This
provides a consistent model that makes it easier for team members to
review code they did not write, which leads to better
maintainability.
Maintain system quality using automated QA techniques during
development.
Use unit testing and other automated Quality Analysis
techniques, such as dependency analysis and static code analysis,
during development. Define clear behavioral and performance metrics
for components and sub-systems, and use automated QA tools during the
build process to ensure that local design or implementation decisions
do not adversely affect the overall system quality.
Consider the operation of your application. Determine what metrics
and operational data are required by the IT infrastructure to ensure
the efficient deployment and operation of your application. Designing
your application’s components and sub-systems with a clear
understanding of their individual operational requirements will
significantly ease overall deployment and operation. Use automated QA
tools during development to ensure that the correct operational data
is provided by your application’s components and sub-systems.

当互联网系下发出的有的规范

1.避免单点故障:任何东西都如发出三三两两单。这多了本钱及复杂度,但可会以可用性和负载性能达到收入。而且,这有助于设计者采用同一栽分布式优先的盘算。可(异地)部署和左右路由于连接,破除单点故障;可分布,可调度的基准

2.横通往扩展,而无是纵向扩展:升级服务器(纵向)的工本是指数提高的,而充实其它一样玉商用服务器(横向)的本金是线性增长的。
3.尽量减少应用程序核心所需要就的工作。

4.API优先:将应用程序视为一个提供API的服务,而且,不使服务之客户端类型(手机使用、Web站点、桌面应用程序)。

5.资尽可能新的数码:用户或无需要及时看到最新的多寡,最终一致性可以拉动重新胜之可用性。
6.统筹时假如考虑保障及自动化:不要低估应用程序维护所要之岁月和工作量。软件首不善公开披露是一个值得称赞的里程碑,但为表明在真正的工作如果开始了。
7.啊故障做好准备:将故障对极用户的熏陶无与伦比小化。
8.数量反馈和督察平台;
用户作为数据,系统性能监控数据,系统很及工作相关数据等之反馈
9.数分级存储原则:单内存cache存储,内存cache+异步更新,内存cache+同步更新;
打三只纬度分析用户作为模型,决定有关数据的蕴藏策略:1),能经受用户数据的丢为?2),能忍受多少的免及时性吗?
3),数据的读写比例分布如何?
10.气象分离原则;
能够静态化尽量静态化,在代码和进程部署及,在DNS层上抓好气象分离之网规划准备
11.轻重分手原则;
保衔接和业务处理的分离,接入尽量轻量化,使得系统有着非常好的吞吐量,处理尽量异步化,使得可以平滑扩展
12.
清除服务因原则:同一IDC的另外服务对系的震慑,第三正值调用系统接口的隔离和过载保护,依赖第三在服务的督查与平安保安规则等。
13.柔性可用原则;
拍卖好异常情况下之灰度体验,区分好重大处理途径和未要路径,而系统规划而硬着头皮将要路径转换成为不重点路径
14.异步化,能异步的尽心异步原则;
由此内存管道,操作流水等技巧拓展拼接各个处理模块
15.灰度规格;
灰度发布政策是冲用户号码段,用户ip段,还是用户vip等级,用户所在城市等进行灰度升级,保证系统的坦迭代
16.深的迅速响应与一键切换原则;
IDC断电?系统切换至健康的资金是稍微?时间啊?需要几单人口操作?牛之系可一个总人口当管制后台按一个按钮就可以切换,再依一下即得切换回来
17.出危害服务标准化;
之所以没有本钱提供海量的服务规范
18.充分利用DNS层做好系统的而是分布设计
19.区区划网作为以及用户作为并分别开展统筹,甚至以关键时刻可以进行更换。
20.努力实现无状态:状态信息若保存在尽可能少的地方,而且要封存于特别规划之组件中。坚持app_server设计的无论状态统筹规范,转变用户作为为系统作为,使得app_server具有不管状态的特征
21.基本上级cache设计及各个cache的路由设计
22.“大系统小开”原则  
23.强业务型到终极一致性事务型的变换原则
24.尽可能拆分
25.劳务架构“去中心化”
26.数据化运营
27.尽可能使用成熟组件
28.尽可能自动化

科普web系统规划之有些主导标准:

可用性:
一个网站的常规运行时刻对于多企业之声望和运行都是重要的。对于片双重特别的在线零售站点,几分钟之莫可用都见面招致数千还是数百万美元之营收损失,因此系统规划得能持续服务,并且会迅速从故障中平复是技术与业务的卓绝基本要求。分布式系统中的高可用性需要精心考虑关键部件的冗余,从部分系统故障被迅速复原,以及问题发时优雅降级。
性能:
对于大多数站点而言,网站的属性都成一个要害的考虑要素。网站的速影响在用以及用户满意度,以及查找引擎排名,与营收和是否能够留下用户直接相关。因此,创建一个针对性速响应和没有顺延进行优化的体系十分重大。
可靠性:
系统必须是保险的,这样平等数量请求才见面一直返回相同之多少。数据易或更新后,同样的请虽当归新的数。用户应亮一点:如果东西写副了系统,或者取得存储,那么她会持久化并且肯定保持不更换以便将来进展搜寻。
然而扩展性:
对于其它大型分布式系统而言,大小(size)只是用考虑的圈(scale)问题之一个方面。同样关键之是尽力去增强处理又要命负荷的力量,这便给称作系统的而扩展性。可扩展性以体系的多多两样参数为参考:能够处理多少额外流量?增加存储容量有差不多善?能够处理多少再多之工作?
可管理性:
系统规划得容易运维是其他一个根本之考虑要素。系统的可管理性等价于运维(维护及换代)的可扩展性。对于可管理性需要考虑的是:问题发时好诊断和晓,便于更新或修改,系统运维起来何等简单(例如:常规运维是否不会见引发失败或深?)
成本:
成本是一个要因素。很显著这包硬件与软件成本,但为要是考虑系统部署和保障这一头。系统构建所消费的开发者时间,系统运转所要之运维工作量,以及培养工作且应考虑进去。成本是独具系统的到底财力。

留下来 就足以围绕 ISO 9126质型:软件质量型的6那个特点与27只子特性
来拓展系统规划及分析,度量, 他们是:

一、功能性:
1、适合性:提供了对应的效力
2、准确性:正确(用户用的)
3、互操作性:产品跟制品之间相数据的能力
4、保密安全性:允许通过授权的用户和体系能健康的顾相应的数量和消息,禁止未授权的用户访问…….
5、功能性的依从性:国际/国家/行业/企业 标准规范一致性

亚、可靠性:产品于规定的原则下,在确定之年月内完成规定职能的力量
1、成熟性:防止内部错误导致软件失效的力量
2、容错性:软件出现故障,自我处理能力
3、易恢复性:失效情况下之过来能力
4、可靠性的依从性

老三、易用性:在指定使用规则下,产品被了解、
学习、使用与吸引用户的力量
1、易理解性:
2、易学性:
3、易操作性:
4、吸引性:
5、易用性的依从性:

季、效率性:在确定台标准下,相对于所用资源的数,软件出品只是提供方便性的力量
1、时间特性:平均事务应时间,吞吐率,TPS(每秒事务数)
2、资源利用性:CPU 内存 磁盘 IO 网络带来宽 队列 共享内存
3、效率依从性:

五、软件维护性:”四规”,
在规定标准下,规定之时刻外,使用规定的家伙要措施修复规定职能的力量
1、易分析性:分析定位问题的难易程度
2、易改变性:软件出品而指定的修改好为实现的力量
3、稳定性:防止意外修改导致程序失效
4、易 测试性:使已经改软件会让确认的力量
5、维护性的依从性

六、软件可移植性:从平种环境迁移到其他一样种植环境之能力
1、适应性:适应不同平台
2、易安装性:被装之力量
3、共存性:
4、易替换性
5、可移植性的依从性:

周密回想现在各项的系统平台,框架,组件,工程措施,都至少含有有上面的计划性思想和原则。可能还有遗漏之,后续补。


今先期到此时,希望对而于系架构设计与评估,团队管理, 项目管理, 产品管理
有参考作用 , 您或许感兴趣之稿子:
互联网电商购物车架构演变案例
互联网业务场景下消息队列架构
信息网2017赌博网站开户送金架构设计演进
互联网电商搜索架构演化之一
柜信息化暨软件工程的迷思
供销社项目化管理介绍
软件类中标之要素
人际沟通风格介绍一
精益IT组织与分享式领导
学习型组织及店家
企业更新知识及等级观念
团目标及个体目标
初创公司人才招聘和管理
人才公司环境和企业文化
局文化、团队文化与文化共享
高功能的社建设
品种管理关系计划
构建便捷之研发及自动化运维
有大型电商云平台实践
互联网数据库架构设计思路
IT基础架构规划方案一(网络体系规划)
餐饮行业解决方案的客户分析流程
餐饮行业解决方案的贾战略制定同实践流程
餐饮行业解决方案的务设计流程
供应链需求调研CheckList
企业应用之性实时度量系统演化

要是产生纪念询问再多软件设计与架构, 系统IT,企业信息化, 团队保管
资讯,请关注自身之微信订阅号:

2017赌博网站开户送金 2

作者:Petter Liu
出处:http://www.cnblogs.com/wintersun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意要保留这个段子声明,且以文章页面明显位置给出原文连接,否则保留追究法律责任的权。
欠文章为又披露于自的独立博客中-Petter Liu
Blog。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图