热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

编程的思想是什么,如何建立编程思想,如何训练和提高编程思想?

编程的思想是什么,如何建立编程思想,如何训练和提高编程思想?,Go语言社区,Golang程序员人脉社

一.首先,什么是编程思想?

编程思想是一种指导思想,这个指导思想,将会诱发你如何写代码的行为。

如果理解这话的意思呢?打个比方,中华文明千百年在民众心中形成了一个“统一天下”的思想,这种思想会诱发各个混乱时期的诸侯或者军阀,以统一中国为目标,而不会像欧洲一样以分裂中国各自独立、各自称帝为目标。

编程的思想是什么,如何建立编程思想,如何训练和提高编程思想?

那么编程思想有哪种种类呢?

1)面向过程编程。这是我国绝大部分程序员的思想。这种思想诱发了他们写代码的时候这样的现象:一个方法中写了糅杂了很多的业务逻辑,或者从ui层(点)业务逻辑层(点)数据库访问层这种路径的写法。

2)函数编程。典型的如很多人写的Javascript中的function函数。各种业务就以各种很多的function进行编写。

3)面向对象编程。这是比较高级和抽象的思想,它具有三大特性五大原则。即封装、继承、多态,单一、开闭、里氏替换 、依赖倒置、接口隔离。

话外:有些人会告诉你数据结构、算法,我要跟你说的是,那不是编程思想,是编程能力,考验你的逻辑运算能力,你越出色,那么你应对的复杂科技领域就可以更加深入,最终你可以达到科学家的范畴。

编程的思想是什么,如何建立编程思想,如何训练和提高编程思想?

二、编程思想的优劣和选择。

面向过程和函数编程,是每一个刚毕业的毕业生就会的原始思想。即,只要学习了编程,那么他一开始写的代码,就是这种思想,不需要教,就会的。

而面向对象编程,则是进阶抽象的。本质上来说,一个程序员的进化,实际上是面向对象编程思想的培养、形成、发展、成熟的过程。

所以,你现在应该知道最优的思想是什么,没错:面向对象。

三、如何建立编程思想

首先,你要时刻谨记面向对象的三大特性五大原则,那几个字,你是很熟悉的,但你绝对不认识他里面所蕴含的恐怖威力。即:你认得到字是一回事,理解和运用它是另一回事。

然后,你要在你的实操过程中,时刻思考你是否用上了它的特性及原则。

最后,不断的尝试去修正和更改你的代码,慢慢的,你的面向对象编程思想将会开始建立。

如果大家对C/C++感兴趣的话,可以加一下我们的学习交流Q群:637  935  295,免费领取一套学习资料和视频课程哟~

编程的思想是什么,如何建立编程思想,如何训练和提高编程思想?

四、如何练习、训练和提高编程思想

1.通过学习设计模式。

刚开始的时候,你自己不太可能有对象思想,因为你还未形成对象思维,此时,你需要借助前人的模式总结,不断的练习,通过为模式而写模式的训练去提高它。

2.通过不断的重构已编写好的业务逻辑代码,这需要大量的实践,使他能够让你自己觉得符合三大特性五大原则。

3.评判一个代码你写得好不好,符不符合对象编程思想,有一个非常简单和粗暴的标准:

你的方法体,去除注释,如果你能够让你的每一个方法的逻辑,他的方法体代码行数不高于30行,那么你估计就是写的有成效的。如果你能够发现你的很多方法体,代码行数仅仅只有10行以内个位数的代码时,你的面向对象编程思想已经成熟。

编程的思想是什么,如何建立编程思想,如何训练和提高编程思想?

4.将代码思维持之以恒。

通过不断的实践练习,改变你原来天生的过程式编程思想,这需要一个漫长的过程,从我的实践经验来看,至少要3年以上的实践训练,所以从此意义上来说,5年以下的中国程序员99%都不会面向对象。当你不再为模式而写模式时,你随手写的代码是如此的简洁美妙时,你已经比中国95%的程序员牛B了。


推荐阅读
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
author-avatar
同wr我握手
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有