高效程序员工作法(七)

目录

 

前言:

 一、你真的了解重构吗?

一句话总结:

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

一句话总结: 

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

 一句话总结:

将你的工作过程自动化。

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

一句话总结:

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

  一句话总结:

六、如何做好验收测试?

一句话总结:


前言:

  本篇博客内容来源自:极客时间课程《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 的测试用例,关键点在用业务视角描述。

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

一句话总结:

将验收测试自动化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
10x 程序员工作是一种高效、聚焦和快速迭代的工作论,旨在提高程序员工作效率和生产力。下面是对10x 程序员工作的简要回答: 1. 专注于高价值任务:10x 程序员专注于解决具有高价值和重要性的任务,避免浪费时间和精力在琐碎的工作上。 2. 学习新技术和工具:10x 程序员持续学习和掌握新的技术和工具,使自己保持在技术的最前沿,提高开发效率和解决问题的能力。 3. 自动化:10x 程序员善于使用自动化工具和脚本,通过自动化来减少手动操作和重复劳动,提高效率。 4. 代码质量和可维护性:10x 程序员注重编写高质量的代码,包括良好的命名、清晰的注释和可维护性,以减少代码维护的成本和问题的产生。 5. 持续集成和测试:10x 程序员将持续集成和测试作为开发流程的重要环节,通过自动化测试来保证代码的质量和稳定性。 6. 快速迭代和反馈:10x 程序员倡导快速迭代和及时反馈,通过快速开发、部署和用户反馈来不断改进产品和解决问题。 7. 团队合作和知识共享:10x 程序员懂得如何与团队成员合作和沟通,分享知识和经验,提高整个团队的效率和质量。 8. 注重性能和可扩展性:10x 程序员关注程序的性能和可扩展性,通过优化和调优来提高系统的性能和响应能力。 9. 持续改进和学习:10x 程序员思维开放,乐于接受新的挑战和反馈,不断改进和学习,提高自己的技术和职业能力。 10. 关注用户需求和体验:10x 程序员将用户需求和体验放在首位,注重产品的用户体验和价值,以用户满意度作为最终目标。 总而言之,10x 程序员工作强调高效、聚焦和快速迭代,通过专注于高价值任务、持续学习和改进、自动化和团队合作等方式,提高程序员工作效率和生产力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值