设计先于开发

上一篇,我们聊了如何搞懂业务需求,吃透了需求就可以进入开发了吗?也不是,我们还要进行架构的设计,下面,我们就来聊一下这个话题。

为什么要先进行设计呢?从业务需求到代码实现之间其实还是有很大跨度的,如果不进行设计就进行开发,往往就很难考虑详细和周全,一旦出现欠考虑或者考虑错误的地方,后期再来改就会浪费更多的成本,整体效率和质量反而更低。

很多人会认为,互联网的思维就是小步快走,快速迭代,这是不是跟设计在先矛盾呢?其实是不矛盾的,而且是相辅相成的。设计就是要考虑未来的变化,提前在架构上做好准备,让系统在快速变化的过程中,不至于每次都推倒重来,保持架构的相对稳定,让整体迭代的效率和质量最高。

而且,开发的工作是需要多个工种协同进行的,就像是盖大楼,如果没有设计图纸,大家就很难高效的协同工作。设计的过程就是画图纸的过程,就是让大家思路和目标保持一致的过程。尤其是中大型的项目,一定要经过这样的过程,才能让大家信息一致。

那么,设计的过程需要考虑哪些关键点呢?首先,针对业务需求来说,从梳理需求到设计,是一脉相承的关系,不要脱离上一篇我们梳理出来的业务图。上一篇中,我们已经将业务拆分到单个场景的粒度,接下来就是要把场景拆分到功能页面上,同时,每个功能页面,要拆分出需要几个接口才能实现。要对照着场景拆分图来进一步拆分接口,就是要站在当前角色下,看这个场景到底需要几个接口才能实现。只有这么来做,才能让接口的设计真正适合业务的需求。

其次,除了业务需求之外,我们更应该关注的是非功能性需求。什么是非功能性需求呢?就是系统的可用性、性能和可扩展性。这三点是系统的隐性需求,不容易被人察觉,但是对系统来说却是至关重要的。具体这三点应该怎么来做,我们后续章节还会继续来聊。下面,我先说其中最关键的一点。

无论是业务需求也好,还是非功能性需求也好,我们要想做好设计,最关键的是找到明确的设计目标,以及不断迭代的抓手。业务是在不断变化的,系统就要跟着不断迭代。所以,无论是业务需求还是非功能性需求,都是不断迭代的。如果没有目标,我就不知道这么设计到底是对还是错,如果没有一个抓手,就不知道每次迭代是否精进了。

对于业务需求来说,满足业务目标就是设计的目标,抓手就是业务需求的拆解图,拆解就要从业务背景和目标开始,拆解到具体的场景和功能,然后再把功能拆解到具体的页面和接口。逐一的拆解保证了从设计到开发的连贯,也就保证了最终的系统能够满足业务的需求。

对于非功能性需求来说,系统的高可用、高性能和高可扩展性就是设计的目标。那么,这里的“高”的指标到底是多少就是我们的抓手。我们要对当下的非功能性指标做一个测试,只有量化的指标才能让大家清晰的知道目前系统的准确情况。然后,我们再把需要达到的目标做量化,量化之后才能看到差距,逐步去分拆这个差距,才能知道怎么去逐步迭代。

我们以高可用性指标为例,我们可以以一个月为单位,计算每个系统模块的可用性指标,比如2个9就是99%,3个9就是99.9%,只有有了明确的指标数值,我们才能清晰的知道当前每个系统模块的真实情况。一定要花时间去统计和定义这些指标,有了这个指标,我们就能发现待改进的项目,比如有哪些可用性差的模块,以及可用性差的接口,具体再去分拆,就能找到其中的关键问题,就可以逐步去优化。优化完毕以后,再来进行统计,看看指标有没有改善,通过复盘再来进行改进。这里的指标就会成为我们的抓手,可以不断督促着我们不断进行精进,指标统计得越真实、越实时,迭代的效率就越高。

再以性能指标为例,我们可以周期性对当前系统进行真实的压力测试,得到当前系统每个接口真实的响应时间和并发数,就可以看到哪些接口存在性能问题,通过这个抓手,就可以让我们不断进行优化。

同时,我们需要注意一点,非功能性需求的指标不是越高越好,指标每提升一点,都是需要投入大量人力和资源的,都是需要成本投入的。就以性能为例,高的性能对系统架构、数据结构、算法、存储和网络等都有很高的要求,这都是成本。所以,指标要有明确的目标,这个目标要跟业务未来的发展匹配,既不要过度设计,造成资源浪费,也不要没有提前量,阻碍了业务的发展。具体这个度到底多少合适,就需要根据业务不同的发展阶段和目标来综合考虑。

最后,一个顶尖的工程师都不会敝帚自珍,心态都是开放的,三人行必有我师,只有不断吸取别人的经验,才能成就自己。所以,设计环节一定要进行一定范围的评审,评审就是让不同角色的人共同来看你的设计方案,从不同的维度给你提意见。甚至可以请业务需求方一起提意见,因为只有他们才知道业务未来可能变化的方向以及目标,知道了这些就可以提前做一些准备,让系统的设计更有灵活性。

总结一下,设计先于开发,设计既要满足业务需求,也要满足非功能性需求,既要有目标也得有抓手,要不断进行迭代和优化,才能不断精进。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,646评论 4 366
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,979评论 1 301
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 110,391评论 0 250
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,356评论 0 215
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,740评论 3 293
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,836评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,022评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,764评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,487评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,728评论 2 252
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,200评论 1 263
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,548评论 3 260
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,217评论 3 241
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,134评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,921评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,919评论 2 283
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,766评论 2 274

推荐阅读更多精彩内容