编程的本质

简介:
程序员们每天为之忙碌而编写的程序归根到底是由什么组成的?——数据和算法 。
想想是不是这样?
那么,究竟是“数据/结构”重要?还是“算法”更重要呢?
思考一下我们为什么要编写程序?——处理数据 。
不是么,无论是存储和读取、发送和接收、监听和订阅、服务端与客户端,我们翻来覆去,玩的就是一堆“数”。
因此可以想象,如果程序建立在一个不佳的数据模型之上,改进的成本将远远大于建立在不佳的算法之上。
数据建模是构建好系统的第一步,如同建造一座高楼,好的基础是最重要的,而优秀的算法如同华丽的装饰,可以看作是后来的锦上添花,尽管这在很多情况下是必不可少的……
编写程序的难点在哪里?或者说我们如何把“数”玩到极致?——多线程和内存 。
对于这两点算法的研究和改进可以说永无止境!因为它们决定着系统的安全性、健壮性和效率。

多线程和内存的算法一直是高手们谈论的话题、面试中的难点、工作中的陷阱,想想吧:JVM Cache 高性能 高负载 …… 都与二者密切相关。
一个改进程序的例子:
Gaven King 写 Hiberate 的动力就是因为厌倦了RD(关系数据模型)和OOP(面向对象编程)之间的转换——通过 JDBC + MetaData 你已经可以全部掌控对象数据模型,那么为什么不多加一个工具层,实现这种软化呢。
 
 


     本文转自胡奇 51CTO博客,原文链接:http://blog.51cto.com/huqicto/280909,如需转载请自行联系原作者

相关文章
|
6月前
|
存储 搜索推荐 程序员
编程中处理大量数据是
编程中处理大量数据是
49 0
|
1月前
|
人工智能 数据挖掘 程序员
探索编程的奥秘:从逻辑到实践
在这篇文章中,我将分享我的技术感悟,特别是关于编程的学习与实践。通过通俗易懂的语言和条理清晰的结构,希望能启发编程新手,帮助他们理解编程的本质,并激发他们进一步探索的兴趣。
|
3月前
|
算法 Java 程序员
在Java的编程世界里,多态不仅仅是一种代码层面的技术,它是思想的碰撞,是程序员对现实世界复杂性的抽象映射,是对软件设计哲学的深刻领悟。
在Java的编程世界里,多态不仅仅是一种代码层面的技术,它是思想的碰撞,是程序员对现实世界复杂性的抽象映射,是对软件设计哲学的深刻领悟。
70 9
|
1月前
|
存储 前端开发 JavaScript
前端必备知识:闭包的概念、作用与应用
前端必备知识:闭包的概念、作用与应用
20 1
|
2月前
|
设计模式 机器学习/深度学习 存储
探索编程的本质:从代码到创造力
本文通过深入探讨编程的基本原理和实践,揭示编程不仅仅是技术操作,更是一种思维训练和创造力的表达。我们将从基础的数据结构与算法入手,逐步过渡到设计模式和架构理念,最终探讨编程在现实世界中的应用和创新潜力。
|
6月前
|
存储 算法 程序员
从1024开始,我们漫谈编程的本质
从1024开始,我们漫谈编程的本质
59 0
|
6月前
|
Serverless 开发者 Python
Python函数式编程:从概念到应用的完整指南
在 Python 中,函数式编程是一种流行且强大的编程范式,它不仅可以使代码更加简洁、优雅,而且还能提高程序的可读性和可维护性。本文将从基础概念入手,详细讲解 Python 函数式编程的核心思想、常用函数和实际应用。无论你是 Python 新手还是经验丰富的开发者,本文都能为你提供全面的参考和指导。
|
11月前
|
Java 开发者
Java面向对象编程的4个主要概念
Java面向对象编程的4个主要概念
74 3
|
Kubernetes 监控 安全
[k8s]谈谈 k8s 的本质
当下 k8s 算是比较火的一个内容,那么它到底是什么呢,它为什么会这么火呢,它解决的是什么问题呢. 当我们谈 k8s 的时候,总是会想起来 Docker .是的,如果想要知道 k8s 解决的是什么问题,我们不可避免的再回到 Docker 上面,回到容器上面来.
[k8s]谈谈 k8s 的本质
|
JSON 前端开发 JavaScript
Ballerina:面向数据编程
在我过去十年开发的信息系统中,数据在前端应用程序、后端服务器和服务等程序之间流动。这些程序使用诸如 JSON 之类的交换格式进行网络通信。
437 0
Ballerina:面向数据编程
下一篇
无影云桌面