• 编程思维的养成——我的信息技术之路之五


      提到编程,当然要知道编程思想的进化史,而半路出家又特别是自学编程的人往往没有经过系统专业培养,这部分往往会被忽视,但“是思维习惯指导着行动”,了解程序编写的发展历史才能了解进化思路。
      作为我入手的VB6并不是完美的面向对象的高级语言,但已算是比较合适学习的优秀的面向过程的高级语言了,初学之,从归提炼代码,养成面向过程——形成养成写可重复使用的块的好习惯,也是编程路上必不可少的阶段。
      我自己作为一名小学老师深知:思维习惯的形成非常缓慢,绝非说今天想到今天就可以做到,是不断在反复的反馈刺激后才能固定下来的思维回路,最终才可以在不经主观强化约束的情况下默认执行。刚开始必须反复纠正之,反复重构之。
      一开始写代码,举个例子,连接ACCESS数据库,按钮一的点击代码中需要打开数据库的某个表进行操作,然后关闭它;按钮二的点击代码中也需要打开这个数据库的另一个表进行另一些操作,然后再关闭它(这儿只是简单举例,初学者可关注,高手请绕道)。那么查阅自己过往作品,特别是能找到的初期作品,就发现一个问题:两个按钮的点击事件中的代码都是按照如下流程走的:

    按钮一被单击时要执行的操作()
      找到要连接的ACCESS数据库文件
      判断这个文件是否存在
      连接到指定的ACCESS数据库文件
      打开要操作的数据表一
      执行按钮一要做的操作
      关闭要操作的数据表
      断开与指定的ACCESS数据库文件的连接
    结束按钮一被单击时要执行的操作
     
    按钮二被单击时要执行的操作()
      找到要连接的ACCESS数据库文件
      判断这个文件是否存在
      连接到指定的ACCESS数据库文件
      打开要操作的数据表二
      执行要做的操作
      关闭要操作的数据表
      断开与指定的ACCESS数据库文件的连接
    结束按钮二被单击时要执行的操作

      两个按钮中加粗显示的部分可以发现是重复的,如果在两个按钮的点击事件中都写这些代码,将造成重复劳动,当然事实上是复制粘贴,但又造成另一个问题,出了错,将要修改两处,如果找不到错误在哪儿就更惨——这种事在我的过往经历中经常发生,往往花个通宵甚至都无法找到到底错在哪儿。
      其实我们可以将上面加粗显示部分的操作,分别放到两个可调用 的 程序 块中,称之为 函数的东西里,使用时直接调用之就可以了。
      而事实上上面两个按钮的单击事件中,斜体显示的部分,虽然操作的是两个不同的表,但基础操作是一样的:都是打开某一张表,则也可以放到一个程序块中,只是在调用块时,需要告诉这个程序块,你给我打开哪张表就行了。
      但是,往后过了将近一年,这种不是面向过程的思维习惯才被慢慢改正过来,可见一个思维习惯的形成是多么艰难。往后查看一些作品源代码,就可见如上例中的程序流程就变成了这样:

    程序块一_我是负责连接那个ACCESS数据库文件的()
      找到要连接的ACCESS数据库文件
      判断这个文件是否存在
      连接到指定的ACCESS数据库文件
      返回连接后的结果
    结束程序块一
     
    程序块二_我是负责断开与那个ACESS数据库文件的()
      断开与指定的ACCESS数据库文件的连接
      返回断开是否成功的结果
    结束程序块二
     
    程序块三_我是负责打开想要打开的表(这儿告诉我要打开哪个表)
      打开【这儿告诉我的要打开的那个表】
      返回打开的结果
    结束程序块三
     
    程序块四_我是负责关闭想要关闭的表(这儿告诉我要关闭哪个表)
      关闭【这儿告诉我的要关闭的那个表】
      返回关闭的结果
    结束程序块四
     
    按钮一被单击时要执行的操作()
      呼叫 程序块一 完成它的操作
      呼叫 程序块三(表一) 完成它的操作
      执行按钮一要执行的操作
      呼叫 程序块四(表一) 完成它的操作
      呼叫 程序块二 完成它的操作
    结束按钮一单击时的操作
     
    按钮二被单击时要执行的操作()
      呼叫 程序块一 完成它的操作
      呼叫 程序块三(表二) 完成它的操作
      执行按钮二要执行的操作
      呼叫 程序块四(表二) 完成它的操作
      呼叫 程序块二 完成它的操作
    结束按钮一单击时的操作

      正是保证学习的思维每天都有进步和改变,也正是坚持每天都改变自己一点点,这种面向过程的编程思维就形成了一种习惯思维,每次开始写具体控件(如按钮就是一种控件)时,都会先自发地想到是否 些代码可以单独放到一个 程序 块中?独立的程序 块(就是专门供别人笑呼叫使唤的程序 块)多了,是不是可以专门建立 一个模块文件保存起来?
      通过这样每天进步一点点,每天改变一点点,终于完成了编程思维完全的完成面向过程编程的转变。
      后来,当学习JAVA等时,又自然地养成了面向对象的思维习惯的转变,一下手,就会自觉地习惯地想到:把这些要反复和到的功能当作一个独立的类吧,让它自己做什么,有什么特点,有什么可自上继承的等等,这样,思维一到,代码竟活了起来,编程竟自然有趣起来。
    因为日子每天在改变,世界每天在改变,只有让自己每天都有新的改变与进步,才可能适应这个变化 的世界,那就是每天进步一点点,一年,十年,变化 就相当惊人了。转变思维,跟上时代的思维才能让自己永远走在时代的前列。
      记得读书时代,教我画国画的老师讲过一个小事,他说他有个邻居很喜欢画国画,但好多年来,每次下笔画小鸡等,笔法顺序基本一样,只只小鸡都差不多,虽然确实是特别爱画画,但多年来画作几乎数年如一日,没有二致,还到处卖弄自己的作品——旁人不语,但实在可悲。
      这个故事当时给我巨大的触动,这些年来,给愿意向我学习的徒弟们,我多数并不会教他们具体要怎么去写代码,要做些什么,我只告诉他们要达到什么目标,其余让他们自己去探索,只是上面那个故事是要经常作为鞭子鞭策他们的。很多徒弟们进步还是非常之大,迅速实现了自我的不断蜕变,这便是从心培养思维,由内心思维的转变而驱动外在行动变化 的力量。
      如果说编程学习除了改变了我粗枝大叶的行动习惯之外还给我带来了什么的话,最大的收获便是——改变了人思维的习惯,使思维可以如水般随时适应时代这个容器的任何变化 。
     
     
    欢迎大家添加我为好友: QQ: 578652607
  • 相关阅读:
    php查看网页源代码的方法
    php阻止网页被用户频繁刷新
    php实现只保留mysql中最新1000条记录
    php限定时间内同一ip只能访问一次
    emmet插件快捷键:
    抓包工具--Fiddler
    HTTP版本进化过程
    ECMAScript6的Promise对象
    H5、CSS3属性的支持性以及flex
    关于未来前端的规划
  • 原文地址:https://www.cnblogs.com/lhghroom/p/7706153.html
Copyright © 2020-2023  润新知