Overall Junit的成功已不言而喻,其广泛应用于单元测试,测试驱动开发领域.大量的工具,IDE都集成了JUnit,著名的有Maven,Ant,Eclipse,甚至像Google SDK提供的Android Testing Framework也是基于JUnit. Junit的成功离不开其优美的架构设计,本着知其然,更要知其所以然的宗旨,希望用这个系列来记录下自己的对Junit4设计的理解. 如有不对或不足的地方,欢迎各位指正! Junit4 的入口在哪? 要想研究Junit4的源码,首先我…
Overall 系列入口: Junit4 架构设计系列(1): Request,ClassRequest 和 RunnerBuilder 前文中,我们基本理清了Junit4执行Case大体上的Flow: Request -> ClassRequest.getRunner() -> AllDefaultPossibilitiesBuilder.safeRunnerForClass() -> runner.run() 并且介绍了类Request,ClassRequest,和RunnerBui…
资源调度基础 scheudler是kubernetes中的核心组件,负责为用户声明的pod资源选择合适的node,同时保证集群资源的最大化利用,这里先介绍下资源调度系统设计里面的一些基础概念 基础任务资源调度 基础的任务资源调度通常包括三部分: 角色类型 功能 node node负责具体任务的执行,同时对包汇报自己拥有的资源 resource manager 汇总当前集群中所有node提供的资源,供上层的scheduler的调用获取,同时根据node汇报的任务信息来进行当前集群资源的更新 sch…
最近一段时间,在思考如何合理的架构一个可扩展性良好的界面编程方式.这一部分的成果做成了一个叫ElementKit的库.目前功能在不断的完善中. 关于iOS的架构,看多了MVVM,VIPER,MVC,MVP,MVCS....的介绍文章.真正实践下来的估计也就是MVC和MVVM了.MVC是系统自带的框架,自然用的多.而MVVM解决了Controller臃肿的问题,再加上神器RAC也被很多团队接纳,甚至有一段时间出现了很多的文章鼓吹该模式如何如何了得.而在设计或者采纳一个架构的时候,我们到底在思考些什…
本文翻译自PhilCalçado的官网:https://philcalcado.com/2015/09/18/the_back_end_for_front_end_pattern_bff.html 对我们的架构演变保持透明是我们技术战略的一部分.我们在无数场合谈过的但从未真正详细描述过的东西是我们应用后端用于前端架构模式或BFF.这篇文章记录了我对如何开发和应用这种技术的理解. 我对软件组件演变的理解 在完全分布式架构变得可行之前,组织通常会在一个或多个层中构建应用程序.层是应用程序的高度耦合但…
部标gps监控平台的架构,随着平台接入的车辆越来越多,架构也面临越来越大的负载挑战,我们当然希望软件尽可能的优化并能够接入更多的车辆,减少在硬件上的投资.但是当车辆增多到某一个临界点的时候,仍然要面临的三个问题: 1)连接的限制 服务器软件接入终端的连接数是有限的,无论如何优化,都是有限的,接入的增多就会排队,超时timeout重置reset等问题就会出现; 2)部标808服务器软件的内存限制的问题 内存的限制,服务器操作系统中一个进程所承受的内存是有限制的,超过则导致服务器软件进程内存溢出而退…
这是有关Angular应用架构设计系列文章中的一篇,在这个系列当中,我会结合这近两年中对Angular.Ionic.甚至Vuejs等框架的使用经验,总结在应用设计和开发过程中遇到的问题.和总结的经验,来说一下Angular应用的架构设计相关的一些问题,包括像组件设计.组件之间的数据交互与通信.Ngrx Store的使用.Rxjs的使用与响应式编程思想.这些设计思想和方法,不仅适用于Angular,也适用于Vuejs.React等前端框架.当然,应用架构设计没有一个放之四海皆准的标准,他只能是根据…
源码地址:GitHub·点这里 || GitEE·点这里 一.Seata简介 1.Seata组件 Seata是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务.Seata将为用户提供了AT.TCC.SAGA.XA事务模式,为用户打造一站式的分布式解决方案. 2.支持模式 AT 模式 基于支持本地 ACID 事务的关系型数据库. Java应用,通过 JDBC 访问数据库. 一阶段:业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源. 二阶段:提交异步化,非常…
如果不太熟悉MyBatis使用的请先参见MyBatis官方文档,这对理解其架构设计和源码分析有很大好处. 一.概述 MyBatis并不是一个完整的ORM框架,其官方首页是这么介绍自己 The MyBatis data mapper framework makes it easier to use a relational database with object-oriented applications. MyBatis couples objects with stored procedur…
前言 上篇<.net core实践系列之短信服务-为什么选择.net core(开篇)>简单的介绍了(水了一篇).net core.这次针对短信服务的架构设计和技术栈的简析. 源码地址:https://github.com/SkyChenSky/Sikiro.SMS 为什么需要架构设计 有人会问短信服务也要架构设计?不就写个service封装个send方法就得了吗?干嘛还要大动干戈. 如果在单块应用的情况下,以上面的做法是无可厚非的. 然而架构设计解决的是应用复杂度,架构设计的大还是小取决于业…