首页 > 其他分享 >如何画一个系统的设计图

如何画一个系统的设计图

时间:2024-06-13 15:34:15浏览次数:13  
标签:方法论 表达 设计图 第一步 系统 如何 提升 设计

为什么写本文

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

正确的自我认知

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

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

何为设计

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

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

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

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

如何提升自己的设计能力

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

1。表达出来自己的设计

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

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

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

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

2。提升自己的设计

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

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

 


 

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

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

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

标签:方法论,表达,设计图,第一步,系统,如何,提升,设计
From: https://www.cnblogs.com/Jcloud/p/18245964

相关文章

  • ssm点餐系统
    ssm点餐系统功能:订餐主页展示,商品浏览,登录,注册。后台管理:用户管理,评论管理,订单管理,管理员管理,咨询管理。技术:spring,springmvc,mybatics,jsp。环境:eclispe,tomcat8.5java1.8mysql5.7以上。源码+数据库文件。......
  • 如何快速开发一个鸿蒙原生app
    华为鸿蒙操作系统(HarmonyOS)自2.0版本正式上线以来,在短时间内就部署超过了2亿台设备,纵观全球操作系统的发展史,也是十分罕见的。与其他手机操作系统不同,HarmonyOS自诞生之日起,就是一款面向多设备、分布式的万物互联操作系统。“1+8+N”是HarmonyOS打造的全场景战略,其中,“1”是智能......
  • SpringBoot问卷管理系统-计算机毕业设计源码71781
    摘 要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,问卷调查当然也不例外。问卷管理系统是以实际运用为开发背景,运用软件工程原理和开发方法,采用Java技术构建的一个管理系统。整个开发过程首先对软件系统进行......
  • SpringBoot问卷管理系统-计算机毕业设计源码71781
    摘 要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,问卷调查当然也不例外。问卷管理系统是以实际运用为开发背景,运用软件工程原理和开发方法,采用Java技术构建的一个管理系统。整个开发过程首先对软件系统进行......
  • 麒麟操作系统——全网最详细安装教程
    打开虚拟机VMware,点击创建虚拟机点击自定义,然后下一步  还是下一步  选择稍后安装操作系统,然后点击下一步 上面选择Linux下面选择其他Linux4.x内核64位  自己选择虚拟机名字和安装位置  根据自己电脑情况来  这个也是自己选择  点击使用网络地......
  • C#如何查看/写入日志到Windows事件查看器
    Windows事件日志Windows操作系统将与计算机的系统性能、应用程序和安全方面相关的每个事件记录在C:\WINDOWS\system32\winevt的日志中。事件查看器从这些原始事件日志中读取信息,然后以可读格式呈现信息。打开Windows事件查看器的方法是1、运行输入eventvwr2、Windows+X打......
  • Linux时间子系统1:gettimeofday和clock_gettime实现分析
    1.Linux用户态获取时间的函数a.秒级别的时间函数:time和stimetime和stime函数的定义如下:#include<time.h>time_ttime(time_t*t);intstime(time_t*t);        time函数返回了当前时间点到linuxepoch的秒数(内核中timekeeper模块保存了这个值,timekeeper->x......
  • 微信小程序毕业设计-打印室预约系统项目开发实战(附源码+演示视频+LW)
    大家好!我是岛上程序猿,感谢您阅读本文,欢迎一键三连哦。......
  • 实时数据的处理一致性如何保证?
    实时数据一致性的定义以及面临的挑战数据一致性通常指的是数据在整个系统或多个系统中保持准确、可靠和同步的状态。在实时数据处理中,一致性包括但不限于数据的准确性、完整性、时效性和顺序性。下图是典型的实时/流式数据处理的流程:流式数据以各种方式推送到kafka中flink......
  • 如何使您的IT资产审计变得轻而易举?
    无论您在审核准备方面处于哪个阶段,强大的资产管理策略都至关重要。现在,不可否认的是最初的障碍——精确追踪每一台设备、软件许可证和外围设备可能会让人感到不知所措。然而,好消息是有简化流程可以帮助您将资产管理从一项令人望而却步的任务转变为高效的实践。  当您发现很......