编程能力层次模型.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编程力量层次模型 2021-05-22 —?扫描二维码?—加入架构集结群 ?? 对技术感爱好的同学可进群(备注:Java) 前言 ? ? ? ?程序员的编程技能随着阅历的积累,会逐渐提高。我认为编程力量可以分为一些层次。 ? ? ? 下面通过两个维度开放编程力量层次模型的争辩。 ? ? ? 一个维度是编程技能层次,另一个维度是领域学问层次。 编程技能层次 ? ? ? ? 编程技能层次,指的程序员设计和编写程序的力量。这是程序员的根本。 0段—非程序员: ? ? ? ?初学编程者,遇到问题,完全是懵懵懂懂,不晓得该怎样编程处理问题。也就是说,还是门外汉,还不能称之为“程序员”。计算机在他面前还是一个奇特的黑匣子。 1段—基础程序员 ? ? ? ?学习过一段时间编程后,接到任务,可以编写程序完成任务。 ? ? ? 编写出来的代码,正常情况下是能够工作的,但在实际运转中,遇到一些特殊条件就会消灭各类BUG。也就是说,具备了开发Demo软件的力量,但开发的软件真正交付给客户使用,生怕会被客户骂死。 ? ? ? 程序员程序是写好了,但到底为什么它有时能正常工作,有时又不行,程序员本人也不晓得。 ? ? ?运转中遇到了bug,或者需求转变,需要修改代码或者添加代码,很快程序就变得结构混乱,代码膨胀,bug丛生。很快,就连最后的开发者本人也不情愿接手维护这个程序了。 2段—数据结构 ? ? ? ?经过一段时间的编程实践后,程序员会生疏到“数据结构+算法=程序”这一古训的含义。他们会使用算法来处理问题。进而,他们会生疏到,算法本质上是依附于数据结构的,好的数据结构一旦设计出来,那么好的算法也会应运而生。 ? ? ? 设计错误的数据结构,不行能生长出好的算法。 ? ? ? 记得某一位外国先贤已经说过:“给我看你的数据结构!” 3段—面对对象 ? ? ? ? ?再之后,程序员就会领会面对对象程序设计的强大威力。大多数现代编程言语都是支持面对对象的。但并不是说,你使用面对对象编程言语编程,你用上了类,甚至承继了类,你就是在写面对对象的代码了。 ? ? ? ?我已经见过很多用Java,Python,Ruby写的面对过程的代码。 ? ? ? 只要你把握了接口,把握了多态,把握了类和类,对象和对象之间的关系,你才真正把握了面对对象编程技术。 ? ? ? 就算你用的是传统的不支持面对对象的编程言语,只需你心中有“对象”,你照旧可以开发出面对对象的程序。 ? ? ? ?如,我用C言语编程的时候,会无意识的使用面对对象的技巧来编写和设计程序。用struct来模仿类,把同一类概念的函数放在一起模仿类。假如你怀疑用C言语能否能编写出面对对象的代码,你可以看一下Linux内核,它是用C言语编写的,但你也可以看到它的源代码字里行间分发出的浓浓的“对象”的味道。 ? ? ? 真正把握面对对象编程技术并不简约。 ? ? ? ?在我的技术生涯中,有两个坎让我最感头疼。 ? ? ? ?一个坎是Dos向Windows开发的变迁过程中,框架的概念,很长一段时间我都理解不了。Dos时代,都是对函数库的调用,你的程序自动调用函数。Windows时代,则换成了框架。就算是你的main程序,其实也是被框架调用的。UI线程会从操作系统猎取消息,然后发送给你的程序来处理。Java程序员生疏的Spring框架,也是这样一个反向调用的框架。 ? ? ? 现在由于“框架”这个术语显得很高大上,因而很多“类库”/“函数库”都自称为“框架”。在我看来这都是名称的滥用。 ? ? ? “类库”/“函数库”就是我写的代码调用它们。 ? ? ? “框架”就是我注册回调函数到框架,框架来调用我写的函数。 ? ? ? 另一个坎就是面对对象。很长一段时间我都不晓得应当怎样设计类和类之间的关系,不能很好的设计出类层次结构来。 ? ? ? 我记得当时看到一本外国大牛的书,他讲了一个很简约、很有用的面对对象设计技巧:“叙述问题。然后把其中的名词找出来,用来构建类。把其中的动词找出来,用来构建类的方法”。虽然这个技巧挺管用的,但也太草根了点,没有理论依据,也不严谨。假如问题叙述的不好,那么获得的类系统就会是有问题的。 ? ? ? ? 把握面对对象思想的途径应当有很多种,我是从关系数据库中获得了灵感来理解和把握面对对象设计思想的。 ? ? ? ?在我看来,关系数据库的表,其实就是一个类,每一行记录就是一个类的实例,也就是对象。表之间的关系,就是类之间的关系。O-Rmapping技术(如Hibernate),用于从面对对象代码到数据库表之间的映射,这也说明白类和表的确是规律上等价的。 ? ? ? ?既然数据库设计和类设计是等价的,那么要设计面对对象系统,只需要使用关系数据库的设计技巧即可。 关系数据库表结构设计是

文档评论(0)

duanbingbing + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档