软件工程
文章平均质量分 92
软件工程学习笔记
张张一直在路上
自己学习和记录
展开
-
软件工程学习笔记14——案例解析篇
复盘也是整个项目开发过程中很重要的一部分,正是因为有这样一次次的“事后诸葛亮”会议,才让团队成员能从中总结成功经验,吸取失败教训。从大厂对软件工程实践中,你可以学习到一个优秀的公司是如何来应用软件工程,打造出高质量产品的,也可以借鉴其中好的实践到你自己的项目中。最后要清楚,即便是大厂,对软件工程的应用也不是一成不变的,会随着技术的发展、软件工程的发展不断改进。原创 2024-03-29 16:56:56 · 1125 阅读 · 0 评论 -
软件工程学习笔记13——案例解析篇
可能低估了技术实现的难度,最终项目要开发的时候,开发人员才发现根本无法如期完成当初承诺的项目目标,最终导致项目失败。在制定一个迭代的计划的时候,让团队成员一起参与对任务的打分,参与计划的制定。小团队被人诟病较多的地方就是在于流程规范的缺失,但像大公司,流程规范繁多,也容易造成效率低下,人浮于事的情况,这也就是为什么现在大公司的开发团队也在分拆,从大团队拆分成小组,精简流程规范。原创 2024-03-28 17:14:09 · 2173 阅读 · 0 评论 -
软件工程学习笔记12——运行维护篇
DevOps 可以理解为一种开发(Development)和运维(Operations)一起紧密协作的工作方式,从而可以更快更可靠的构建、测试和发布软件。DevOps 并不意味着开发一定要懂运维技术,运维要懂开发技术,而是说两个工种要更紧密的协作,有共同的目标:更快更可靠的构建、测试和发布软件。DevOps 的主要原则就是自动化、信息透明可测量、构建协作文化。团队采用 DevOps 的方式工作的话,会带来哪些好处整个软件的构建、测试和发布过程高度自动化。原创 2024-03-27 20:56:26 · 1240 阅读 · 0 评论 -
软件工程学习笔记11——软件测试篇
功能质量、代码质量和过程质量这三个方面组合在一起,很好地概括了软件质量。功能质量满足用户需求,是对功能质量最基础的要求。在这个基础上,Bug 数量、性能、UI/UX 都是很重要的质量指标。代码质量虽然用户不能直接感知到代码,但是代码质量高低会直接影响功能质量,同时代码质量低也会影响后续的维护升级。代码质量指的是实现软件功能的架构和代码的质量。代码的质量主要体现在以下这些方面:可维护性、可读性、执行效率、安全性、可测试性。过程质量。原创 2024-03-26 14:49:57 · 922 阅读 · 0 评论 -
软件工程学习笔记10——开发编码篇2
最底层、最基础的就是学习能力,通过学习能力,快速学习掌握新技术;中间一层就是解决问题的能力,充分利用学到的技术,去发现问题、分析问题和解决问题;最上一层就是影响力,是核心竞争力的综合体现。学习能力、解决问题能力和影响力一起构成了软件工程师的核心竞争力,就像下面这个金字塔图一样,我称之为软件工程师竞争力金字塔。但必须要注意,这三层缺一不可,你不能光去追求影响力而不踏踏实实学习和做事,也不能光去做事而不学习。必须要踏实地、一层层地打好基础,这样才能让你的竞争力是持久的,而不是昙花一现。原创 2024-03-25 17:46:24 · 775 阅读 · 0 评论 -
软件工程学习笔记9——开发编码篇1
自动化逐步应用到运维领域,确实是让部署过程更容易,但也只是让部署过程更容易,还是无法解决发布版本的质量问题,还是可能会因为配置错误导致失败,测试环境正常的功能到生产环境就不工作了。持续交付,对于生产环境的部署,依然需要有手动确认的环节。而持续部署,和持续交付唯一的不同,就是手动确认的环节都没有了,每次代码从分支合并到主干,在自动化测试通过后,会直接自动部署生产环境,不需要人工确认。持续交付,就是在持续集成的基础上,再进一步,在功能合并到主干后,不仅会进行自动化测试,还会打包,并部署到测试环境中。原创 2024-03-22 18:48:31 · 635 阅读 · 0 评论 -
软件工程学习笔记8——系统设计篇
你现在已经知道了架构设计的价值,那么究竟什么是架构设计呢?要说清楚这点,我们可以分别从目标和方法两个角度来看。目标架构设计的目标,是用最小的人力成本来满足需求的开发和响应需求的变化,用最小的运行成本来保障软件的运行。架构设计,已经有很多成熟的方法。使用微服务这样的架构,把复杂系统拆分成一系列小的服务,服务再拆成功能模块,让人员更好地分工协作;通过前后端分离,让程序员更专注于某个知识领域,降低开发难度;用分层设计来隔离业务逻辑,减少需求变更带来的影响。这些架构设计的方法,其实都是基于工程领域。原创 2024-03-21 20:35:45 · 999 阅读 · 0 评论 -
软件工程学习笔记7——需求分析篇
需求分析的结果决定了后续的系统设计、开发、测试等阶段能否顺利如期进行。即使是用敏捷开发,同样也少不了对需求的分析整理。可以说需求就是整个产品的源头,所以需求分析的结果往往决定了产品的成败。如果没有正确把握客户需求,可能就会一步错,步步错!原创 2024-03-20 17:05:29 · 1488 阅读 · 0 评论 -
软件工程学习笔记6——项目规划篇2
也有很多系统用 Issue 来表示 Ticket 的概念,无论 Ticket 还是 Issue,表示的都是一个工作任务,可以包括软件的 Bug、功能需求、某个模块的开发、系统的重构任务等。项目中的任务,不能盲目乐观,都思考一下它最坏的结果是什么,如果最坏的结果不能接受,就说明要有个 B 计划,考虑风险管理了。最早在软件项目中,应用 Ticket (标签)跟踪系统的领域是测试领域,用来追踪 Bug,后来逐步衍生到整个项目管理领域,不仅跟踪 Bug,还用来跟踪需求、开发任务等。以及模块之间的关系是什么。原创 2024-03-20 15:28:00 · 756 阅读 · 0 评论 -
软件工程学习笔记5——项目规划篇1
想要技术转型管理,首先从转变思维方式开始,从技术思维到管理思维,从关注细节到关注整体。然后去改变习惯,控制自己想写代码的冲动,多去从其他角度想办法。要管理好一个项目,关键是要管理好项目中的人和事。对客户要管理好期望,对项目成员则通过合理的流程规范更好的一起协作;对于项目中事的管理就是对软件开发过程的管理,选择好开发模型很重要,然后就是制定好计划,按照计划推进,过程中不断的调整,并且管理好项目中的风险。开会是有价值的,开会是有成本,会议是不是高效,就看它创造的价值是不是高于其成本。原创 2024-03-19 14:50:03 · 909 阅读 · 0 评论 -
软件工程学习笔记4——敏捷开发之Scrum+极限编程+看板
这些年敏捷开发,已经逐步发展出一套 “**Scrum + 极限编程 + 看板**” 的最佳实践,Scrum 主要用来管理项目过程,极限编程重点在工程实践,而看板将工作流可视化。原创 2024-03-18 13:06:59 · 1095 阅读 · 0 评论 -
软件工程学习笔记3——敏捷开发
敏捷宣言指出:敏捷不是一种方法论,也不是一种软件开发的具体方法,更不是一个框架或过程,而是一套价值观和原则。原创 2024-03-15 16:58:20 · 1048 阅读 · 0 评论 -
软件工程学习笔记2——瀑布模型及其衍生模型
开发模型有很多,要记住所有的开发模型很难。但搞透了瀑布模型,搞清楚了其阶段划分,结合一些应用场景,就可以举一反三,了解绝大部分衍生模型了。原创 2024-03-14 11:46:06 · 2692 阅读 · 0 评论 -
软件工程学习笔记1——理解软件工程
从知到行,打好基本功,掌握软件工程学中涉及的方法和工具,学会举一反三,在软件项目的开发和管理过程中,能运用自如;也希望软件工程的思维,可以让你脱离技术的拘泥,有更高的格局和视角去看待工作和生活中的问题。原创 2024-03-13 15:37:00 · 1015 阅读 · 0 评论