先感概一句, 软件设计是一个不太容易的事情,尤其历史需要兼容新需求的问题。

软件设计

软件设计包括很多,软件架构,软件结构,数据库设计。

软件不是从0开始的,一般都会有一些支撑组件,尤其现在的web程序,会有开源的程序提供给你。而选择什么样的支撑组件,就要看你真正的需求了。速度(选择高性能算法,语言支持,增加缓存),安全性(https,ssh),计算规模(分布式),高并发(mp模型),语言环境限制等等。这些都是实际存在约束,从而在软件上有所侧重,数据库,缓存工具,提供的加密通道,VPN,基础LIB等等。

例如我们最近的项目,交互的游戏服务器实在移动的微机上,IP地址,网段都是不确定的,而且有时常搬运到各地的需求,就要有跨越网段的需求。就要使用VPN和反向代理软件。对于VPN软件,也有很多OpenVPN等。反向代理软件,用的比较多的Nginx,这个软件太火了,而且资料非常的全面。

数据库,还有一些其他的一些软件依赖。

软件结构,这个有很多课程来讲述牛人们的思想,数据结构、设计模式等等。这些数据和课程讲述了抽象的内容,比较少的描述他们的应用场景。但实际上,我们大量的学习是在这儿层面上的。有很多的东西,不是我们不会,不去理解,实在是使用的场景。而在进行设计的时候,尽量尝试一下。尝试对需求带入我们的设计模式,挑选更加合适的处理方式。

数据库设计,不用说,在很多场景中,它是最核心的内容,数据作为展示,抉择的依据,而为了更加友好的处理,分析数据。现在数据仓库也是再兴起。。

需求增加

原始的开发方式,瀑布模型。这个情况比较少,但是在实际的实施过程,一期二期三期的推进。需求也是在增加的。

现在互联网的开发选择是敏捷,迭代开发。要求开发周期短,每个周期有新的需求,但是如果遇到大的需求,跟原始设计有冲突地方,就要更改早期设计。比如我们曾经遇到PC端从服务器下载资源,资源存储方式都是md5值存放,而后期增加了模板文件的概念,文件在服务器上不能以md5方式存放,而文件有可能会发生改变。这样的话,原始设计的优化方案,同名不下载,就需要更改。

需求更改

针对需求更改,不改设计和更新代码是根本不可能的,现有理论都是在尽量少的更改设计。

历史兼容新需求

怎么办重构部分代码。重新梳理需求,对于数据库设计,最好还是尽量少的进行更改,对于它的变化基本上算的上伤筋动骨。

转载于:https://www.cnblogs.com/tom-zhao/p/3894890.html

