当前位置: 首页 > news >正文

可以用来做简单的网络验证的网站推进网站建设工作计划

可以用来做简单的网络验证的网站,推进网站建设工作计划,wordpress图片库,做网站王仁杰一、平衡 在前面分析了一些软件设计的基础和原则后,今天分析一下整体设计上的一些实践问题。首先分析一下设计上的平衡问题。平衡非常好理解,看到过天平或者标称的同学们应该都知道什么平衡。无论在哪个环境里,平衡都是稳定的基础。 既然说到…

一、平衡

在前面分析了一些软件设计的基础和原则后,今天分析一下整体设计上的一些实践问题。首先分析一下设计上的平衡问题。平衡非常好理解,看到过天平或者标称的同学们应该都知道什么平衡。无论在哪个环境里,平衡都是稳定的基础。
既然说到了稳定,大家应该明白了平衡在软件设计中的重要性了吧。再抽象一下,秩序的稳定就是各方势力平衡的结果,也就是常说的“斗而不破”。到此大家应该明白了平衡在软件设计中的意思,就是在当前环境下对各种需求的一种适当的资源的分配。它既考虑了现在的实际需求,也适当展望了一下未来的发展;既兼顾了经济投入,又考虑了实际产出;既追求了一定的软件运行效率,又考虑了资源占有数量;既考虑了用户的实际体验,又适当照顾了开发者的技术实现,如此等等。
平衡不是说某一方一拍脑袋就决定的,它通常是一种“软博弈”的结果。所谓软博弈,就是用户、对接人、市场、架构设计和开发等人的互相妥协的结果。如果开发者有机会做到软件负责人或者首席架构师的角色,就会深深的体会上面的意思。
它的主要体现是什么?对开发人员来说,就是不断改变的需求的细节的变化。也是网上那个漫画,开发者声嘶力竭的喊“不许再更改需求了!”
需要提醒大家的是,平衡不是一成不变的,它是一个动态的过程,是一个不断演进和变化的过程,直到软件生命周期的结束。

二、冗余

如果说平衡是一个综合的整体上的问题,那么冗余就比较偏向于软件设计开发团队这一方了。冗余是什么意思?就是闲事儿管得太多。体现到软件设计和开发上,就是为实现一个功能用了一个以上的方法。或者这么说可能更好理解,一个功能实现了至少两次及以上,其使用的方法有可能相似甚至相同。那么冗余是完全和设计原则中的某些原则是完全相悖的,可它为什么还存在呢?只有一个原因,就是为了安全和稳定,或者说冗余其实就是一种灾备技术。
冗余有很多种:
1、功能冗余:就如上面提到的,一个功能模块被开发了两次以上。
2、任务冗余:实现一个任务使用了多个软件进程处理,然后利用算法来处理结果得到正确的选项,最典型的就是分布式算法中的选举。
3、开发冗余:就是为保证任务的安全性,利用多种技术架构方法甚至多个团队来实现同一个功能,然后通过某种机制来保证结果的安全性。注意和任务冗余的区别,前者是同一个软件实现的多个副本运行;而开发冗余是多个软件实现(同一功能)。
4、时间冗余:这个比较好理解,不断的在不同的时间点采样,验证结果的准确性和安全性。
5、指令冗余:这个属于一种底层的安全处理,保证程序在异常的情况下帮助程序恢复正常运行。

三、设计应用

