• Python设计模式 - MapReduce模式

    MapReduce是一种从函数式编程语言借鉴过来的模式,在某些场景下,它可以极大地简化代码。先看一下什么是MapReduce:

    Read more
  • 在Python中使用class decorator和metaclass

    在Python语言中class层面的decorator和metaclass可能是绝大部分Pythoner都没有使用过的黑魔法了。笔者自问,到目前为止还没有在任何一个部署的代码中使用过这两个语言特性,对metaclass的需求也仅仅一次,最后还是用别的手段解决了。

    Read more
  • Python设计模式 - 装饰器模式

    修饰模式,是面向对象编程领域中,一种动态地往一个类中添加新的行为的设计模式。就功能而言,修饰模式相比生成子类更为灵活,这样可以给某个对象而不是整个类添加一些功能。 通过使用修饰模式,可以在运行时扩充一个类的功能。原理是:增加一个修饰类包裹原来的类,包裹的方式一般是通过在将原来的对象作为修饰类的构造函数的参数。装饰类实现新的功能,但是,在不需要用到新功能的地方,它可以直接调用原来的类中的方法。修饰类必须和原来的类有相同的接口。

    Read more
  • Python设计模式 - 单例模式

    Python语言当然也是有设计模式的,有人说,设计模式是为语言的设计打补丁,因为语言本身无法直接在语法层面支持。而谈设计模式,多数都采用JAVA或者C++语言来描述,为免引起口水战,笔者不打算比较Python与这些语言的特点,而是从我自己的实践来聊聊我所用到和了解的Python设计模式。

    Read more
  • 自己动手编写持续交付系统(二)

    自己动手编写持续交付系统(一)中,我们从基本的功能需求出发,构建了一个拥有基本功能的持续交付系统的骨架。

    Read more
  • 自己动手编写持续交付系统(一)

    前言

    持续交付系统或者持续集成系统是现代软件开发不可或缺的基础设施,尤其在大型项目中,持续交付系统的质量和效率往往极大影响开发的质量和效率。许多大型软件项目甚至有一个或多个专门的团队来开发和维护这类系统。另外,持续交付系统包含软件研发中的大量一手数据,很好地挖掘这些数据,也可以得到很多有价值的信息。

    Read more
  • 使用chromebook打造穷人版移动办公平台

    很早就听说chromebook的大名,知道它是google基于linux平台打造的chrome os,特点是一切应用皆在web,国内没有发售。

    Read more
  • Something you may have misunderstanding in robotframework

    There are many RobotFramework users, with huge amount of libraries, keywords, resources and test suites. But I guess there should be something you misunderstand of this framework. I listed some of them here, and if you have others, that should be very helpful if you post them in the comment.

    Read more
  • Stop RobotFramework in a monitor thread

    There is a common scenario in a TA solution, during the execution of a series of cases, there is a backend monitoring job that check some error logs or specified events of the system, when it detects some critical errors, it will stop the whole TA execution.

    Read more
  • Do static analysis on RobotFramework cases

    As we know, “static analysis” is valuable and important in developing work. Many genious tools like lint, klocwork, pyflakes and jshint help the developer to find the problems earlier.

    Read more