程序猿编程,软件设计都干什么?

软件设计是设计什么?说下我现在的做法。

程序猿出文档,接口文档、数据存储相关文档(数据库文档、redis每个key的规则文档、es索引文档 等持久化和缓存的都要有)、框架结构uml、关键和复杂业务的时序、部署图。

为何需要这些呢?

1、接口文档

软件使用,就关注请求和响应,无论是cmd shell的交互还是图形化交互 或web页面,都是请求和响应,这种接口形式。所以接口文档很重要。

接口根据是否立马得到结果可以有同步、异步。根据逻辑是否复杂有简单的crud接口和复杂的接口。

2、数据库模型、redis的key规则等数据存储类设计图

在这之前一般会有关键业务的领域对象模型图,这里先说数据的。

程序就是读写数据。

程序跟人交互就是接口,而内部就是人们操作的数据。所以各种数据模型就很重要。

这个模型有数据库的ER等。

3、关键业务和复杂业务的模型以及时序。

这个跟数据模型关系密切,就像讲算法 脱离不了数据结构,讲数据结构脱离不了算法。

领域对象模型感觉是数据和业务算法的杂合体。应该是现有领域对象才有的数据模型和关键业务时序等这些。

关键业务和复杂业务模型,就是关键的和重要的,e...。

有些中间的数据结构也挺重要,但不完全是数据模型文档中的,比如 登录以后跟登录用户绑定的数据,一般跟session id绑定的,可以做一个文档。

4、框架结构uml图

这个跟业务有点关系,不过有时候是固定的。

拿web开发距离。web开发框架基本是mvc和业务逻辑 数据访问这类的 三层。mvc跟业务逻辑 数据访问的关系是分开的,这两个东西不是一个概念。

mvc是,v视图 现在都是前后端分离 这个基本就是接了。c就是控制器。m是数据,mvc没有规定m是怎么来的,只是直接用数据。这时候就要service业务逻辑和dao数据访问了。

mvc大体上框架的数据流转就是请求到控制器 到业务逻辑到数据访问。

框架结构图就是描述数据的大体流转的。因为你的代码有自己的设计。需要把这个描述清楚,比如在控制器中如何定义统一的响应规则 等等。

5、部署图

这个首先得知道网络拓扑,更多的是服务器拓扑图,不过现在有了docker后,网络环境复杂,比如k8s,fannel网络的使用,使几台服务器就跟以前一个机房的网络环境一样复杂。

部署图 更多的是关注服务部署情况。

做这些设计,不用过分纠结做文档的先后顺序,我做的过程中,基本都有返工,比如接口文档先出的,但跟业务相关的设计出来后 发现接口有调整。

做完设计后,就可以启动代码了。

在写代码的时候,可以把方法体里要写的逻辑 先用文字描述下,再写代码。

现在我写代码的阶段,简单的crud功能几乎没有返工,复杂接口返工会有,但总体还是少。现在代码质量比较高,最起码比以前高,而且一直在提高。

总结

开发时,出的文档有  接口文档,数据库文档等数据文档,框架结构文档,关键和复杂业务模型 时序,部署图。

原文地址:https://www.cnblogs.com/chengjunchao/p/10921737.html

时间: 2024-11-09 05:56:02

程序猿编程,软件设计都干什么?的相关文章

程序猿必备软件转载自 www.uhdesk.com

