《软件工程之美》打卡第五周

我们做每件事都有它原始的目标,如果现在做的事情不是围绕这个目前做的,那么你的方向就错了,需要停下来想想。

做事情需要给自己定一些原则,避免产生技术债务,比如:

  • 先运行再优化

  • 不复制粘贴代码

  • 每个PR要尽可能小

有原则还不够,需要有计划去执行,设定deadline,让每件事都能够在限定的时间内完成。

要事第一

这里其实说的就是把事情按重要紧急程度排个优先级,也就是我们常看到的时间四象限

  • 重要紧急的事情马上处理

  • 重要不紧急的事情,要多花时间

  • 紧急不重要的事情延后集中做

  • 不重要不紧急的事情尽可能少做或者不做

26 | 持续交付:如何做到随时发布新版本到生产环境?


我们经常听到DevOps中的CI/CD,就是持续集成持续交付,这节课还提到了持续部署,是一种更自动化的程度。我们该怎么理解它们之间的区别,首先它们前面都有共同之处——持续,就是把软件工程中让人痛苦的事情更加频繁的做,更低成本的做,从手动变成自动的过程就是持续

持续拆分出来就是集成交付部署,它们的概念如下:

  • 集成:开发人员将代码从分支合并到主干,必须测试才能合入

  • 交付:基于集成,测试完成之后构建生成发布包,部署到测试环境和生产环境

  • 部署:特指环境部署,测试和生产环境

我们软件工程的发展就是从持续集成持续交付再到持续部署,后者都是在前者的基础上,更高级别的实现自动化,对开发人员和工具都要求更高。

持续交付和用什么开发模型没有关系,它的好处有以下几点:

  • 尽快暴露问题

  • 极大提升效率

  • 提升质量

  • 降低项目成本

还有关于如何搭建持续交付系统,主要还是基于源代码工具和持续集成工具,然后配合自身业务去落地实施,大家可以去学习乔梁老师的持续交付:发布可靠软件的系统方法

27 | 软件工程师的核心竞争力是什么?(上)


关于软件工程师的核心竞争力话题,估计大家都很感兴趣,我也一样,也一直思考自己所掌握的能力是否能成为自己的核心竞争力。这节课主要是讲了哪些方面的能力构成了软件工程师的核心竞争力。

学习能力

不只掌握一种语言和能够熟练使用工具、框架,能够快速掌握编程语言、框架、工具的学习能力。关于学习能力这一点,我的看法是业务不可能一直不变,技术不可能不会更新迭代,能让我们更快适应变化的就是学习能力。就好像现在做终端,你只会Android,不懂点iOS,面对跨端的问题你就不知道怎么解决,换做另一个两端都精通的同学,别人的竞争力就比你要强了。

解决问题的能力

关于这个点,我之前还专门写过一篇文章:

https://www.jianshu.com/p/bdd7e4927b2d

我们日常工作体现解决问题的能力核心在于:

  • 发现问题(方案存在的问题,异常情况)

  • 分析问题(分析故障的深层次原因,避免下次再发生,提出机制)

  • 解决问题(学会提问,学会搜索)

影响力

  • 经验总结分享,技术博客、论坛、技术社区

  • 独特的项目、公司或者行业经历

  • 技术大会、公开演讲等

以上就是我关于软件工程师核心竞争力的总结,个人感觉还是蛮有收获的。

28 | 软件工程师的核心竞争力是什么?(下)


上节课讲的什么是软件工程师核心竞争力,这节课讲的是怎么去做。宝玉老师分享了以下内容,我做了下提炼:

如何提升学习能力

  • 深耕某技术领域,吃透领域知识,构建知识领域森林

  • 横向扩展相近领域,利用已有知识,加速学习速度

如何提高解决问题的能力?

一套可行的方法论:

  • 第一步:明确问题(分析问题本质,是否还有其他问题)

  • 第二步:拆分和定位问题(复杂问题拆分成简单问题,逐个定位)

  • 第三步:提出解决方案并总结

  • 更好的解决

  • 预防同样问题的方案

如何提升影响力?

  • 在某个领域做出足够牛的成绩

  • 做事情超出预期,期望值管理

  • 帮助他人就是帮助自己

  • 分析就是学习和打造影响力

宝玉老师提的这三点也是我一直在践行的,纵向深耕,横向扩展技术领域,日常思考更好的解决工作中的问题,总结经验沉淀方法论,这让我在技术这条路走得更加自信。

29 | 自动化测试:如何把Bug杀死在摇篮里?


这一讲主要就是讲通过自动化测试来提升代码质量,以下是我的总结:

自动化测试其实就是用程序来代替人来做测试,我们测试一般包含以下几个要素:

  • 测试用例

  • 输入和操作

  • 真实情况和预期情况

一些简单重复的逻辑写成单元测试,每次编译之前都自动跑一边,百分百通过再继续代码合流,保证了代码稳定,预防产生新的bug。

自动化测试分类

Google将自动化测试分为三大类:

  • 小型测试(我们常说的单元测试,针对一个函数或者一个类的测试)

  • 中型测试(验证两个或者多个模块之间的交互,也叫集成测试,模拟或者使用真实的服务来完成测试)

  • 大型测试(不模拟,使用真实的服务进行测试,也叫系统测试或者端到端测试)

一图胜千言:

测试类型

测试金字塔,从上往下速度更快,从下往上实现成本更高:

测试金字塔

自动化代码怎么写?包含四个部分:

  • 准备(创建实例、创建模拟对象)

  • 执行(执行测试的方法,传入参数)

  • 断言(校验结果,预期成功or失败)

  • 清理(清理数据,避免影响下一次测试)

完整的自动化测试包含三个部分:

  • 验证功能是不是正确

  • 覆盖边界条件

  • 异常和错误处理

为项目实施自动化测试

一图胜千言:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N2DHzlEw-1582021271685)(https://upload-images.jianshu.io/upload_images/224008-e86108564a302795.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

核心在于能够在持续集成环境中自动跑写好的测试代码。

这节课很好的讲了自动化测试的本质,也是我们项目目前欠缺的模块,后面会尝试推广到项目组。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
img

分享读者

作者2013年java转到Android开发,在小厂待过,也去过华为,OPPO等大厂待过,18年四月份进了阿里一直到现在。

被人面试过,也面试过很多人。深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长,而且极易碰到天花板技术停滞不前!

我们整理了一份阿里P7级别的Android架构师全套学习资料,特别适合有3-5年以上经验的小伙伴深入学习提升。

主要包括阿里,以及字节跳动,腾讯,华为,小米,等一线互联网公司主流架构技术。如果你有需要,尽管拿走好了。

35岁中年危机大多是因为被短期的利益牵着走,过早压榨掉了价值,如果能一开始就树立一个正确的长远的职业规划。35岁后的你只会比周围的人更值钱。

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img
年以上经验的小伙伴深入学习提升。

主要包括阿里,以及字节跳动,腾讯,华为,小米,等一线互联网公司主流架构技术。如果你有需要,尽管拿走好了。

[外链图片转存中…(img-Mz5TWnWQ-1712878103333)]

35岁中年危机大多是因为被短期的利益牵着走,过早压榨掉了价值,如果能一开始就树立一个正确的长远的职业规划。35岁后的你只会比周围的人更值钱。

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-E1twr8xT-1712878103334)]

  • 10
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值