美文网首页软件产品设计
关于软件架构的思考

关于软件架构的思考

作者: 苏星河 | 来源:发表于2016-03-13 05:15 被阅读68次

我承认自己因为想这个话题,今晚失眠了。反正也睡不着,手机码字把思考的东西分享出来。


项目前期

软件工程也像建筑工程等传统意义上的工程项目一样,有甲方和乙方。甲方通常就是需求方,他们往往只有想法和资本,不懂设计,更不懂技术(至少大多数甲方是这样)。而开发团队就是乙方。甲方在找乙方谈项目的时候,通常带着一些需求,而这些需求只是他们脑中的一些初级想法。作为乙方,拿到这个项目之后,第一步要做的事就是整理需求。将需求进行细分,注意这时候的需求将不再仅仅是甲方提出的那些需求,而是加上了我们自己对于这个项目的理解之后得出的需求。然后将需求按重要程度进行分级,最终整理出一份完整的需求文档交给甲方看。甲方看后没有问题,方可进入下一步的实际开发。


敏捷开发

敏捷开发是近年很火的一种软件开发思想。按照我的理解,敏捷开发之所以“敏捷”,在于两方面。

1.快

为了能够快速实现需求,敏捷开发要求团队必须足够的精简。每个团队成员独立负责自己的工作,对自己的代码拥有完全的控制权。在我的上一个项目团队中,我们每个人按照职能在git下开辟了自己的分支,每个人只需要维护自己的分支,并在必要的时候进行分支合并。

构建合适的软件架构是实现快速开发的另一大要诀。拿web开发为例。web分为前端和后台,在传统的web开发中,前端负责书写静态模板,然后交由后台渲染。这种开发模式的效率其实不高。因为后台拿到静态模板后,数据渲染过程中必须要对HTML进行修改,而这也意味着自后台渲染开始,前端和后台的HTML就不再是保持同步了,这也就涉及到一个前后端的“联调”。一旦前端修改了代码,后台必须也要跟着进行修改,这样就降低了开发效率。

然而近年来层出不穷的前端MVC框架正在拯救这一切,比如Angular。这类框架让前端也具备数据渲染能力,甚至也能处理一些业务逻辑。前后端之间通过JSON进行数据交换,通过一系列HTTP方法做数据交互。只需要设计好API,前后端从此按照API文档独立工作。当然,Restful API在倡导前后端解耦的潮流下开始大行其道。关于restful api,以后有时间再单独讲吧。

前面讲的前端渲染在SEO上有着天然的劣势,因此不大可能单独出现在大型项目中。大公司(比如阿里)更多的是在前端和后台之间加入了一个中间层。比如支付宝是在前端和Java之间加入了一个node中间层……


还是先睡了………明天起来再写……

相关文章

  • 关于软件架构的思考

    什么是软件架构 架构服务于效率、质量、体验、性能等 架构优化的短期成本和长期收益的权衡 架构要与当前业务发展和团队...

  • 关于软件架构的思考

    我承认自己因为想这个话题,今晚失眠了。反正也睡不着,手机码字把思考的东西分享出来。 项目前期 软件工程也像建筑工程...

  • 关于软件架构

    架构的定义 架构(Architecture)一词源于建筑领域,其本身就是建筑的意思,也有体系结构的意思。维基百科英...

  • 关于技术本质与软件架构的思考

    今天在微信公众号有人说工作5年的工程师是否很迷茫?如何打破这种迷茫打破这种瓶颈?说要提升对架构的认知,达到巅峰去认...

  • 关于软件的架构

    #C/S架构: 粗略的分他就是两层架构,一个是Client客户端、一个是Server服务器端,,其客户端包含...

  • 【读书笔记】《测试架构师修炼之道》03 : 与测试经理、软件架构

    0. 概述 像软件架构师一样的思考 测试经理不能替代测试架构师 系统架构师不能替代测试架构师 1. 像软件架构师一...

  • 系统架构设计师真题解析(7)—— 软件架构风格

    1 软件架构风格与系统性能关系 以下关于软件架构风格与系统性能关系的叙述,错误的是( )。A . 采用层次化架构...

  • 软件架构思考

    其实做什么事情都是有逻辑结构, 包括软件设计。 目标 业务架构的第一个诉求是结构上是让代码清晰可表达, 对业务的发...

  • 系统架构设计师概述

    现代信息系统架构三要素:构建、模式和规划 软件系统架构是关于软件系统的结构、行为和属性的高级抽象 系统架构设计师需...

  • 软件工程 · 设计模式 · 演进式架构分析

    一.背景 关于《演进式架构》一书,这里分享阅读心得和个人观点,与大家共同进步。 二.软件架构定义 1.软件架构:重...

网友评论

    本文标题:关于软件架构的思考

    本文链接:https://www.haomeiwen.com/subject/pvnxlttx.html