随笔分类 - 架构相关
摘要:前一篇文章,总结了三高系统所关注的一些重要质量属性。就想到,其实不同类型的系统对质量属性也往往要求大不一样。 下图是软件系统架构设计时,需要关注的一些软件质量属性。 开发期质量属性,是开发人员或后期的维护人员比较关心的,这些质量的好坏,往往会影响到开发和维护成本。而运行期质量属性,则是最终用户比较关
阅读全文
摘要:总结一下三高(高性能、高并发、高可用)系统在架构时常见的模式及技术。 面向互联网的三高系统,最关注的软件质量属性是:性能、可用性、伸缩性、扩展性、安全性。 而构建此类系统,最常见的架构模式有:横向分层、纵向分割、分布式化、集群化、使用缓存、使用异步模式、使用冗余、自动化(发布、部署、监控)。 具体来
阅读全文
摘要:之前没有转载过架构设计的模板,下面这篇文章写得挺好,可以作为模板使用,所以转载一下: https://mp.weixin.qq.com/s/qISX6P kc4XmbCFbPq6Abg 作者|张辉清 编辑|小智 社区里不是缺少架构图,而是缺少确实可参考的架构落地实践。大公司的架构看上去总是不明觉厉,
阅读全文
摘要:开发者在搭建界面自动化测试框架时,又或者在开发界面自动化控制的机器人时,往往需要对界面进行自动化的程序控制。而现在公司内部使用的杜尔自动化框架,就是一个封装了界面自动化控制逻辑的程序框架。基于该框架,开发者可以轻松、快速的控制各类程序的界面,这些界面可以包含 Windows 界面、浏览器界面。 五年
阅读全文
摘要:上周六参加了《一言以蔽之 十年架构之路 架构大会》,简单写一篇随笔,记录一些要点的 PPT。 会议日程如下: 第一场:如何应对架构的高复杂度 结构分解是永久的主旋律 微服务架构,将系统的复杂度从应用中移动到底层通用平台中。 康威定律:软件系统的结构应该匹配组织架构。 风险驱动模型 & 质量属性。 约束驱动。 第二场:微服务架构实战-京东开放式平台架构演变 ...
阅读全文
摘要:不论是在公司内部,还是在面试过程中,经常看到很多开发人员,说想成长为架构师,但是实际上却像一支无头苍蝇一样学习、成长。所以今天我就来简单总结一下,开发人员要成长为一个架构师,都应该学习哪一方面的知识。也就是:架构师的能力模型。 (PS:本文纯属个人见解,并不一定完全正确。对于此类话题,每个人可能都有不同的看法。欢迎大家拍砖。) 开发人员职业发展方向 在说明架构师能力模型前,我得先说...
阅读全文
摘要:2016年,区块链技术火了!各大金融公司、互联网巨头都竞相参加到区块链技术的研究中。我们公司的业务是税务的信息化领域,也希望通过区块链技术的应用,来提升为财税领域的服务。 区块链技术优缺点总结 下图是对区块链技术的一些特点的总结: 痛点及应用场景 对税务领域进行了一些思考,我整理出以下几类痛点,以及区块链对应的可能的应用模式: 1.发票电子化 纸质发票电...
阅读全文
摘要:本文记录最近完成的一个通用实时通信客户端的架构。 背景 我们公司是做税务相关的软件,有针对大客户 MIS 系统,也有针对中小客户的 SaaS 平台。这些系统虽然都是 B/S 的,但是也需要使用 ActiveX 控件来调用本地的硬件设备打印相关的发票。 由于 ActiveX 控件只能在 IE 下使用,
阅读全文
摘要:本文系转载。转载自:http://mt.sohu.com/20160516/n449639733.shtml 如何针对当前需求,选择合适的应用架构,如何面向未来,保证架构平滑过渡,这个是软件开发者,特别是架构师,都需要深入思考的问题。 本文首发于InfoQ垂直号「聊聊架构」,ID:archtime 无架构,不系统,架构是大型系统的关键。从形上看,架构...
阅读全文
摘要:之前转载过一篇对 Martin Fowler 大师写的微服务架构的说明文章:《微服务(Microservices)》。今天再转载一篇对于这个架构的优缺点进行总结的文章。 转载自:《微服务,让开发过程更简单还是更复杂?》、《有关微服务架构的争论:更简单还是更复杂?》。 随着DevOps、持续交付等理念的深入人心,微服务架构开始走进我们的视野。 那么微服务是业界期待已久的解...
阅读全文
摘要:本文转载自:http://www.cnblogs.com/liuning8023/p/4493156.html 原文是 Martin Fowler 于 2014 年 3 月 25 日写的《Microservices》。 本文内容 微服务 微服务风格的特性 组件化(Componentization )
阅读全文
摘要:最近两周完成了对公司某一产品的前端重构,本文记录重构的主要思路及相关的设计内容。 公司期望把某一管理类信息系统从项目代码中抽取、重构为一个可复用的产品。该系统的前端是基于 ExtJs 5 进行构造的,后端是基于 Asp.net MVC 提供的 REST 数据接口。同时,希望通过这次重构,不但能将其本
阅读全文
摘要:一整月都在编写某国企的技术平台建设方案。该企业是一个某500强大型国有企业,他们希望能建设统一的一个软件平台(技术平台+业务平台):各专业部门基于该平台开发相应的专业级插件,并发布到统一的插件平台中,并最终都可集成到一个统一的客户端软件平台中,以达到业务组件能在全公司范围内进行重用。另外,数据方面,...
阅读全文
摘要:上一篇《企业 SOA 设计(1)–ESB 设计》中,写到我们的 SOA 设计分为两个层面来进行:一个是系统间的 SOA 设计,主要通过 ESB 来完成;另一方面则是单个应用系统内部的 SOA 设计,本篇将会就后者进行详细说明。平台整体结构在产品开发过程中,为了达到业务级别的较大粒度重用,我们需要把纵...
阅读全文
摘要:最近为公司完成了一个 ESB 的设计。下面简要说明一下具体的设计方案。 企业 SOA 整体方案 在前一篇《SOA、ESB、NServiceBus、云计算 总结》中说到,SOA 是面向服务的架构,其核心思想是把业务进行组件化,而业务组件的能力服务化。 我们的整个 SOA 的设计分为两个层面:一个是系统间的 SOA 设计,另一个则是单个系统内的 SOA 设计。系统间的 SOA 设计,主要是...
阅读全文
摘要:SOA SOA 是通过功能组件化、服务化,来实现系统集成、解决信息孤岛,这是其主要目标。而更进一步则是实现更快响应业务的变化、更快推出新的应用系统。与此同时,SOA 还实现了整合资源,资源复用。 SOA 服务的设计标准是粗粒度、高重用、灵活、标准。性能则并非首要考虑因素。 SOA 的两大功能是集成、服务编排(BPEL、BPM)。WF 在 SOA 架构中,实现服务编排的功能。 参考架构: ...
阅读全文
摘要:前言Rafy 领域实体框架作为一个使用领域驱动设计作为指导思想的开发框架,必然要处理领域实体到数据库表之间的映射,即包含了 ORM 的功能。由于在 09 年最初设计时,ORM 部分的设计并不是最重要的部分,那里 Rafy 的核心是产品线工程、模型驱动开发、界面生成等。所以当时,我们简单地采用了一个开源的小型 ORM 框架:《Lite ORM Library》。这个 ORM 框架可以生成比较简单的 Sql 语句,以处理一般性的情况。随着不断使用,我们也不断对 ORM 的源码做了不少改动,让它在支持简单语句生成的同时,也支持让开发人员直接使用手动编写的 Sql 语句来查询领域实体。但是过程中,一直
阅读全文
摘要:三个月没写日志了,比较懒散……下半年准备做OEA 的 B/S 版本,比较复杂,需要从架构设计开始认真入手。正好今天到了部门反思的时间,今天先把原来的一些设计经验总结一下,以方便将来回顾。 直入主题,这篇日志主要用于总结一些框架级别的模块设计经验。总述 一个大型的框架,必然由多个较独立的子系统/子模块构成。这些子模块如何交互,之间的接口如何定义,这是框架的架构设计的问题。而今天我主要要总结一下,针对其中的某一个子模块,应该如何进行设计。(例如,在 OEA 中有这些相对独立的模块:分布式框架、实体框架、界面生成框架、命令框架、产品线框架、分布式缓存框架、报表模块……) 我在对一个模块进行设计时,.
阅读全文
摘要:OEA框架经过几次较大的重构后,已经慢慢地变得成熟。 09年末、10年初的时候,我们发布了《OEA1.0》。至今也一年多了,中间我们并没有发布它最新的源码。所以有些朋友问到是不是这个框架已经停止开发了。 那么今天呢,我个人录制了一个简单的视频,来说明一下,OEA目前的使用方法,有兴趣的朋友也可以了解一下这个框架当前的进展。 视频中,我简单地录制了如何做一个小型的《图片管理系统》。我先随便列举几点 OEA 目前做到的功能:快过原型:在理解领域模型的基础上,要搭建整个应用程序,扣除中间的一些讲解占用的时间,完全可以在5分钟内完成。真正做到“快过原型”。基于产品线开发:能让开发项目快速转换为开发产.
阅读全文
摘要:由于之前已经尝试使用过 EF CodeFirst CTP4,所以这次在EF4.1发布的第三天,在 OEA 框架中已经支持使用它来实现数据访问层。而且,我们准备逐渐把原有的较量级ORM框架给替换掉,并且使用EF中的元数据系统来完全充当 OEA 中的 ORM 元数据,以便使用这些映射信息来实现一些更多的
阅读全文