39项目总结:做好项目复盘,把经验变成能力

相信大家都有这种体验,经历了无数个“996”加班,项目终于成功上线了,也进入了稳定运行阶段,你终于可以松一口气,准备迎接下一个项目的挑战了。

然而,这时还有一件事不要忘记了,那就是对项目复盘,全面总结一下项目过程中的得与失。

什么是项目复盘?

阅读全文

38日志管理:如何借助工具快速发现和定位产品问题

在开始学习之前我想先问你几个问题:

  • 如果你的网站或者服务出现故障,是谁第一时间发现问题的?用户还是运维人员?
  • 假设你的服务架构是由若干微服务组成的,其中一个微服务的异常导致了你的某个API请求异常,你是否能快速定位到是哪个微服务出了问题?
  • 在部署系统后,你是否能观察出来系统的性能是上升了还是下降了?

阅读全文

37遇到线上故障,你和高手的差距在哪里

在软件上线后,发生线上故障是一个常见的问题,但怎样对线上的故障进行处理,却很能反映出新手和高手程序员的差距。对于团队来说,如何应对线上故障,也同样能反映出线上运维水平的高低。

今天,我将带你一起分析一下,新手和高手在应对故障时有什么不同?大厂在处理线上故障时,有哪些可以学习借鉴的地方。

遇到线上故障,新手和高手的差距在哪里?

阅读全文

36DevOps工程师到底要做什么事情

这些年,有关DevOps的概念很火,大家都在讨论DevOps,有人说DevOps就是自动化运维,有人说DevOps是流程和管理,还有人说DevOps是一种文化。以前的运维工程师也纷纷变成了DevOps工程师。

今天,我将带你一起了解一下,究竟什么是DevOps?DevOps到底要做什么事情?

传统的运维模式以及面临的挑战

阅读全文

35版本发布:软件上线只是新的开始

上一章我们学习了软件测试篇,今天,我们将从版本发布这个话题开始,进入到运行维护篇的学习。

说到版本发布,对于很多开发人员来说,觉得是很简单的一个事情,就是将程序编译打包部署,但实际发布的时候,却经常出现发布错版本的问题,或者是发布前修改了一点代码导致上线出现Bug的情况发生。

而版本发布对于很多项目管理者来说,又是一个很纠结的事情,觉得还有很多功能没完成,很多Bug还没改完,害怕用户负面评价,结果时间一拖再拖,迟迟无法上线。

阅读全文

34账号密码泄漏成灾,应该怎样预防

我们日常总能看到各种与黑客和网络安全相关的新闻,而这其中大部分安全问题都和软件程序有关系。比如说像CSDN数据库泄漏事件、携程泄漏用户银行卡信息事件、有些电商网站用户可以篡改支付购买金额等等。

在软件项目开发时,安全是一个很容易被忽略的问题,但又可能会造成严重损失。所以我们在软件开发时有必要对安全问题引起重视,防患未然,构建安全软件。

今天,我将带你了解一下软件开发中的安全问题,学习如何构建安全的软件,以及出现了安全问题之后该怎么办。

阅读全文

33为什么不应该通过QQ-微信-邮件报Bug

十多年前,当我还是个野路子程序员时,我在外面接私活做项目,客户在使用过程中遇到了Bug,直接就截个图,或者是用Word文档整理在一起,从QQ或者邮件上把Bug信息发送给我,我收到后再修复更新上线。

而现在正规的软件项目已经不会再用这种原始的方式来报Bug了,而是会借助测试工具来帮助报告和跟踪Bug,即使你偶尔能看到有项目还在采用原始方式报Bug,你肯定也会觉得这样做不专业。

但不知道你有没有仔细想过这个问题,为什么现在不通过QQ/微信/邮件报Bug,又有哪些测试工具可以帮助你更好地发现、报告和跟踪软件中的Bug呢?今天我们会展开讨论这个问题。

阅读全文

32软件测试:什么样的公司需要专职测试

