软件工程本质,是如何把现实世界的事物抽象成计算机世界的事物。
产品经理的作用,是提炼出现实世界的需求,构建一个成功的功能模型。
软件开发者的作用,就是把功能模型中的每一个功能单元,转化成计算机的模型,即确定输入,处理计算输入,得出输出。开发者不断提高的是
- 如何选择一个好的输入源,比如binlog,将mysql的log日志作为输入源,使得同步数据库成为可能。
- 如何更好的计算,提升性能,这时候需要算法加持,需要对计算机的原理、数学有更深入的了解。
- 如何确定输出。可以存储在不同的文件系统中,关系型数据库,时序性数据库,直接输出。输出是否可以作为一种ai学习经验,作为下次计算的一个输入。
- 如何把上述三个步骤的代码更好的组织、管理,这就需要设计思想的加持,比如23种设计模式的应用,可以让软件生命力更加强,而不至于随着扩展和维护,逐渐变成一滩死水。