一剑破万法

程序=数据结构+算法

〇、为什么?用心写程序

借用别人的一句话:多用心写一些代码,被bug折磨到引以为乐估计你就明白了

这里的关键是用心,如果不用心,你永远无法体会到那种无力感,你千方百计的好好实现这个程序,但是写出来的程序即难读、又难维护、性能又差。

就像你和一个系统学习过下棋并背过棋谱的人下棋,你千方百计的想好好赢一局,但是你一直输。如果你用心下过,遇到过这种情况你就可以理解。

你多次重构依旧无法令自己满意,你的最终目的就是开发出一个好程序。

一、数据结构和算法

有人说:

算法是程序的灵魂。

那么我觉得

数据结构是程序的肉体。

就像修仙小说中的逻辑,

强大的肉身可以滋养灵魂,强大的灵魂也可以反补肉身。二者相辅相成。

那么我觉得

好的数据结构可以简化算法,好的算法可以迁就数据结构。二者也相辅相成。

二、面向对象和面向过程

面向过程就是倾向于算法,面向对象倾向于数据结构。

当你选择的对象比较好时,你的程序实现步骤可能会简单很多。

有人说用面向过程的方法写出来的程序是一份蛋炒饭,而用面向对象写出来的程序是一份盖浇饭。

盖浇饭的好处就是”菜”“饭”分离,从而提高了制作盖浇饭的灵活性。饭不满意就换饭,菜不满意换菜。

对于面向对象来说,对象选择的不好就换对象,步骤实现的不好就换步骤。

蛋炒饭将“蛋”“饭”搅和在一起,想换“蛋”、“饭”中任何一种都很困难,以至于“可维护性”比较差。

对于面向过程来说,程序实现的不好,只能推到重来,从零开始重构。

三、好程序和好程序员

有人认为好的程序:

1、满足业务需求

2、条理清晰,可读性强

3,性能好

4、可维护性好

5、可扩展性好,耦合程度低

我认为好的程序员写的程序:

1、当然先决条件是满足需求⭐

2、条理清晰、符合通用代码规范⭐

3、别人轻易能读懂⭐

4、自己几年后依旧能读懂⭐⭐⭐

当你比较擅长算法和数据结构时,大部分框架,大部分程序你只要了解实现机制用心使用一段时间就可以快速熟悉。

这种感觉就像一剑破万法,就像剑修一样,只有一把剑,只依靠手中这把剑,一剑在手万法皆破。

也像一剑生万法,一剑在手万法皆生。

好了就废话到这里,再说就成玄学了,道生一、ॐमणिपद्मेहूँ。。。

在我心中这把剑就是算法和数据结构,程序=算法*数据结构。

这里使用乘号是因为他们对程序的影响都是成正比的。

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/klarck/p/13588476.html