1期-软件开发30个常见问题解决策略-基础理论相关

专栏已经上线更新一段时间,看到同学们对软件工程有了更深刻的理解和思考,我很受感触。

有些人说走了很多弯路,日常搬砖,增删改查;也有的同学跟我一样“野路子”程序员出身,非常困惑希望建立自信;还有的同学发表上千字的学习心得,可以说非常用心。

编码的最终目的还是为了实现一整个软件的开发,在程序员的晋升之路上,总有单独挑大梁负责项目的时候。你会发现软件开发中的很多问题,都是可以通过软件工程的知识来解决的。

阅读全文

08怎样平衡软件质量与时间成本范围的关系

《从软件工程的角度解读任正非的新年公开信》这篇文章中,我已经提到了“软件项目管理金三角”的概念。由于这个内容对于软件工程来说,非常之重要,所以我今天特别展开再讲一下。

你会发现,在实际的软件项目中不乏这样的例子:

  • 一个项目,正常估算,要三个月才能完成,但是老板或客户要压缩到一个月完成,而你不知道如何说服他们;

阅读全文

07大厂都在用哪些敏捷方法-下篇

在上一篇文章中,我们一起看了一下大厂和敏捷相关的一些流程规范,同时也为你留了一道思考题:

如果每周一个Sprint,怎么保证每周都有交付,还能保证产品质量?

所以在这一篇中,我们就以每周一个Sprint的小项目组为例,看看它的日常是怎么应用敏捷开发的。

阅读全文

06大厂都在用哪些敏捷方法-上篇

在我还是一个野路子程序员,到处接私活做网站时,就开始好奇:大厂都是怎么开发软件项目的?直到毕业后,我前前后后加入了若干大中小型企业,包括这些年在美国高校、公司的一些经历,对大厂的项目开发有了比较多的了解。

其实大厂做项目也没有什么特别的,无非就是工程中常见的“分而治之”的策略:大项目拆成小项目,大服务拆成小服务,大团队拆成小团队。

服务之间通过商定好的标准协议进行通信,架构上将大的服务拆分隔离成微服务,大团队按照业务或者服务拆分成小组,按照一定的流程规范保障协作。最终,各个小组要负责的内容其实就不多了。

阅读全文

05敏捷开发到底是想解决什么问题

关于敏捷开发的实际应用,现在无外乎有以下几种常见的情形:

  • 很多团队想敏捷开发,但不知道该怎么上手;
  • 有的团队已经应用了一些敏捷开发的实践,然而效果不理想,不知道是敏捷开发的问题,还是自己实践方式不得当;
  • 有的团队听说了敏捷开发,但是并不知道它是什么。

阅读全文

04瀑布模型之外,还有哪些开发模型

在上一篇文章中,我重点介绍了瀑布模型。你现在知道了,瀑布模型简单易行,对于软件质量是有比较高保障的。但是瀑布模型对于前期需求不明确的项目,很难开展需求分析,后续如果有需求变更,瀑布模型便很难响应。

而且,每个软件项目的情况各不相同,都有自己的特点。比如说:

  • 有的项目风险很高,客户可能随时不给你钱了,得要做好准备,随时止损;

阅读全文

03瀑布模型:像工厂流水线一样把软件开发分层化

可以这么说:瀑布模型算是现代软件工程的起源,软件工程的发展,很大部分都是构建于瀑布模型的基础之上的。 我们后面所学的软件工程的很多内容,都是源自瀑布模型的衍生,或者其中某个阶段的细分。

我在上大学期间,还并不懂软件工程瀑布模型这些知识。当时我自学了点编程知识,然后开始在外面接点做网站的小活,开发模式非常简单,接到活直接写代码,有问题就改。这样下来居然也做了不少小网站,但是大一点的网站项目就搞不定了,甚至手头的小网站项目,找个同学帮忙都不知道大家该怎么分工。

所以当时我也很好奇,大的软件系统是如何开发出来的?那么多人一起开发一个软件,系统是如何分工协作的?

阅读全文

02工程思维:把每件事都当作一个项目来推进

阅读原文

软件工程是一门用工程化方法解决软件项目问题的学科,其本质也是一门工程学科,这门课的知识在学完后,不仅可以应用在软件项目中,还可以应用于日常生活中遇到的一些问题,Everything is a project。

这句话对我影响很大。我真的开始在日常生活中尝试应用“Everything is a project”的概念,小到做作业,大到完成工作中的复杂项目。

解决这些问题的方式,就是参考软件生命周期和瀑布模型,把一件事情分成几个阶段:分析、设计、实施、测试、完成 ,然后制定相应的计划。这种方法不仅非常有效,让我的做事效率大幅提高,而且让我在看待事情上,能够更全面地、站在更高的角度去思考。

阅读全文

01到底应该怎样理解软件工程

阅读原文

当有人问你什么是软件工程,你会想到什么?

也许你会想到软件,会想到建筑工程,也许对此还没有什么概念。不要紧,在回答这个问题前,我们先来看看软件工程和我们的日常生活有哪些关系。

作为一个程序员,你的日常大致是这样的:早上被手机的闹钟叫醒,然后坐地铁去上班。在路上你会打开微信和朋友闲聊几句,刷刷微博,还会用Youtube看看视频充充电;上班的时候,你打开Mac电脑,用VS Code写程序,用Chrome看网页,下班后再玩几局守望先锋游戏。

阅读全文

学习攻略-怎样学好软件工程

关于什么是软件工程和为什么要学软件工程,我在开篇词中已经简单介绍过了。总结来说:软件工程是软件行业知识体系的内核。无论你想走技术路线,还是转向做管理,想要走的更快更稳,那就绕不开软件工程。

在正式开始学习前,我们先来聊聊应该如何学习软件工程。你要先知道,软件工程学科的“知识树”结构是什么样的,才能更好地理解每个知识点和彼此间的联系。

软件工程知识架构全景图

阅读全文

从软件工程的角度解读任正非的新年公开信

2019年1月,任正非的那封《全面提升软件工程能力与实践,打造可信的高质量产品》公开信在朋友圈刷屏了。作为软件工程专业出身的程序员,这封公开信自然是引起了我的好奇,仔细阅读之下,确实让我大吃一惊。

于是,我从软件工程的角度对这封公开信进行了解读。在我们专栏内容正式更新前,我将它作为特别放送分享给你,希望可以帮助你更好地理解软件工程。

阅读全文

为什么要学好软件工程

和很多人一样,我的职业生涯是从一个自学编程的“野路子”程序员开始的。1999年,我考入西北工业大学工程力学专业,但是却对编程很感兴趣。大一的时候自学网页编程,大二开始去学校网络中心兼职,同时在外面接了很多做网站的私活。

那时,虽然我的编程水平提升特别快,但是因为完全是自学,跟其他计算机科班的程序员一比,多少有点自卑感,觉得好像差点啥!在实际工作中,遇到具体的问题,我只能见招拆招,一个一个地解决。

当然,因为一开始我无法从系统层面整体看事情,所以虽然问题解决了,但也总有一种疲于奔命的感觉。我曾经遇到的问题,你肯定也不陌生,比如:

阅读全文

作者的图片

TsingChan

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

IT IS ALL

中国.福建