XMLSpy 2012 企业版中文破解版 软件描写叙述: XMLSpy是XML(标准通用标记语言的子集)编辑器,支持WYSWYG.支持Unicode.多字符集,支持Well-formed和Validated两种类型的XML文档.支持NewsML等多种标准XML文档的所见即所得的编辑.同一时候提供了强有力的样式表设计软件大小:0M 更新时间:2014-06-09 00:00:00.0 下载次数:0 password:8bs2 XMLSpy2006 软件描写叙述: XMLSpy是XML(标准通用标记

Android程序猿如何泡设计妹之快速掌握dp和px才可以

相信很多Android程序猿已经对身边的设计妹垂涎三尺了,那么如何博得设计妹的好感呢,学好这篇文章就可以了. 程序猿与UI设计妹讨论设计稿和切图的时候,经常会因为dp和px的问题搞的不愉快,这里可以分析出两个原因: 1,程序猿原因,不懂dp和px的换算关系.包括我,以及我见到的大多数开发,更多的时候其实不是很关心dp和px是如何来的,以及如何转换的,只知道掌握一般情况用dp,字体大小用sp,画线用px. 2,设计妹原因,设计不出dp标注,或者甚至就不懂dp是什么东东.大多数公司并不会为Andro

程序猿们,你们都有对象了吗?

说道程序猿,你们是不是就会想到这个: 顶着几天没洗的飘逸短发,身披黑色大马褂,脚着五彩棉拖,顺带捎着鸽子蛋大的黑眼圈,小巧玲珑的双眼看任何东西都空洞无神,唯独看着代码却风情万种,面对这样的程序员,我只想小心的问一句,你们都有对象了吗? 程序猿与代码的世界里完全容不下其它任何外物的干扰,他们仅有彼此,并仍然乐在其中.他们将打是亲骂是爱发挥的淋漓尽致,中午不休息的敲打着鼠标键盘,方圆百里依然知道他们彼此间相爱相杀."卧槽,这个bug......""尼玛,这个代码......&qu

程序猿编程的10个有用技巧

以下是我自己在工作中学到的一些简单的技巧和策略,希望能对各位实用. 1. 橡皮鸭调试法 不知道各位有没有这样的经历.当你正在给别人描写叙述问题的时候,突然灵机一动想到了解决方式?这样的情况的产生是有科学根据的.高谈阔论能让我们的大脑又一次有条理地组织问题.在这样的情况下,你的聊天对象就是"橡皮鸭".团队中的每一个人都应该积极主动乐意地成为彼此的"橡皮鸭". 有时候,假设你幸运的话,你的"橡皮鸭"搞不好还能给出有效的建议呢. 2. 高速信息反馈 一

屌丝程序猿,软件攻城师发家机会:用大数据来做生意

大数据本身不产生价值,如何分析和利用大数据对实际业务产生帮助才是关键;从事大数据的生意要重视投入与产出;许多人已经默默地通过大数据获利. 1.分析微博数据炒股 “过去往往是把数据静止到程序当中分析,但现在不可能等它停下来.”中国工程院院士邬贺铨表示,数据规模越大,处理的难度也越大,但对其进行挖掘可能得到的价值更大,这就是大数据热的原因.华尔街德温特资本市场公司分析全球3.4亿微博帐户留言,判断民众情绪,高兴买股票,焦虑抛售股票,判断全世界高兴的多还是焦虑多,从而判断股票抛售情况.该公司当年第一季

程序猿们,满满的都是套路啊!

今天做天猫上一个电视柜的详情页,顶部标题栏和商品详情中间的那一个大块部分,用的竟然是传说中的"图片嵌套图片"的形式做出来的,啧啧啧啧--不得不说,满满的都是套路哇!这种方式我还是第一次见到,不免觉得新鲜,不过也感叹一句:有时候创意真的很重要,很亮眼啊!到现在为止也做了快十个网页,唯有这么一个小小的"套路"和细节,深深地触动了我. 想起当初经理给我们放的那个短片:对什么是专业,什么是业余,也有了更深的理解. 腾讯前设计师阿门说过:境界决定设计,膜拜膜拜-- 还有,昨天

程序猿必备软件之sublimeText

1.软件下载地址:点击打开链接 2.问题解决: (1). 中文乱码 1). 安装Sublime Package Control 2). 在Sublime Text 2上用Ctrl+-打开控制台并在里面输入以下代码,Sublime Text 2就会自动安装Package Control. import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedir

程序猿生存定律--细论软件这个行当的根本特征

程序猿生存定律这系列的文件夹在这里:程序猿生存定律--文件夹 喜欢从头瞄的.能够移步. ------------------------------------------------------------------------------ 规律是必须顺应而不能改变的.但除此之外现实中另一些事实也是无法改变的,这两者都非常像程序中的常量,想提高人生的高度则须要同一时候驾驭这两者,而不能试图为两者赋值.以下我们就一起来看一下,软件世界中仅仅能顺应,而不能试图改变的特质有那些. 技术更迭偏快 在

没人比程序猿更讨厌软件

原文作者:Jeff Atwood 几个月前.我们买了一台新的数码相机,为的是更好地记录我们家小宝贝的成长过程.採购的事情由我太太负责. 她小心地打开相机的包装盒,给相机装上电池.然后就開始了首次试拍. 像非常多电子产品一样,随相机附送的另一张软件光盘.于是.她不假思索地打开DVD光驱,然后把光盘放了进去. 我眼角的余光碰巧注意到了这一切. 说时迟,那时快,我疯了似的从房间的另一头冲过去,同一时候大叫:"不--要--啊--"--我不顾一切地试图阻止她从那张光盘上安装软件(为了更好地理解当