关于开发代码与实际问题之间的映射思考

思路是需要载体的,最抽象的载体我认为是数学,其次是各种应用性学科。

开发代码与实际问题之间是存在映射关系的,这也是能够用代码解决实际问题的前提。解决问题之前往往是将问题逻辑抽象出来,之后再转换为代码逻辑。

不知道有没有注意到不管是代码开发还是日常生活,比如日常交流,日常思考,日常活动......都是有大小问题的,因为有大小问题也就是大小逻辑。

这些大小逻辑在开发过程中也有体现。

举例来说,都知道或者我认为程序开发的基础是数据结构和算法。但数据结构其实还是一个大逻辑概念,不少数据结构书里面最小的数据结构是数组。但我解决某个问题我根本不需要数组,只需要声明一个或者几个变量就解决了。这样说我是不是就没有用数据结构和算法呢?

我认为不是,我觉得书里面有没说的部分,我认为最简单的数据结构不是数组,而是一个数值,而且是简单数据类型,比如布尔值。最小的问题是只有一个变量且变量为简单数据类型的问题。

有段时间笔者就很困惑,既然数据结构和算法才是编程的基础,那我日常开发中只是声明了几个变量,而且是简单数据类型,这算什么?最终我承认了开发的最小数据结构是一个简单数值,就释然了。

如果说一个简单数据类型的数值是最简单的数据结构,那么最简单的算法也不是查询或者排序算法,最简单的算法是数据当中的运算,是自操作运算

重新明确了最小数据结构和最小算法之后,再来考虑开发代码与实际问题之间的映射就对上了。

根据业务复杂度,简单业务需求日常开发的需求可能根本用不上复杂的数据结构,比如图或者树,甚至用不到链表。算法也是,简单业务需求日常开发也用不到除了查找和排序之外更高级别的算法。

这也就是为什么有些人学了数据结构和算法之后没啥感觉,至少我很长一段时间就是这样的感觉,学完了也没用上,或者不知道在哪用。我认为根本原因还是业务简单。

这一点在我学设计模式过程中也有体会,设计模式虽然是成熟的套路,但有的设计模式我始终没有找到具体应用的场景,当然也有可能是我还需要加强练习。

写到这里想说的是想要提升使用复杂数据结构和算法的能力还是要接一些复杂需求,或者学习一些优秀的源码;或者主动优化项目,开阔思路看看是不是可以应用更优秀的思路解决问题。

本文完。

相关推荐
我要改名叫嘟嘟33 分钟前
读过的书会全部忘掉么?不会的,总有些会在生命中留下印记
程序员
马可奥勒留12 小时前
我的管理日记(2)——招聘
程序员
小华同学ai17 小时前
1K star!这个开源项目让短信集成简单到离谱,开发效率直接翻倍!
后端·程序员·github
程序员鱼皮18 小时前
感觉程序员要被 AI 淘汰了?学什么才有机会?
计算机·ai·程序员·互联网·编程经验
掘金安东尼19 小时前
GPT-4.5 被 73% 的人误认为人类,“坏了?!我成替身了!”
人工智能·程序员
Apifox19 小时前
如何在 Apifox 中通过 CLI 运行包含云端数据库连接配置的测试场景
前端·后端·程序员
赣州云智科技的技术铺子20 小时前
【一步步开发AI运动APP】六、运动计时计数能调用
人工智能·程序员
重生之我在写代码1 天前
如何进行apk反编译
android·程序员·编译器
Goboy1 天前
从崩溃到升职:腾讯云EdgeOne Pages MCP拯救了我的996危机
后端·程序员·架构