软件开发
2024年6月27日大约 2 分钟
软件通常分为系统软件和应用软件,早期的软件主要就是指程序。
灵活性和没有银弹(Silver Bullet),是软件行业的有趣之处, 在这个行业里,一个问题会有很多种解法,即使是最简单的函数也至少可以写出10种不同的代码来实现, 因此,知识储备、判断力和思辨力是软件行业给我们提出的更高要求,任何不区分上下文和情景的教条都有可能在实施过程中遭遇惨败。
如今各种软件越来越复杂(技术复杂度、业务复杂度),需要用工程化思维去进行软件开发,保证软件的质量等,就是软件工程。
比如Web应用开发前后端分离方式,整体是一个工程,前后端各自也算是独立工程,需要整体把控。
在关注技术和流程的同时,更需要关注:价值、业务、文档能力、英语能力...
任何时候,产品的质量都是第一位的
价值导向,领域知识
- 软件是用来创造价值的,创造 有意义的好的价值
- 领域业务知识: 有一定的业务知识知道业务背后的逻辑很重要
需求收集与分析
概设
详设
设计编码
web前端
客户端
服务端
文档能力
编写文档的能力
代码美学
需要经验、阅读等等获得的
编写干净、文档良好且可维护的(也就是尽量写给别人看的)代码;当有特殊思路时应该写上注释
测试
- 单元测试
- 黑盒
- 白盒
- 自动化测试
集成部署
运行维护
有效的项目管理
- 制定计划(方向与目标)
- 进度把控
- 协调沟通
- 风险管理