从编程思想到软件开发和设计能力培养( 四 )
详细的编码实现
以上都思考完成后基本的框架和设计实现逻辑就都清楚了 , 下一步则过渡到具体的编码实现环节 。 基于任何语言的编码其核心都是算法和数据结构 , 而在这两者里面最基本的又是变量和数据类型 , 程序控制逻辑(判断和循环等) , 变量定义的规范性 , 数据类型选择的合理性 , 控制逻辑代码的清晰度都将直接影响到编码本身的健壮性和可读性 , 这些最基本的内容才是写出高质量代码的关键 , 也是类似《代码大全》书籍所一直强调和内容 。
代码本身具备足够的自解释性 , 源代码就是设计核心就是我们的命名 , 方法的拆分 , 控制逻辑要清晰 , 代码具备足够的可读性往往则不再需要过多的注释 。 子方法的拆分是另外一个重点 , 对于子方法的拆分不仅仅是考虑到方法的复用性问题 , 有时候一两行代码也需要拆分 , 其核心原因包括两个 , 一个是拆分后增加了代码的可读性 , 其次是增加代码的可扩展性 , 即后续拆分的子方法往往存在规则或逻辑变更和扩展的可能等 。
任何一段代码本身的结构化和逻辑化是面向对象编程的基础 , 而结构化后最直观的体现就是代码的可读性和可维护性 。 软件质量的衡量不仅仅是简单功能的实现 , 而是在各种非常规场景下的边界和异常处理能力 , 因此代码本身的健壮性是另外一个重点 。 任何在编码阶段的工作都必须时刻关注这两个重点 , 才可能不断提升最基本的编程思维和编码能力 。
从开发到设计
文章插图
在日常团队沟通中 , 经常会和开发人员谈到设计思维 , 如何从开发能力转变到具备基本的设计能力 , 今天基于这点做一些展开的说明 。
在开发过程中应该有的几个关键意识
复用意识:在软件设计中有一个重点就是复用 , 因此在你日常的编码过程中就需要有复用意识 , 你可以自己考虑下你平时编码过程中是否经常存在大量的粘贴拷贝动作 , 如果是的话那就是复用意识很差 。 即使一个最简单的字符转换 , 我们也要有复用的意识 , 从最简单的公共方法和函数 , 到可复用的组件和类 。 尽量去减少你程序里面的大量重复代码 。
抽象意识:抽象意识是你平时在代码编码中另外一个关键意识 , 即能否从不同的东西中找到共性的内容 , 抽象出共性的基础类或接口 , 抽象意识一方面是增加了你代码的可扩展性 , 这也是最基本的设计模式中谈到的意识 。 你做好了抽象 , 你会发现你代码更加容易扩展 , 你程序里面大量难懂的if ese语句就越少 。 同时抽象意识是复用的进一步深化 , 很多东西经过抽象你会发现共性出来了 , 可以做复用出来了 。
流程化意识:举个例子来说你准备明天去海边度假 , 那么你的第一思路是做好计划 , 出行准备 , 前往目的地 , 海边度假 , 返回 。 而不是第一先去想到去加油 , 再想到海边要游泳 。 我们做任何事情最先想的就是分几个阶段 , 分几个步骤来做 , 而不是先想到具体的一个操作 。 写代码也是一样 , 想清楚究竟分几个关键步骤来实现 , 而不是一开始就去想某个细节操作 , 一个功能实现 , 你是一下就体现出1000行代码?还是5个操作方法步骤段 , 每段200行代码容易读?你有流程化意识 , 反倒设计里面去就是用例实现 , 活动图或序列图 , 你没有这个意识 , 那么你简单的序列图也画不好 。
当你拿到一个复杂功能的时候 , 你在想什么?
文章插图
设计 , 和你建造房子画的设计图一个道理 , 房子还没有建好 , 但是应该如何建 , 张什么样子就清楚了 。 再回来说我们生产一个东西 , 我们就先画好产品的设计图或结构图 , 但是这个不足以我们把产品生产出来 , 我们出来设计产品结构和组成外 , 我们还得先讲清楚产品如何生产 , 而这个对应到生产过程中的工艺流程 。
- 没想到bind的功能这么强大,赶紧来看看,助你掌握新技能
- TIOBE8月编程语言排行榜:C语言蝉联第一,R语言成黑马
- 编程之前都需要做哪些准备工作
- 加速编程效率,你不知道的IDEA功能设置
- 手把手教你用python编程写一款自己的音乐下载器
- 台积电也没有想到,仅一天时间,华为就成了最后的赢家?
- 中国移动再立功,谁也没想到,5G还能这么用?
- 博士研究生不会编程,也没有使用过Python,是否很失败
- 如何在短时间内快速成为软件开发专家
- Rust的不足之处,让它无法成为一门成熟的编程语言