若干年前,网络上对于软件开发是否需要专职测试有过一次讨论,代表文章有:左耳朵耗子老师写的《我们需要专职的QA吗?》,然后邹欣老师对此回复《测试QA的角色和分工》。

从这些年业界发展趋势来看,看起来很多公司都不需要专职测试了,只需要开发兼任测试工作就可以了。比如,Facebook号称自己没有专职测试工程师,Google和Amazon虽然有专职的测试工程师,但都是开发人员对质量负责,开发人员写大量的自动化测试代码。但这样真的可行吗?

在回答这个问题之前,我们还是先来看看,软件测试的主要工作是什么?只有搞清楚软件测试的工作,才能搞清楚这部分工作是否可以由开发来替代,是否需要专职测试。

阅读全文

31软件测试要为产品质量负责吗

从这一篇开始,我们将进入软件工程中的测试模块的学习。

说到软件测试,你一定不会陌生,尤其是如果你做开发相关岗位的话,一定是对测试又爱又恨,一方面测试从你的程序找出Bug,然后你还要费心去修复;另一方面测试帮你发现Bug,修复后能很好的提升质量。

正因为测试能发现软件中的质量问题,通过测试能有效提升软件质量,慢慢的大家就觉得软件测试能保障质量,所以测试要对质量负责。开发也会对测试产生依赖心理,很多功能模块实现后,就扔给测试人员去测试。

阅读全文

3期-软件开发18个常见问题解决策略-开发编码相关

我们专栏已经完成了架构设计和开发这两个模块的学习。这两个模块都是和技术有很大关系,也是很多人关心的内容。

希望你通过对架构设计内容的学习,能控制好软件项目中技术复杂的问题。遇到技术选型,能心中有数,通过一个科学的过程去完成选型;对于项目中的技术债务,能及早识别,及早应对。

通过对开发模块的学习,可以帮助你在项目中搭建持续集成环境,推行自动化测试,改进基于源代码管理工具的开发流程。借助工具和流程,让你项目的开发质量更上一个台阶。

阅读全文

30用好源代码管理工具,让你的协作更高效

在今天,源代码管理工具在软件项目中已经是标准配置了,几乎每个软件项目都会应用到,可以说是最基础的项目开发工具。选择也很多,可以自己搭建源代码管理服务,也可以直接用网上托管的服务,例如Github、Gitlab、BitBucket等。

但同样是应用源代码管理工具,为什么有的团队就能做到代码质量高,随时能发布新版本,高效开发?而有的团队却不能做到高效开发,拿到的代码也不稳定,合并时冲突很多?

今天,我将带你了解一下源代码管理工具,以及如何才能应用好源代码管理工具,以保证代码质量稳定,协作高效。

阅读全文

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

前不久我所在项目组完成了一个大项目,把一个网站前端的jQuery代码全部换成React代码,涉及改动的项目源代码文件有一百多个,变动的代码有几千行,最终上线后出乎意料的稳定,只有几个不算太严重的Bug。

能做到重构还这么稳定,是因为我们技术水平特别高吗?当然不是。还是同样一组人,一年前做一个比这还简单的项目,上线后却跟噩梦一样,频繁出各种问题,导致上线后不停打补丁,一段时间才逐步稳定下来。

这其中的差别,只是因为在那次失败的上线后,我们总结经验,逐步增加了自动化测试代码的覆盖率。等我们再做大的重构时,这些自动化测试代码就能帮助我们发现很多问题。

阅读全文

28软件工程师的核心竞争力是什么-下篇

在上一篇中,我们讨论了什么是软件工程师的核心竞争力,也就是学习能力、解决问题的能力和影响力。

今天我就来跟你谈一谈,如何提升软件工程师的核心竞争力,也就是说,如何分别提升你的学习能力、解决问题能力和影响力。

如何提升学习能力?

阅读全文

作者的图片

TsingChan

万事头开难,好开的始成功的一半。
软件工程。
践行目标管理,践行自动化降本提效,践行社会主义核心价值观。

IT IS ALL

中国.福建