【编程随想】编程思想

思维方式

系统思维

系统思维是把认识对象作为系统,从系统和要素、要素和要素、系统和环境的相互联系、相互作用中综合地考察认识对象的一种思维方法。它可以极大地简化人们对事物的认知,给我们带来整体观。在处理多元或复杂的信息时,系统思维改变了我们的思考角度,并综合应用了不同的思考方法。

结构化思维

结构思维要求我们在面对工作任务或难题时,能从多个侧面进行思考,深刻分析导致问题出现的原因,系统制定行动方案,并采取恰当的手段使工作得以高效率开展,取得高绩效。
更具体来说,结构化思维是以事物的结构为思考对象,来引导思维、表达和解决问题的一种思考方法。它在解决问题、与人沟通、输出文章的过程中提供一个结构(也叫框架),可以将零散信息放进去加以整合,从而得出方法和结论。此外,结构化思维可以帮助我们将复杂问题简单化,让我们的思维更加清晰,表达更加顺畅,更能帮助我们构建知识体系。
结构化思维主要包括自上而下和自下而上两种找结构的方法。在实际应用中,我们需要灵活运用这两种方法,根据实际情况选择最合适的策略。总的来说,结构化思维是值得我们刻意训练的一种思维方式,它可以提升我们的思维能力,有助于我们在工作和生活中更好地应对挑战。

工具思维

工具思维是一种能力,它指的是你能意识到总会有更好的工具能够做得更快,处理更多,失误更少,收益更多。在这种意识的前提下,你愿意主动去寻找甚至创建这样的工具,从而使你从繁重的工作中解放出来。
具备工具思维的人会主动去思考是否存在更高效的方式,培养自己使用工具的意识;认识到将自己的性格作为工具的中性与潜力并进行合理的使用与开发;避免工具选择与使用上的盲目。此外,他们会根据不同的场景,运用工具思维,找到合适的工具灵活解决问题。

编程概念

关注点分离

主张将程序的不同功能划分为独立的模块,每个模块只负责一个特定的任务或功能
在实践中,关注点分离可以通过多种方式实现。例如,可以通过功能、业务语义和面向接口编程等方式进行分离。这种方式可以帮助开发者更好地组织和管理代码,使其更易于理解和维护。

抽象

抽象主要是指为了某种目的,对一个概念或一种现象包含的信息进行过滤,移除不相关的信息,只保留与某种最终目的相关的信息。例如,我们可以过滤掉一个皮质足球的具体材料等信息,将其简化为“球”这一更一般性的概念。
在实践中,抽象编程通常涉及到以下几个方面:函数、类和对象、模块和组件等。其中,函数是对一段具有特定功能的代码进行封装;类和对象则是对现实世界中的事物进行模拟和抽象;模块和组件则是将程序分解为多个独立的部分,每个部分负责一个特定的任务或功能

封装

封装主要是指隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别。例如,在Java编程语言中,封装被视为一种将抽象性函式接口的实现细节部分包装、隐藏起来的机制,可以被认为是一个保护屏障,防止该代码被误用或修改。

复用

复用是指将已有的代码或系统元素用于新的程序或项目中。这样做的主要目的是提高软件开发的效率和质量,减少重复的工作。
在实践中,复用可以通过多种方式实现。例如,通过函数、类和对象等方式进行代码复用;通过模块化和组件化等方式进行设计和架构复用。此外,还可以利用设计模式、框架和库等工具来提高代码的复用性。
需要注意的是,虽然复用可以显著提高开发效率,但如果没有合理地控制和管理,也可能导致代码的复杂性和耦合度增加,从而降低代码的可读性和可维护性。

解耦

主要是指减少或消除系统中各部分之间的依赖关系,使得模块或组件之间的关联尽可能小。在两个或多个体系间,如果存在较强的关联性或相互影响,就可以称之为耦合。
例如,高层模块不应该直接依赖于底层模块,而应该依赖于抽象。抽象不应依赖于细节,细节应依赖于抽象。通过这种方式,可以降低模块间的耦合度,使得系统更加稳定和灵活
此外,类之间的关系也存在着耦合和解耦的问题。强耦合指的是类之间存在着直接关系,弱耦合则是在两个类的中间加入一层,将原来的直接关系变成间接关系,使得两个类对中间层是强耦合,两类之间变为弱耦合。

提升编程思想和能力的方式有很多,可以通过学习设计模式、重构代码、评判代码等方式来提高。阅读相关的书籍也是一种有效的方法,有些书籍专门介绍编程思想,有些则提供编程实践的案例,或者涉及编程的知识和技巧。

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值