谈谈代码——如何避免写出糟糕if...else语句

2019-01-18
阅读 15 分钟
6.2k
在写代码的日常中,if...else语句是极为常见的.正因其常见性,很多同学在写代码的时候并不会去思考其在目前代码中的用法是否妥当.而随着项目的日渐发展,糟糕的if...else语句将会充斥在各处,让项目的可维护性急剧下降.故在这篇文章中,笔者想和大家谈谈如何避免写出糟糕if...else语句.

ZStack源码剖析之二次开发——Debug的常用技巧

2018-08-11
阅读 20 分钟
3k
在前文 ZStack源码剖析之二次开发——可扩展框架中,我们大概的了解了如何在ZStack中进行二次开发。在本文,笔者将和大家一起了解一下常用debug管理节点的方法,用于更好的了解运行时的情况。

ZStack源码剖析之二次开发——在Utility上堆代码

2018-05-25
阅读 27 分钟
4.6k
在上篇文章中(ZStack源码剖析之二次开发——可扩展框架),我们简单的了解了一下ZStack核心引擎的二次开发技巧。在这篇文章中,我们将一起来了解ZStack-Utility(即ZStack的Agent端)的二开姿势。

ZStack源码剖析之二次开发——可扩展框架

2018-04-16
阅读 3 分钟
4.2k
在ZStack博文-5.通用插件系统中,官方提出了几个较为经典的扩展方式。但在实际的二次开发中,这些做法未必能够完全满足需求。今天笔者就和大家一起来看一看一些常见的扩展方法。

ZStack源码剖析之模块鉴赏——LongJob

2018-03-11
阅读 16 分钟
3k
在ZStack中,当用户在UI上发起操作时,前端会调用后端的API对实际的资源发起操作请求。但在一个分布式系统中,我们不能假设网络是可靠的(同样要面对的还有单点故障等)——这往往导致API会超时。ZStack有默认的API超时机制,为30mins。但从UI上看来,用户的体验不是很好,如下:

ZStack源码剖析之设计模式鉴赏——策略模式

2018-03-01
阅读 5 分钟
4k
无论什么程序,其目的都是解决问题。而为了解决问题,我们又需要编写特定的算法。使用Strategy模式可以整体地替换算法的实现部分。能够整体地替换算法,能让我们轻松地以不同的算法去解决一个问题,这种模式就是Strategy模式。

ZStack源码剖析之核心库鉴赏——EventFacade与CloudBus

2018-02-21
阅读 48 分钟
5.6k
EventFacade是一个很有意思的组件,因为它几乎是自举的。这就意味着有兴趣的朋友可以copy and paste,然后稍作修改就可以在自己的项目里工作起来了。

技巧:ZStack如何做Integration Test

2018-02-01
阅读 28 分钟
4.7k
笔者工作2年有余,刚开始实习的时候是不知道自动化测试这种神器的,在刚开始工作的时候往往苦于救火灭火再救火,搞的心力憔悴,一度怀疑猿生。实践自动化测试后感觉生产力慢慢的解放了,那个时候搞的还是偏单机应用,测试的Cover也是止步在单机应用上。在接触到了ZStack以后,由于其产品化的特性,对软件质量要求偏高,...

ZStack源码剖析之设计模式鉴赏——三驾马车

2018-01-19
阅读 5 分钟
4.2k
随着ZStack的版本迭代,其可以掌管的资源也越来越多。但新增模块的结构却还是大致相同,此即是ZStack的经典设计模式——这套模式也被开发者称为ZStack三驾马车。

ZStack源码剖析之核心库鉴赏——FlowChain

2017-12-19
阅读 15 分钟
3.8k
在ZStack(或者说产品化的IaaS软件)中的任务通常有很长的执行路径,错误可能发生在路径的任意一处。为了保证系统的正确性,需提供一种较为完善的回滚机制——在ZStack中,通过一个工作流引擎,ZStack的每一个步骤都被包裹在独立的工作流中,可以在出错的时候回滚。此外,通过在配置文件中组装工作流的方式,关键的执行路...

ZStack源码剖析之核心库鉴赏——ThreadFacade

2017-12-10
阅读 16 分钟
4.8k
在ZStack中,最基本的执行单位不仅仅是一个函数,也可以是一个任务(Task。其本质实现了Java的Callable接口)。通过大小合理的线程池调度来并行的消费这些任务,使ZStack这个Iaas软件有条不紊运行在大型的数据中心里。

ZStack源码剖析之核心库鉴赏——Defer

2017-10-03
阅读 3 分钟
2.7k
本文首发于泊浮目的专栏:[链接] 在Go语言中,有一个关键字叫做defer——其作用是在函数return前执行。在ZStack中也有类似的工具类,让我们来看看吧。 演示代码 {代码...} 这段代码是ZStack ManageNode(简称MN)在接收到创建计算规格的请求后的处理逻辑,大致的逻辑即: 在DB中创建一条记录 添加当前账户与该计算规格的关联...

ZStack源码剖析:如何在百万行代码中快速迭代

2017-09-23
阅读 4 分钟
7.9k
ZStack是下一代开源的云计算IaaS(基础架构即服务)软件。它主要面向的是未来的智能数据中心,通过提供的API来管理包括计算、存储和网络在内的数据中心的各种资源。跟OpenStack相比,ZStack具有易用、稳定、灵活、超高性能等特点。其单管理节点可以管理1万台物理机规模集群,多个管理节点构建的集群可以做到使用一个数据...