如何画一个系统的设计图

京东云开发者
• 阅读 307

为什么写本文

评审中发现很多研发都不会画设计图,有的画的非常复杂但没有要点,听的人不知道要表达的是什么;有的图画的非常简单,也没有要点。如果设计图只有在讲解的时候通过别人长时间的询问才能明白,那么设计图还有什么价值?大部分研发内心想提升设计能力,但有一些错误的观念可能会阻碍设计的成长。比如“参考一个好的设计模版,我就能做出好设计了这种想法”,我个人认为是非常错误的观点。本文不会谈及具体的图形画法比如流程图和UML图画法,更多的是探讨如何提升设计能力的方法论。

正确的自我认知

当你表达不出来的时候,真实的情况并不是表达不好,而是你根本不懂

不要总为自己找借口,我很牛,只是表达不好,表达不出来。别人表达好,就是只会包装PPT,只会搞虚的。这些想法都是错误的,需求文档是系统逻辑的一种表现形式,代码是系统逻辑的另一种表现形式,设计是代码的又一种表现形式而已。代码烂一些,也可以跑起来,所以烂代码可以躲起来自嗨,但设计烂一些,一目了然,无处可躲,别人根本听不懂。设计的好坏比代码的好坏更直观,更容易看出来而已。你觉得有可能某人具备非常优秀的编码能力,却无能力无法做出优秀的设计吗?

何为设计

设计是面向问题的,没有问题为啥要设计?如果你的设计没有让人听明白问题的解决思路,这个设计就没有什么价值。

比如我们要设计一个建筑的承重结构,设计图要体现你的承重的几个关键的主体结构(承重梁,承重柱子,承重墙等),而不是把整个建筑的细节(装什么品牌的灯具,是否帖墙纸)都画出来。设计不是越细越好,也不是越粗越好,根本没有粗细之疑问,当你确定了要解决的问题,哪些该画,哪些不该画,我认为是确定的,问题定了有些东西你不画根本就说不明白,而有些你画了对你的目的没有啥关系,直接删除就好。

设计的目的,第一:非常直观的表现出针对问题的解决方案,方便发现设计中的问题。第二:通过设计可以非常方便的把系统的解决方案传递给其他人。第二点其实是第一点的副产品,但确实一个很容易发现坏设计味道的方法,当你的设计别人总听不懂的时候,大概率就是坏设计,后面提升的第一步会再展开说。

有的人很聪明,不画设计图,直接写代码,也跑的不错。真的没有设计图吗?只不过在这个人脑子里而已,在脑子里去画出来设计图和真实的画出来,大家觉得那个更有利于对于设计查漏补缺,以及对设计优化呢?答案非常明了吧。如果这个聪明人不画设计图在脑子里做出来的系统质量是70分,那么他如果画出来设计图,系统的质量分一定会高于70分。更重要的是,今天这个人能想清楚,一年后呢?这个人离职了呢?这就是设计的价值。

如何提升自己的设计能力

分两步,第一步要把自己解决方案思路用设计图展现出来;第二步提升自己的真实认知高度。

1。表达出来自己的设计

首先要做的并不是提升,而是有多少表现出多少。如果你有60分,那就让大家听明白60分,哪怕只有10分,能表达出来10分,第一步也算是完成了。

怎么证明表达出来了呢?在相同信息量输入的情况下,把这些信息传递给其他人所用的时间越短,表达越好。如果能用5分钟说清楚,你说了一个小时,中间都是听者通过提问来了解清楚,而不是通过你的讲解设计了解的,那么你的设计图就是有问题的,设计所携带的设计信息就非常少,甚至是负数。 如果你的设计不能让一个对系统不了解的人听懂,那么它也不能让一个对系统了解的人听懂。当别人听不懂的时候,说明信息的传递机制出了问题,和听众的系统了解程度真的不大。(前提是听者是具备基础逻辑能力的智能物种,不需要具备其他专业知识)

要用已知概念解释未知概念

讲解中出现太过的未知概念,听者是无法理解的,未知+未知=未知。针对不同的听众,我们需要的仅仅是需要调整概念的解释节凑和顺序,出现未知概念之前,把它用已知概念进行定义。设计自身是不会调整的,只是针对不同人群有所变换表述就可以。有些像六边形架构,设计的本源位于中心,外层可以替换为不同的实现。

2。提升自己的设计

第一步做到虽然相对容易,但我看到研发的设计大部分都倒在了第一步,第一步做到后我们就可以进行第二步提升了,第二步相对就难多了,是提升自己的真实能力。第一步做到了有多少能力,展现多少,所以设计的好坏只受自己专业能力的限制了。

