尽量使用ansible的模块,我们平常的shell命令不具备幂等性,譬如说创建一个文件夹,如果文件夹存在的话,命令执行不成功ansible就直接报错终止了。
使用ansible的模块可以指定系统的状态,在ansible执行完后只要系统达到指定的状态就可以了,文件夹如果存在就不做任何操作,不存在就创建,可以多次运行。
尽量使用ansible的模块,我们平常的shell命令不具备幂等性,譬如说创建一个文件夹,如果文件夹存在的话,命令执行不成功ansible就直接报错终止了。
使用ansible的模块可以指定系统的状态,在ansible执行完后只要系统达到指定的状态就可以了,文件夹如果存在就不做任何操作,不存在就创建,可以多次运行。
liquibase在其官网首页中有一个很明确的定位,
那就是Source Control For Your Database,Liquibase记录你的数据库变更,
可以在你你迁移时迅速的生成一个与原数据库一致的库出来。还可以与其余数据库做diff,支持多人开发等功能。
上周看了代码大全里面的防御式编程那一章,颇有感触,结合平日里的编程实践,
对自己的一些编程方式与想法记录一下,也探讨一下如何写出更安全、更有可读性的代码。
防御式编程这一概念来自防御式驾驶,即要建立起这样一种思维:你永远也不知道另一位司机将要做什么,时刻提高警惕,这样才能在其他司机做出危险动作时不受伤害。防御式编程的主要思想是子程序应该不因传入错误数据而被破坏,哪怕是由其他子程序产生的错误。以怀疑的眼光看待任何外部数据,建立自己的准入机制,这样才能使自己的程序更加健壮。
决定如何处理错误的输入数据
防御式编程的理念就是在一开始就不要引入错误。
如果我们Google一下ansible,第一条出来的就是ansible的官网,它的title是“Ansible is Simple IT Automation”,从这里我们就能了解了ansible的目标:自动化。什么的自动化呢,其实是部署自动化(infrastructure as code),将你原先一步一步使用命令转变为通过一系列的状态检查来安装一个软件,可以实现批量部署,一键部署。
ansible有很多的优势,我觉得最重要的就是简单。ansible无需你安装客户端,只需要在一台机器上安装好ansible,配置好ssh,就可以使用了。语法也很简单,使用一系列的task来指定要做的任务,yaml格式提供了很好的缩进,一目了然。
Q:
1:何为有效性?
2:如何做到有效性?
3:何为管理者,如何做一个有效的管理者?
4:经过何种训练,一个人才能具备有效性
作为一个有效的管理者,必须在思想上养成如下的习惯:
1:知道如何利用自己的时间
2:注意使自己的努力产生必要的成果,而不是工作本身,重视对外界的贡献
3:把工作建立在优势上,自己的,上下级的优势
4:精力集中于少数领域
5:善于做出有效决策
才华本身并不等于成就。
刚开始工作的时候对单元测试是一种神秘主义,觉得测试很好,但不知道如何开始。团队里也没人去写单元测试,偶尔有个也是写的集成测试,用Spring的test,将所有依赖注入进来,然后System.out.println输出肉眼观测数据是否符合要求,这让我对测试有向往,但是又嫌麻烦,毕竟这样测试写了很多的代码,但是速度上、准确性上都达不到要求。
就这样一直手动测试了很长时间,也听多了单元测试,自动化测试等等名词,却一直不得其门而入。买过一本单元测试相关的书,看完了,但就是没有开窍。去开发者头条上搜相关测试主题,讲的都是一些思想上的,对我目前的疑惑却没有什么帮助,毕竟我还没有入门。
后来忘了在哪又看到了单元测试的定义:是对一个模块,一个类或一个函数的正确性做检测的测试工作。突然有点明白了如何来写单元测试,以往一直迷惑这么多依赖该怎么办,覆盖不到全部执行路径怎么办,看到一个函数这四个字我找到了答案:一个函数依赖不会很多,可以使用mock来解决;一个函数的全部执行路径也就那么多,每种情况都考虑到也不会很多;前面说的使用System.out.println肉眼测试,也因为函数只有一个返回值而可以使用Assert类来断言来判断正确性。关键就在于单元,一开始把目光着眼在一个服务类上,依赖十几个服务,几十个外部函数调用,使我望而却步,而把焦点放到函数上,一来可以避免自己写超大的函数,二来依赖少,写单元测试的阻力变小了。