特别放送 | 从软件工程的角度解读任正非的新年公开信
特别放送 | 从软件工程的角度解读任正非的新年公开信
讲述:宝玉
时长20:37大小18.89M
1. 软件项目管理金三角
2. 自我精进
3. 关于架构
4. 技术债务
5. 安全性
6. 技术是工具
7. 一致性
8. 改变习惯
9. “软件工程”和“质量工程”需要依靠架构技术
10. 软件工程就像一个国家的农业
赞 37
提建议
精选留言(37)
- 还有我2019-02-18视高质量代码为尊严和个人声誉。这句话说的好,工作中遇到过很多项目开发人员不喜欢写注释的情况。要想写高质量的的代码,需要有扎实的基本功,要对数据结构、算法、设计模式及业务理解能力有一定的要求,另外还需要有一个良好的的编码习惯,至少可以避免出现go to fail 这种问题。华为这种大厂都如此要求,我司肯定会跟风…
作者回复: 是呀,代码就像一个人的名片,写得不好真不好意思跟人打招呼。 这其实也是为什么很多大厂要把自己的项目开源出去的一个原因,倒逼着开发人员重视自己代码质量,重视荣誉。
27 - Dr.Murphy2019-02-19视高质量代码为尊严和个人声誉。 作为一个工作了两年的刚入门的程序猿来说,这番话仿佛震耳欲聋。几乎泪流满面。
作者回复: 希望你能一直记得这句话 :)
18 - tt7162019-02-26其实我现在最大的问题是如何让不懂软件工程的老板去了解软件工程,去尊重软件工程的客观规律
作者回复: 你可以先学习,然后在和老板沟通的时候,利用你学到的软件工程知识去有理有据的说服,这样成功概率会高一些,也会潜移默化影响到你的老板。 比如我以前老板也喜欢改需求,我就需要跟他讲需求变更,讲版本规划(下个版本再改),他慢慢就也接受了一些。
9 - 点号2019-02-19我也是自学编程的“野路子”程序员,业余写的代码现在维护明显觉得很困难,希望通过学习这门课程,提升自己!
作者回复: 希望这门课程能真正帮到你,如果有什么具体问题和困难,也欢迎留言提问
7 - 舒偌一2019-02-18理解软件工程是把人治变成法治
作者回复: 软件工程还是离不开人的,“人治变成法治”我觉得可以指项目流程、规范这些
6 - 常平2019-02-18华为那篇八股文其实漏了一个非常重要的前置条件:capacity,capacity是企业文化是企业精神 企业基因,要在盐碱地里种出菊花茶是为“不易”。
作者回复: 至少对软件工程的论述还是挺到位的呢,毕竟不管企业什么基因,只要是做软件开发的,都离不开软件工程的应用。
共 2 条评论6 - gfkdcadet2019-03-02碎片化的学习编程和开发可能是我们开发软件的大敌。长久以来,我们被各种绚烂的技术吸引眼球,却没有一棵知识大树去承载这些不断更迭的技术。这也许是现在急功近利的环境所致吧。 希望宝玉老师讲授的知识树,纵向脉络突出,横向动态清晰,既能讲出从来没有变的过程,方法,又能捋一捋不断变化的工具。借宝玉老师慧眼,洞察一下现在五光十色的软件开发。辛苦老师了!展开
作者回复: 谢谢。 专栏的知识点已经都整理在目录了,你可以先大致看看,如果有什么没有讲到而你觉得和软件工程相关的内容也可以通过留言反馈。
4 - 韩宜衡2019-03-31老师设计课程之初应该想不到会有销售来买这个课吧😂 但是看了介绍这门课真的非常适合我 毫不犹豫就下单了 我们是做软件研发领域的项目管理工具的 刚开始觉得很心虚 因为觉得卖的对象是比你更懂的专业人士,他们知道自己要什么,我作为销售并不能说服他们。后来发现其实敏捷 DevOps这一方面 虽然有些公司也用,但是真正懂的人并不多,销售还是回到了【提供解决方案】上,真正有需求的公司比销售还急,他们更着急找到一个能够帮他们规范流程,提高效率的解决方案,那我的问题就来了,我要想提供解决方案,就必须了解研发场景的痛点,我要想了解痛点,难道还得开始从头学写代码,然后还得必须找个大厂待几年,然后再回到现在的公司继续做销售?这个方法似乎不太可行,倒不是觉得编程难,偷懒不想学,重点是即使学写了代码,似乎还是不能解决我当前的困惑,我隐约觉得我需要一个大的框架来帮助我了解整个研发过程,我得知道原理而不是操作方面的知识,但是我无法表达我的诉求,我不知道自己要学的这个知识属于什么范畴,直到看到这门课,我才知道我要了解的是软件工程!太感谢老师了! 不知道老师有没有完整的了解过项目管理,我昨天刚考了PMP,觉得软件工程算是整个项目管理体系下的一个分支,华为这篇文章解读的非常好,关注代码质量,不能只依靠测试,这其实逃不开项目管理中质量管理知识领域,测试只是【控制质量】的过程,只对单一测试结果负责,输出测试结果其实是为了方便我们【管理质量】,回溯我们组织的质量文化,以及整个流程有没有优化改进的地方,只有这样,才能从根本上提高质量,所以这也是出了质量问题,管理者为什么要负高达85%的责任而直接导致事故发生的操作人员只需要负15%的责任的原因,学习一门学科要学习他的底层逻辑,软件工程就是撸代码的底层逻辑,【你所谓的顿悟不过是别人的基本功】,不要再自己造轮子,前人早已给你总结好了方法论。展开
作者回复: 哈哈,谢谢支持! 我们有一篇就是专门介绍项目管理工具的呢。
3 - beiler2019-02-21老师,您让我问我可就问了,我很好奇老外在写代码之前模块是如何划分的,包是如何划分的?层与层是如何划分的,我看了很多,但是找不到我想要的银弹,写着写着我就不知道这个模块该划分到哪了,我用的是python,这块有什么好的参考吗?还有几层架构,几层架构的模块该如何划分,包如何分,代码该如何思考?大学学的都还老师了……让我写我都能写,但是让我按规矩写就很难了…我经常分着分着就乱了…求讲一讲这块!
作者回复: 架构设计也没有银弹的! 不需要太过于纠结模块怎么分,一开始不要分太多模块,简单满足需求就好,与其追求复杂的架构,不如先让代码简洁高效。 推荐看看这篇文章《架构设计三原则》https://time.geekbang.org/column/article/7071 另外可以多到github看看一些优秀的开源项目,看看高手们怎么设计架构的,可以多模仿。
3 - hua1682019-02-20忘记问一个很重要的问题,学这个专栏需要哪些基础为前提的~~ 顺序问一下开发都要学哪些基础东西: 1. 学一门编程语言及框架 2.数据库的CURD 3.软件工程? 其它还要吗?展开
作者回复: 学习这个专栏,不需要你有特别的基础,当然有一些项目经验可以帮助你更好的理解。 至于要学什么基础的东西,其实你可以从另一个角度思考一下:开发的价值是体现在哪的? 开发的价值是通过在项目中创造价值体现的,所以你要考虑学什么能帮助到你更好的在项目中创造价值。 比如说除了具体的编程技能外,还可以从这些方面思考: 1. 提升对需求分析和理解的能力,这样你知道要做的是什么,减少返工 2. 提升架构和抽象的能力,能把需求抽象成架构设计,能把复杂的问题通过架构分解成简单的问题 3. 高效率的编码,完成需求 等等其他
3 - 阿银2019-02-20有一点期待,希望老师能够更多的基于实际场景讲解因地制宜的软件工程实践。拘泥于形式的软件工程反而是负担,根据实际情况灵活运用才能真正的构建可靠的软件
作者回复: 你说的这个观点我非常赞同,软件工程的核心不是在理论知识,而是“因地制宜”应用这些知识。 我在写其中一些知识点时,也会和你一起去分析一些问题背后产生的原因,找到其根源(道),后面希望你能做到根据“道”去选择方法(术)或者创造“术”。
3 - hua1682019-02-19老师,我想问下: 1. 30多岁现在学编程不迟吧?做linux运维,会写shell、python(django)、java基础(看培训视频自学到spring Boot基础),没实践编写过项目 2.在有1的基础上怎么提升?即我学完了编程基础之后还要学那些东西,才能成为一名合格的开发?展开
作者回复: 学习什么时候都不晚,尤其你已经有了一定的脚本语言基础。我在30多岁的时候才学的前端开发,现在已经非常熟了。 编程一定要实践,工作中没机会的话,回家也要自己给自己创造实践机会,光看书看视频是远远不够的。尽可能在工作中创造实践的机会,参与到项目的编码开发中去。 要明白编程是为了项目服务的,一个合格的开发的前提是要能为项目创造价值,做出高质量的产品。 你可以先给自己设置个小目标,参与或者完成一个小项目,然后更大一点的项目,一点一点的实现更大的目标。
共 2 条评论3 - 廖师虎2019-04-13可信是不是要做到可溯源,可审计?按这样理解,基于CRUD风格或模式是不是就不可信了
作者回复: CRUD是指数据库的增删改查? 可信是目标,如果能实现这个目标,是不是CRUD有什么关系?
2 - 冰依2019-02-28非开发人员,目前在公司负责需求分析,整个端到端的过程都需要参与,老师觉得学习您这个适合不?
作者回复: 我只能说这个专栏更侧重整个项目过程的各个方面,没有什么太 技术(写代码)的内容,学习后对你了解和参与整个项目肯定是有帮助的。 至于合不合适建议你先看看试读的文章。
2 - 小P2019-02-27作为一个不成功的程序员,不专业的运维,不合格的DBA,软件工程很有必要好好学一下。
作者回复: 没有谁一开始就是成功的,认真学肯定有收获。 另外建议一开始可以专注一些,要么程序、要么运维、要么DBA,先一个领域深入,后面在横向综合扩展,会更容易学成一些。
2 - 卡布达进化2019-02-24在其它网站看到这篇文章,触动良多,原来是老师写的,缘分啊,果断支持,如此系统化的认识正是我这种刚工作一两年的入门者所需要的,哈哈,我已经在眺望今后工作更轻松的样子了。
作者回复: 谢谢支持。 能力越大责任越大!等你学到的东西越多,要承担的责任就更大,不见得会更轻松哦:)
2 - 林云2019-02-23那些惊艳的软件,都是使用类似的方法,大量的人员投入,基于已有技术,可控的开发出来的。而软件工程魅力在于使用不变的方法持续产生优秀的软件
作者回复: 👍优秀的软件,一定是应用好软件工程而产生的,这就是软件工程之美。 软件工程也不是“不变的”,还是一直在更新迭代的。
2 - beiler2019-02-21希望老师讲课也是体系化,千万别碎片化,否则串不起来…到时候用的时候也是一瓶不满半瓶晃
作者回复: 如果你仔细看目录,应该可以发现内容上不仅涵盖了大学里面软件工程会讲的内容,同时还会有业界最新的像敏捷开发实践、持续集成等内容。 当然如果你觉得有欠缺的软件工程相关的内容也欢迎提出,我也会考虑补充进去
2 - 阳阳2019-02-20老师,我想问下,软件工程在游戏项目上,是不是也一样呢?我觉得万变不离其宗,但是我的领导一直告诉我,游戏行业是个完全不同的领域,我有点疑惑,求解答
作者回复: 是的,万变不离其宗。 游戏项目一样离不开软件工程,游戏开发本身也是软件开发,只是有些名字换了,比如产品经理变成了游戏策划,产品设计变成了游戏策划案。 游戏开发一样要有需求分析、架构设计、编码、测试等关键活动。
2 - 布衣骇客2019-02-20高屋建瓴,统筹全局,而且把个个部分又讲得清晰明了,让我对软件工程有更加深入看法,可否增加一下案例分析,这样更具代表和启发性
作者回复: 会有一定量的案例,比如说瀑布模型,会有瀑布模型应用案例;敏捷开发,有大厂敏捷开发实践;需求变更,有几个典型的针对需求变更的案例分析。
2