zoukankan      html  css  js  c++  java
  • 一剑破万法

    程序=数据结构+算法

    〇、为什么?用心写程序

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

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

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

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

    一、数据结构和算法

    有人说:

    算法是程序的灵魂。

    那么我觉得

    数据结构是程序的肉体。

    就像修仙小说中的逻辑,

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

    那么我觉得

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

    二、面向对象和面向过程

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

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

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

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

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

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

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

    三、好程序和好程序员

    有人认为好的程序:

    1、满足业务需求

    2、条理清晰,可读性强

    3,性能好

    4、可维护性好

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

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

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

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

    3、别人轻易能读懂⭐

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

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

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

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

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

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

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

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    WPF Path和图形
    WPF学习笔记:(二)数据绑定模式与INotifyPropertyChanged接口
    WPF学习笔记:(一)数据绑定与DataContext
    IOC 的理解与解释
    WPF入门教程系列(二) 深入剖析WPF Binding的使用方法
    WPF入门教程系列(一) 创建你的第一个WPF项目
    一、什么是WPF?
    项目问题一、全局变量引起的并发问题
    常用js操作
    escape
  • 原文地址:https://www.cnblogs.com/klarck/p/13588476.html
Copyright © 2011-2022 走看看