当前位置: 首页 > news >正文

实战型开发--3/3,clean code

在这里插入图片描述

编程的纯粹

hmmm,一开始在这个环节想聊一些具体的点,其实也就是《clean code》这本书中的点,但这个就还是更流于表面;
因为编码的过程,就更接近于运动员打球,艺术家绘画,棋手下棋的过程,是一个更加纯粹的过程;
相比而言,谈及业务,谈及设计则是要理性综合多种因素,不似编程本身这么纯粹。

所以在这个可以感性的章节就不妨感性一点:
就个人经验来看,安静的写出好的程序,这件事情本身就是超爽的。
享受这个过程,追求技艺的精益求精,是写出clean code背后的最有力的动因和意义所在。
这点可以从

  • john carmack在编写doom程序时候看到(《doom启示录》),
  • 在吴清源追求致中和中看到:[吴清源新传]
  • 科比的“the zone”中看到

所以写出简洁代码的核心要义在于:

  • 编程的时候沉浸&享受其中
  • 持续的追求“简洁优雅,无懈可击”,这是一个一直可以追求的状态

《clean code》

基本上《clean code》这个书覆盖了足够多的内容,里面也有足够的原因,这里谈及几个话题:

精简 & 实用平衡

比如naming这个章节,会谈及名字应该起的精简,但是需要:

  • 表达出足够的含义
  • 和干的事情匹配
  • 要易于搜索(现在工具已经好多了,可以比较容易的检索到,这也让起名字更容易一些)

实际工作中看到一些同学追求极简,为了少几行代码,让程序的可理解性下降,就是实用性不足;

考虑到复杂度&脑力消耗

函数这个章节,需要控制函数的层级,规模;
一个巨大的函数,里面代码有的做的非常底层,有的有很高层这种层次不清就是一个糟糕的函数;
层次清晰,规模看起来很轻松,就是比较好的函数;
这点就是和复杂度以及人脑的承受度有关;

内力:让简洁代码成为习惯

简洁代码绝不是若干条规则就可以概括,更不是看书就能看出来的(看代码倒是有可能);
这个源于长期的练习,我和周围得出的经验就是,要去崇尚简洁代码,并且每个代码模块都反复重构到以能写到的最简洁优雅,无懈可击的程度收尾。
笔者好友的经历就非常有代表性:
开始工作的时候,常常会把写好的代码反复重构重写3-4遍,到自己觉得完美为止;
过了几个月回过头来看当时觉得完美的代码,又是漏洞百出,又做一些整理重构;
时间长了之后,一般第一版就能写出不错的了,然后稍微整理加一些注释就好了;

到团队里一些功力深厚的同事确实也是这样的,每次写都是水准之上;

这种事情不止体现在代码上,也有程序设计甚至做事方式上,所以尽管有时候我们在rush,但是提交和代码依旧可以整洁不乱,不会出现莫名的不过,这就是内力

http://www.lryc.cn/news/182269.html

相关文章:

  • 家用无线路由器如何用网线桥接解决有些房间无线信号覆盖不好的问题(低成本)
  • 【Golang】网络编程
  • 使用策略模式优化多重if/else
  • 逆强化学习
  • postgresql新特性之Merge
  • 【注解】注解解析与应用场景
  • mysql面试题14:讲一讲MySQL中什么是全同步复制?底层实现?
  • Linux驱动设备号分配与自动创建设备节点
  • 基于MFC和OpenCV实现人脸识别
  • 力扣 -- 377. 组合总和 Ⅳ
  • 阿里云新账户什么意思?老用户、产品首购详细说明
  • C++ YAML使用
  • 十二、Django之模板的继承+用户列表
  • wzsc_文件上传(条件竞争)
  • unplugin-vue-components和unplugin-auto-import插件
  • docker系列文章目录
  • 第80步 时间序列建模实战:GRNN回归建模
  • 《C和指针》笔记33:指针数组
  • C/C++字符函数和字符串函数详解————内存函数详解与模拟
  • CAcUiDockControlBar初始位置 2023/8/19 下午3:51:18
  • CDH6.3.2 的pyspark读取excel表格数据写入hive中的问题汇总
  • 2120 -- 预警系统题解
  • C++入门-day01
  • Android开源 Skeleton 骨架屏 V1.3.0
  • 网络资料搬运(2)
  • SEO搜索引擎
  • 动态规划-状态机(188. 买卖股票的最佳时机 IV)
  • 银行业务队列简单模拟(队列应用)
  • 2023/8/8 下午10:42:04 objectarx
  • Day-06 基于 Docker安装 Nginx 镜像