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

一次架构设计的摸索

最近部门安排我参与一个后台计费系统的项目,作为架构设计人员,这一两周的主要工作就是推演PD的UC和相关的架构设计,一个阶段的工作下来有了些心得。

  • 这种非底层技术性项目的架构设计最关键的是业务架构设计,对业务的把握是所有架构因素中最重要的因素。项目最开始我把精力放在了如何用些花哨的模式搭建可扩展性强的框架,可后来逐渐发现这些不是大家最需要的,大家最需要的是通过技术实现的角度把业务上的各种需求整理出来,勾画出清晰的业务流程。所以,我感觉对于这种项目,最开始也是最重要的架构设计工作是理解需求并帮助PD调整和优化需求,然后用流程图、类图和时序图的形式做业务架构设计。
  • 对于这种需要多方合作完成的项目,一定得站在整个系统的高度看待自己所参与的子系统。如果单纯只站在自己这个子系统的立场上,设计方法可以有很多种,但要兼容于其他子系统的话,将会有很多限制,所以,架构设计之初,一定得多和其他子系统的接口人多沟通,识别出其他系统对自己的限制,也得学会影响他人,用适当的方式让合作朝着有利于自己的方向进行。
  • 要珍惜架构评审的机会,一定得在架构评审时讲清楚自己的设计意图,使他人得到充分的理解,不要试图为了让评审会议和谐而尽量掩盖一些关键点,多让他人PK自己,一方面可以多吸收他人的意见,再则,让风险点尽量暴露在架构设计阶段,不要留到编码甚至是测试阶段。当然,被人PK的过程不容易,这也是一个优秀的架构师需要经历和磨练的过程,这其中很关键的是要培养自己快速理解他人想法并作出反应的能力。
  • 架构文档只是架构设计开始,关键是架构得到实施。以往写完架构文档搞完架构评审后,就感觉架构设计告一段落,实际上这个时候所作出的工作价值为0,只有当架构设计得到开发和测试人员的认同,并在实际编码中得到彻底贯彻和实现时,架构设计才体现了它的价值。因此,这次做完架构设计后,我会尽力对每个开发和测试人员传播设计思路,并在每个开发环节PK架构设计,不断重构和优化架构设计。
  • 在底层框架上需要识别出最关键和最有风险的点,把精力放在最需要花时间的上,不要试图去找些花哨或前沿的技术方案照搬过来,这是很危险的事情。在架构上,最好的技术是简单、可行性高、能解决问题,并被自己孰知的技术。如要用一些开源框架,最好是能对其原理甚至源码有些了解,在出现问题时,能深入其中。

总之,架构设计绝不是套几个设计模式,配几个通用框架的事情,是要真正深入到每个业务环节,考虑到实施过程中每个风险点,让设计的各个细节得到彻底的实施

相关文章:

  • 结构化思维
  • Not live in vain——Leo关于生与死的感悟
  • iPhone开发指南-应用程序核心
  • 数据库设计三大范式
  • 揭开网管行业认证新篇章的“网管师考试教材发布会”圆满结束
  • c++日积月累-const
  • c++日积月累-inline
  • SQL 标量值函数的调用
  • c++日积月累-引用
  • 共享Session、单点登录解决方案(ASP.NET2.0)
  • Net开源项目:SSO单点登录方案,Net开源工作流
  • VBScript调用RAR压缩文件...
  • 天津渤海早报防甲流“中药处方”,供大家参考
  • 表单开发 工作流平台开发的主要任务是开发表单,要在工作流平台上展现(工作流系统开发体系 )...
  • B/S结构工作流设计器(VML),工作流程定义
  • 345-反转字符串中的元音字母
  • canvas 五子棋游戏
  • canvas绘制圆角头像
  • ES2017异步函数现已正式可用
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • JWT究竟是什么呢?
  • Linux各目录及每个目录的详细介绍
  • Otto开发初探——微服务依赖管理新利器
  • Python_OOP
  • Python中eval与exec的使用及区别
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • Webpack 4x 之路 ( 四 )
  • windows下mongoDB的环境配置
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 检测对象或数组
  • 前端自动化解决方案
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 思否第一天
  • 移动端 h5开发相关内容总结(三)
  • 《码出高效》学习笔记与书中错误记录
  • 第二十章:异步和文件I/O.(二十三)
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • # 数论-逆元
  • #stm32驱动外设模块总结w5500模块
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (2)STM32单片机上位机
  • (java)关于Thread的挂起和恢复
  • (rabbitmq的高级特性)消息可靠性
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (二)Eureka服务搭建,服务注册,服务发现
  • (二)构建dubbo分布式平台-平台功能导图
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (篇九)MySQL常用内置函数
  • (一)RocketMQ初步认识
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)