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

谈谈团队合作中的设计与优化

在团队合作之前,需要对要开发的功能进行设计,究竟设计到什么程度,哪些是可以忽略的,哪些是一定要敲定的,希望本文可以说清楚。


每个功能都可以从story开始

例如:作为XXX角色,需要1个XXX功能,这样就可以完成XXX工作


一切从原型开始

这个story中该有什么,UI简图,什么是简图,就是原型图,可以使用原型工具来完成,或者CSS+HTML放几个链接模拟出简单的交互。


完成了原型,是输入和输出

最重要的信息是什么,输入和输出。确定输入来自哪里,接受输入的人就开始考虑如何来模拟这个输入;确定了输出,用于接收输出的人也可以考虑如何mock这个输出。


常见的过度设计

现在就可以开始编码以及联调了,可是在没有效率的会议中,通常会出现讨论实现细节的问题,例如具体的数据结构,类层次结构,继承关系,哪些改抽象,甚至使用哪种模式等等。以上种种,我统统称为过度设计。过度设计除了浪费时间之外,不会有任何价值。


推荐的流程

先完成功能

在功能没做出来以及联调工作没完成(如果需要)之前,谈设计细节是没有意义的。软件不是传统工业,需要迭代来保证持续交付性。因此,第一次迭代,先把功能做出来。


重构

完成了功能(包括单元测试)之后,代码总有不满意的地方,这时可以适当重构,但不必过度重构。重构与编码时的关注点不同,重构时只关注可维护性,在面向对象编程中,主要关注对象的职责,找出没有尽到职责的对象,以及多管闲事的对象。


优化

首先是用户体验。其次,取决于应用类型,实时性高,并发大的应用,就需要重点关注性能部分;金融系统,就需要更多的关注安全性方面。

相关文章:

  • 页面元素的定位scrollintoview
  • C#将子线程附加在当前线程之后执行
  • 过渡到SSAS之二:服务的发布
  • MongoDb 中的PageFilter
  • 新浪换标,也许应该做点什么了
  • 使用joint.js 绘制图
  • myfaces与mojarra(JSF RI)处理空属性类型的不同
  • jsonp 示例
  • 平媒怎么了?
  • The server committed a protocol violation. Section=ResponseHeader Detail=CR must be followed by LF
  • Neubla3中的骨骼动画: CoreAnimation子系统
  • TPL Part 1 Task 的使用
  • 准备移植xynth到arm板上了。
  • TPL - Part 2 异常处理常用方式
  • 一个关于TCHAR的离奇bug
  • Effective Java 笔记(一)
  • go append函数以及写入
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • Odoo domain写法及运用
  • opencv python Meanshift 和 Camshift
  • Redis中的lru算法实现
  • scrapy学习之路4(itemloder的使用)
  • SpiderData 2019年2月13日 DApp数据排行榜
  • vue脚手架vue-cli
  • 基于webpack 的 vue 多页架构
  • 解析带emoji和链接的聊天系统消息
  • 经典排序算法及其 Java 实现
  • 聊聊sentinel的DegradeSlot
  • 如何合理的规划jvm性能调优
  • 深度解析利用ES6进行Promise封装总结
  • raise 与 raise ... from 的区别
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • ​虚拟化系列介绍(十)
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • (06)金属布线——为半导体注入生命的连接
  • (floyd+补集) poj 3275
  • (function(){})()的分步解析
  • (第一天)包装对象、作用域、创建对象
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (转)程序员疫苗:代码注入
  • (转)人的集合论——移山之道
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .Net MVC4 上传大文件,并保存表单
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .NET和.COM和.CN域名区别
  • .NET企业级应用架构设计系列之结尾篇
  • .NET与java的MVC模式(2):struts2核心工作流程与原理
  • .pop ----remove 删除
  • [ vulhub漏洞复现篇 ] Apache Flink目录遍历(CVE-2020-17519)
  • [BZOJ2208][Jsoi2010]连通数
  • [BZOJ4010]菜肴制作