软件设计和设计的问题相关推荐

  1. 《软件建模与设计: UML、用例、模式和软件体系结构》一一2.10 UML扩展机制

    本节书摘来自华章计算机<软件建模与设计: UML.用例.模式和软件体系结构>一书中的第2章,第2.10节,作者:(美)Hassan Gomaa,更多章节内容可以访问云栖社区"华章 ...

  2. 《软件建模与设计: UML、用例、模式和软件体系结构》一一

    本节书摘来自华章计算机<软件建模与设计: UML.用例.模式和软件体系结构>一书中的第3章,第3.5节,作者:(美)Hassan Gomaa,更多章节内容可以访问云栖社区"华章计 ...

  3. 万字长文助你上手软件领域驱动设计 DDD

    作者:faryrong,腾讯 CSIG 后台开发工程师 最近看了一本书<解构-领域驱动设计>,书中提出了领域驱动设计统一过程(DDDRUP),它指明了实践 DDD 的具体步骤,并很好地串联 ...

  4. 云软件——艺术字符设计!【推荐】

    2019独角兽企业重金招聘Python工程师标准>>> 发现一款有趣的对字符图形艺术字进行转换设计的网页软件: ​中国设计网:ku.cndesign.com ( >﹏<. ...

  5. 软件分析与设计:分析什么?如何设计?

    简介:分析与设计这两个词我们平时经常听到,也经常讲,那么分析与设计的本质究竟是什么呢?到底要分析什么?又到底要怎样去设计?这3个问题如果平时没有一些积累,突然被问到这些,一时也会显得不知所措.接下面在 ...

  6. 《软件建模与设计: UML、用例、模式和软件体系结构》一一3.1 软件生存周期模型...

    本节书摘来自华章计算机<软件建模与设计: UML.用例.模式和软件体系结构>一书中的第3章,第3.1节,作者:(美)Hassan Gomaa,更多章节内容可以访问云栖社区"华章计 ...

  7. 软件设计方法和设计决策

    这段时间在抽空为一次会议准备PPT,内容是关于软件设计方法和设计决策的.10多年工作下来,周围认识和认可的设计师实在太少了.很多所谓的设计师,当说到扩展性的时候,能想到的只是工厂方法,简直太衰了.今天 ...

  8. 【华为云技术分享】如何设计高质量软件-领域驱动设计DDD(Domain-Driven Design)学习心得

    DDD做为软件设计方法于2004年提出,一直不温不火,最近几年突然火起来了,为啥呢?正所谓机会给有准备的人,因为微服务的流行,大家都跃跃欲试把传统单体软件转成微服务架构,但理论很丰满,现实很骨感,光是 ...

  9. wincc工程组态论文_基于WinCC软件的组态设计与实现

    论文编号:ZD818    论文字数:21315,页数:41,附任务书,开题报告,文献综述.MCG文件 基于WinCC软件的组态设计与实现 摘要:本文主要介绍WinCC组态软件的功能和使用方法.提出了 ...

  10. 《软件建模与设计: UML、用例、模式和软件体系结构》一一3.2 设计验证和确认...

    本节书摘来自华章计算机<软件建模与设计: UML.用例.模式和软件体系结构>一书中的第3章,第3.2节,作者:(美)Hassan Gomaa,更多章节内容可以访问云栖社区"华章计 ...

最新文章

  1. 【廖雪峰Python学习笔记】高阶函数
  2. 组合游戏系列5: 井字棋、五子棋AlphaGo Zero 算法实战
  3. Python 中的 sys.argv 用法
  4. HDU 4001 To Miss Our Children Time(2011年大连网络赛 A 贪心+dp)
  5. DataGridView和DataTable同步排序
  6. K8S 部署 ingress-nginx (三) 启用 https
  7. OpenCV学习笔记02:OpenCV基本图片处理
  8. 职场老实人的十大升职障碍
  9. 图层样式混合选项_ps教程,混合颜色带原理讲解
  10. 自定义函数计算某个字符在字段中出现的次数
  11. c++如何在两个.cpp文件中使用同一个全局变量
  12. ssm高仿bilibili视频网站
  13. ASEMI整流桥S35VB100参数规格,S35VB100封装尺寸
  14. matlab怎么fprintf,matlab中的fprintf函数怎么用
  15. Qt 导出pdf文件(表格、图片)
  16. 万众瞩目--腾讯云数据库TDSQL第一届征文正式大赛开启
  17. python条件语句作用_Python 条件语句
  18. 负整数及浮点数的二进制表示
  19. 哇咔咔!用Android手机控制电脑。
  20. 特斯拉将粉丝创意注册为商标 包括电动皮卡版书包

热门文章

  1. Silverlight学习笔记十七BingMap(三)之地图的地区标识
  2. android 6.0 api 管理,Android 6.0(API23)权限申请问题
  3. 涂鸦WIFI模组方案(模组 SDK)
  4. Windows使用技巧
  5. 服务器端密钥库文件,使用密钥库文件为SOAP运行客户端WS
  6. python处理mysql数据结构_python环境下使用mysql数据及数据结构和二叉树算法(图)...
  7. 关于使用idea工具debug时,断点颜色由红色变成灰色解决方法
  8. mysql无法找到事件id100描述_解决“事件 ID ( 487 )的描述(在资源( Zend Optimizer )中)无法找到”...
  9. 后端技术:MyBatis动态SQL写法介绍
  10. python替换所有标点符号 正则_python 把标点符号替换为空