高效程序员工作法(七)

目录

 

前言:

 一、你真的了解重构吗?

一句话总结:

 二、”懒惰”应该是所有程序员的骄傲

一句话总结: 

 三、一个好的项目自动化应该是什么样的?

 一句话总结:

将你的工作过程自动化。

四、程序员怎么学习运维知识?

一句话总结:

 五、持续交付:有持续集成就够了吗?

  一句话总结:

六、如何做好验收测试?

一句话总结:


前言:

  本篇博客内容来源自:极客时间课程《10x程序员工作法》处于学习记录。将个人认为比较重要的知识点进行摘抄记录。有兴趣的同学去极客时间学习完整课程。

10x程序员工作法_开发效率_10倍效率-极客时间


 一、你真的了解重构吗?

 重构,本质上就是一个微操作的实践。

 重构,也属于微操作的行列,与我们介绍的任务分解结合起来,你就能很好地理解那些重构手法  的含义了:你需要把做的代码调整分解成若干可以单独进行的重构小动作,然后,一步一步完成它。

    在这个分解出来的步骤里,每一步都可以很快完成,而且,每做完一步都是可以停下来的,这才是微操作真正的含义。

    你现在理解了,重构不仅仅是一堆重构手法,更重要的是,你需要有的是把调整代码的动作分解成一个个重构小动作的能力。

    重构(名词):对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。

   重构(动词):使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构。

一句话总结:

锤炼你的重构技能。


 二、懒惰应该是所有程序员的骄傲

    我们程序员的工作,本质上就是打造各种自动化的工具,让人们从各种繁复的工作中解脱出来,让人有机会偷懒

    做有价值的事是重要的,这里面的有价值,不仅仅是了什么,通过不做节省时间和成本也是有价值的。

    你的日常工作是给别人打造自动化,但你自己的工作够自动化吗?

    为什么我会如此看重设计呢?在软件开发中,其它的东西都是易变的,唯有设计的可变性是你可以控制的。 

  对于要自动化的事,我们需要反思一下,在为别人打造自动化工具的同时,我们自己的工作过程有没有很好地自动化。而如果我们想拥有打造良好的自动化工具,我们需要对软件设计有着充分地理解。

一句话总结: 

请谨慎地将工作自动化


 三、一个好的项目自动化应该是什么样的?

 一句话总结:

将你的工作过程自动化。


四、程序员怎么学习运维知识?

     首先,要理解运维体系的语言。运维的语言是什么呢?是 Shell,人们最熟悉的应该是 Bash。我们通过操作系统与计算机打交道,但我们无法直接使用操作系统内核Shell 为我们提供了一个接口,让我们可以访问操作系统内核提供的服务。

    有了语言,再来就是核心库了。运维的核心库是什么?就是 Shell 提供的各种 Unix/Linux 的核心命令,比如:lscdpsgrepkillcutsortuniq 等等,它们几乎与操作系统绑定在一起,随着操作系统一起发布。

   了解了核心的部分,还需要了解一些第三方库,运维知识的第三方库就是那些不属于操作系统核心命令的命令,比如rsynccurl 等。

    运维框架其实就是像 ChefPuppetAnsible 之类的配置管理工具。它们做的事就是把那些繁琐的工作按照我们的定义帮我们做好。

 

一句话总结:

有体系的学习运维知识


 五、持续交付:有持续集成就够了吗?

    什么是持续交付?简言之,它就是一种让软件随时处于可以部署到生产环境的能力。从一个打好的发布包到部署到生产环境可用,这中间还差了什么呢?那就是验证发布包,部署到环境中。

    DevOps 是一种软件交付的理念和方法,目的是增强软件的可靠性。从名字便不难发现,DevOps 是将开发(Development)和运维(Operations)组合在了一起。

  让软件具备部署到生产环境的能力,这里面有两个关键点:验证发布包和部署。

        验证发布包,不仅是功能上的验证,还包括与环境结合在一起的验证。所以,通常会用几个不同的环境验证,每一个环境都是一个单独的阶段,一个阶段不通过,是不能进入下一阶段的,这种按照不同阶段组织构建的方式,称之为构建流水线(Build Pipeline)。

    与部署相关的一个重要概念是 DevOps,也就是将开发和运维结合起来。DevOps 包含了很多方面,对程序员最直接的影响是各种工具的发展,这些工具推动着另一个理念的发展:基础设施即代码(Infrastructure as code 有赖于这些工具的发展,今天定义交付,就不再是一个发布包,而是一个可以部署的镜像。

 

  一句话总结:

将部署纳入开发的考量


、如何做好验收测试?

     行为驱动开发中的行为,指的是业务行为。BDD 希望促进业务人员与开发团队之间的协作,换句话说,如果你想做 BDD,就应该用业务语言进行描述。

BDD 则让我们换了一个视角,用业务语言做系统测试,所以,它是一个更高级别的抽象。

想写好 BDD 的测试用例,关键点在用业务视角描述。

自动化验收测试也是一个逐步发展的过程,从最开始的各自为战,到后来逐渐形成了一个完整的自动化验收测试的体系。

一句话总结:

将验收测试自动化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值