在上一篇文章里,我带你一起了解了像VS Code这样的开源项目对软件工程的应用,以及如何学习借鉴优秀的项目对软件工程的应用。今天我将带你去看看像微软、谷歌、阿里巴巴这些大厂是怎么应用软件工程的,以及我们应该如何学习和借鉴他们对软件工程的实践。

我想无论你现在是否在大厂工作,都有很多途径了解到大厂是如何应用软件工程的,网上已经有很多他们员工的分享。你可能更想知道的是: 从大厂应用软件工程的实践中,你能学习什么,又该如何学习借鉴。

每个公司,都有自己的历史和文化,他们的文化又影响了各自的软件开发模式。

阅读全文

如果你所在的团队在日常的软件项目开发中,能科学地应用软件工程的知识,让你的项目能持续取得进展,最终交付的产品也有很好的质量,那么是一件非常幸运的事情。

然而现实中,很多人并没有机会去参与或观察一个好的项目是什么样子的,也没机会去分析一个好的项目是如何科学应用软件工程的。

好在现在有很多优秀的开源项目,不仅代码是公开的,它们整个项目的开发过程都是公开的。通过研究这些开源项目的开发,你能从中学习到一个优秀项目对软件工程的应用,加深你对软件工程知识的理解,进而应用到你自己的项目实践中。

阅读全文

42反面案例:盘点那些失败的软件项目

我想你日常一定看到过很多项目失败的案例,有些失败项目的案例甚至超出我们的想象,比如说我的朋友圈就被两个项目刷过屏,一个是号称史上最烂的开发项目,开发12年,六百万行代码;一个是美国联邦调查局的一个软件项目,花了1.7亿美元,最后变成了豆腐渣工程。

也许大多数人看完这类文章后,会当作一个有趣的故事,觉得他们软件工程水平太差了,居然会把项目做成这样。当你学习完软件工程知识后,再看到这些项目失败的案例,不妨从软件工程的角度来分析一下,这些项目失败的真正原因是什么?你能从中有什么启发?

什么样的软件项目算是失败的项目?

阅读全文

41为什么程序员的业余项目大多都死了

对于不会写程序的人来说,想做一个软件项目,就得找程序员帮忙写程序。而对于程序员来说,想做一个软件项目,写程序不是问题,产品设计自己也能做一点。所以对于很多程序员来说,一旦有了一个想法,可能就会利用工作之外的时间,做点自己的业余项目(也叫Side Project)。

然而大部分项目,都是怀着美好的期望开始,结果做到一半就无疾而终,就算少数坚持到了上线发布,最终还是因为少人问津而不得不放弃。

所以今天将带你一起分析一下,为什么程序员的业余项目大多都死了?怎么样可以借助学习到的软件工程知识提升业余项目成功的概率?

阅读全文

40最佳实践:小团队如何应用软件工程

经过前期理论知识的学习,你可以开始尝试在实践中去应用所学到的软件工程知识了。

想象一下,现在你要加入一家创业公司,从头组建一个开发团队,一开始只有三五个人,你会怎么去应用软件工程的知识,让你的团队能高效率、高质量地开发软件产品?

或者说,你现在就是在一个小团队,各种流程不规范,开发效率低,软件产品质量不高,你打算怎么去应用学到的知识去改善现状呢?

阅读全文

4期-软件开发14个常见问题解决策略-运行维护相关

恭喜你完成了软件测试和线上维护这两个模块的学习。

软件测试是保障软件质量的重要一环,但也不能过于依赖软件测试,毕竟软件质量体现在功能质量、代码质量和过程质量三个方面,而软件测试只能帮助保证功能质量,代码质量和过程质量还需要团队一起努力。

现在大厂已经很少有手工测试的岗位了,大部分测试工作已经转移到开发上,同时自动化测试的比例越来越高,但这相应的对开发的要求更高了,不仅要写功能代码,还要写自动化测试代码。

阅读全文

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呢?今天我们会展开讨论这个问题。

阅读全文

作者的图片

TsingChan

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

IT IS ALL

中国.福建