第二步最大的武器是方法论。如下图,针对项目一的设计停留在第一个圈,这个时候需要我们跳出项目,参考行业的解决方案,形成面对此类问题的解决方案,跃升到第二个圈方法论的高度。最终再使用方法论来降低维打击项目一,当出现类似问题项目二,项目三的时候,方法论是可以复用的。



如何画一个系统的设计图



用了方法论的设计,还会得到一个额外的好处,就是表达。

最好的表达是默契,我不说你就懂,而方法论就是这个默契。方法论是一种语言,行业通用的,在描述设计的时候,直接说出用的方法论,这些方法论是行业通用的,自然你还未讲解针对项目的设计,听者就已经懂得七七八八了,这就是降维打击的好处。

回头对比:此时对比下(用方法论降维打击的效果)和最开始的(连第一步都未跨出,无法表达出自己想法的设计),想象下两者的差别有多大。

点赞
收藏
评论区
推荐文章
九路 九路
3年前
如何利用开发者社区提高自己的技术?
如何利用开发者社区提高自己的技术?记得刚从事互联网研发工作时,有一些同事,感觉什么技术都懂,前端,后端,数据库,样样通而且还有一门自己非常擅长的技术,当时是非常的羡慕,心想:啥时候我也能成为别人眼中的技术大牛多好当时月薪几千的我,一定要成为技术大牛,成为月薪过万(当然现在月入过万已经很平常了)尤其是做我们做技术研发的,每个人都想成为技术大牛,都个人都想高薪。
秃头王路飞 秃头王路飞
3年前
vue大屏固定比例自适应
废话不多说直接上代码languageexportdefaultname:'App',data()returnzoomIndex:1,;,created()//3840是设计图所给的宽度this.zoomIndexdocument.docume
菜园前端 菜园前端
1年前
前端切图仔玩转蓝湖设计图
原文链接:介绍前面已经介绍了如何使用git来管理我们的项目代码。这里顺带介绍一下,在企业实际开发中,基本上都是有设计图的存在,前端是按照设计图去开发实现,并不是自己凭空想象页面长什么样子。蓝湖就是目前比较主流的设计图网站。在设计图上面可以方便查看任何一个元
onlyloveyd onlyloveyd
3年前
Compose Weekly #3:Bloom
本文同步发表于我的微信公众号,在微信搜索OpenCVorAndroid即可关注。前言第三周挑战赛是速度比拼,按照官方发出的设计图最快完成且符合所有设计规范者胜出。不仅要做得快,还要做得好,奖品自然不会少。这一期的奖品是:GooglePixel5。深知干不过业界大佬们,花个半天纯当练手完成题目。设计图设计风格界面导航界面标注完整设计图:
布袋罗汉 布袋罗汉
1年前
Sketch 95.3(矢量绘图UI设计软件)
SketchMac版是一款非常优秀的矢量绘图工具,拥有简约的设计,调色板,面板,菜单,窗口,控件和功能强大的矢量绘图和文字工具;包含针对UI设计的操作和交互模式,让你设计图标、移动手机UI、网站UI等更加简单高效。此版本包括一些错误修复和调整!1、数字设计
实践篇(三):如何有效评审软件架构图?
设计意图的传达是架构可视化关注的重要维度,在技术方案评审过程中不可避免的会出现各种各样的架构图或设计图,这些图形化表述在设计意图传达效果层面表现不一,本文从图形化的视角为软件架构图的评审关注点提供了参考。
Wesley13 Wesley13
3年前
MySQL 空事务
   问题描述;   研发同事反应MySQL数据库有锁,检查innodb\_trx时,发现有很多长时间未结束的空事务。   这些事务的trx\_mysql\_thread\_id都为0,因此不能通过kill  id的方式强制关闭这些长时间未结束的僵尸事务。           SELECT       tr
Stella981 Stella981
3年前
Sketch 和 PS中的设计图如何实现“自动切图”?
切图是很多UI设计师的一项日常工作。平时做完设计图,要将设计稿切成便于制作成页面的图片,并标注好尺寸和间距,交付给前端来完成htmlcss布局的静态页面,有利于交互,形成良好的视觉感。但有的认为前端自己会切图是最好,不建议把切图的事情丢给设计师做。这样中途会损耗结构讲解的开销(比如网页层级,细节重构方案等),毕竟最后css是前端去码,怎么切最合适要自己
京东云开发者 京东云开发者
9个月前
大文件上传原理及实现方案 | 京东物流技术团队
一、什么是大文件一般,我们传送大文件是指传送大于100M的文件,而普通文件是指小于100M,常见的是20M、30M和50M,两者主要的区别在于文件大小上,还有传送速度上。一般普通“邮件附件”只能发20M、30M,50M的文件,而几百M的照片、文件、设计图等
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究