在软件设计和实际应用中,人们发现,科学研究和工程实践有一个明显的不同在于,科学研究讲究的是严谨的推导。而工程实践讲究的是最终结果。什么意思呢?比如证明一个问题,科学证明它是不能完全成立的,但工程实践发现如果多试几次它就一定能成功。所以这个问题在工程上就是可行的,而在科学研究上是不成立的。
所以在实际的工程实践特别是在互联大规模应用的今天,平衡和冗余早就渗透到了软件应用的各个方面。
平衡的设计有很多种,比如常见的以时间换空间或以空间换时间,开发效率与开发速度,算法选择与程序性能等等。在实际的开发中,最典型的往往是牺牲一定的功能和性能,尽快的把程序开发出来并上线应用。互联网效率是第一位的,先机一旦失去,往往意味着再好的项目也极大可能就砍掉了。这样的例子现在回头看,可比比皆是,最典型的就是常用的微信,大家可以看看其如何研发出来的过程。
而冗余就重要了,在软件开发中,冗余往往无法具象化,往往让人觉得有设计或者开发者“抽抽”的印象。但在运维中却可以非常明显的体现出来,比如实际的网络事故中,某公司使用某云,结果挂了,损失了不少钱。同样,做过数据存储的开发者知道,数据往往不能完全存储到一个硬盘上,简单的使用阵列,复杂的要多点存储。这就是冗余。冗余的问题在于,到底冗余多少才是最安全的以及最具有性价比的。比如刚刚说到的数据存储冗余,是一个机器两块硬盘还是一个机房两个不同的机器硬盘还是不同机房甚至不同的物理地域。
冗余其实就是平衡的一种手段,上面出事故的公司虽然明白云也是有风险的,但他们选择了相信云的风险不会搞到自己头上。或者说即使出现事故是那种不可忍受的事故的可能性极低,怎么个意思呢?低到与自己在公司或者其它云上再备份一份的成本要低不少。这就是平衡,平衡风险与奖金投入的问题。

四、例子

平衡的例子太多了,这里举一个简单的。实际开发中遇到客户要求两个月交付上线使用,并且提出了各种要求。老板因为成本的问题,只给开发团队两个人。两个开发者即使考虑了加班,发现时间也非常不足。此时,就会和客户讨论需求的细节(忽略一些参与方),对某些不太重要的或者不急切的需求,不开发或者推到二期。在这个过程中,客户方提出了某某功能必须上线,可以加钱。这不就到达了平衡的第一步么。多给钱,开发者加班,砍掉非必要功能,这就基本达到了初步的平衡。
到于冗余更好理解,举一个比较极端的例子,银行的数据保存在哪儿?比如都保存在一个大家看起来非常安全的地方,但某一天,万年洪水或超级地震袭击,数据全丢失了,客户会怎么想?所以,对于大银行的数据一定是异地多处保存备份,比如大西北一份,东北一份,南方和北方再各来一份,这数据不就近似于百分百安全了。不可能这天南海北的几个地方同时有超级大的灾难或不可控的风险出现。

五、总结

软件设计不光是技术的问题,纯技术流往往会产生一种唯技术论的现象。软件的设计是一种现实与计算机交互融合的过程,往往涉及到技术之外的经济性、效率性、公平性等等具体的社会问题。软件设计是把软件的实现与实现世界结合起来,服务于现实世界,而不是一种独立存在。
要始终明白,实际的需求才是软件技术发展的根本动力!

http://www.yayakq.cn/news/638023/

相关文章:

  • 私人找人做网站手机免费图片制作软件
  • 建筑网名windows优化软件
  • 新网站怎么做谷歌推广呢柳州市建设工程质量安全监督管理处网站
  • 网站开发成本如何账务处理房在线房产中介管理系统
  • 旅游订票网站开发黑龙江省瑞驰建设集团网站
  • 站长友情链接指数分布的期望和方差
  • 昆明网站建站网站源码分享
  • 临沂住房和城乡建设局网站打不开18款禁用软件app网站入口
  • flash网站怎么制作成都住建局官网房源
  • 简述网站开发工作流程官方网站建设调研报告
  • 如何用自己的域名做网站哪家公司搭建网站
  • 网站底部导航设置芙蓉区网站建设
  • 网络设置的网站免费网站推广优化
  • 深圳网站seo教程wordpress如何抓取
  • 网站安装源码西安网站制作有限公司
  • 信息手机网站模板昆山网站建设河北
  • 电商网站的建设背景图片青岛谁优化网站做的好
  • 东莞大型网站建设公司wordpress放弃php
  • 中山网站seo优化县级部门和乡镇不能建网站建设
  • 任务网站(做任务学技能的)建材企业网站推广
  • 大连建设工程信息网站网站建设工作落实情况
  • 检测网站开发语言工具大连云建站模板
  • 抚州市城乡建设局网站九江哪家网站建设公司好
  • 怎么自己创建网站免费网站建设补充协议模板
  • 网站页脚设计建设网站上申请劳务资质
  • 湖北省建设招投标监督机构网站源码资源下载站
  • 素材图库网站源码2023年专升本最新政策
  • 上海网站建设推荐q479185700顶你上线了做网站怎么样
  • 文化墙设计网站推荐做qq头像的网站
  • 邢台seo网站制作重庆博达建设集团网站