程序员的语文


我们是如何学习语文的?

  1. 咿呀学语
  2. 写字
  3. 背诵
  4. 组词
  5. 造句
  6. 写一段话
  7. 写文章
  8. 出书

我们是如何编程的?

  1. 学语法
  2. 写语句
  3. 写函数
  4. 写类
  5. 写组件
  6. 写系统

好文章或者好说都有哪些特点?

  1. 与读者产生共鸣,并且有所收获。
  2. 文章脉络结构清晰
  3. 字写的好看

好的程序都有哪些特点?

  1. 健壮性强
  2. 使用方便

作为程序员如何写出好的程序?

  1. 《代码大全》 => 思考
  2. 《代码简洁之道》 => 思考
  3. 《重构》 => 练习
  4. 《设计模式》=> 临摹
  5. 《XXX架构揭秘》 => 骨架
  6. 《一站到底》 => 实践出真知
  7. 《封神榜》=> +∞

类比介绍

  1. 《代码大全》好比新华字典
  2. 《代码简洁之道》好比楷书字帖
  3. 《重构》好比有意识的纠正字形
  4. 《设计模式》好比作文大全
  5. 《XXX架构揭秘》好比作文模板
  6. 《一站到底》好比不断地写文章公开让别人看
  7. 《封神榜》好比 我也不知道是什么

《重构》读后感

写程序步骤

两个不同的角度
1. 自顶向下 总体设计 => 层次划分 => 功能划分 => 类(接口) => 函数 => 语句块 => 语句 => 系统重构。
2. 自底向上 语句 => 语句块 => 函数 => 类(接口) => 设计模式 => 系统重构。

n种坏味道

从味觉上来说:众口难调,你觉得好吃,他未必觉得好吃。同理对于嗅觉来说,你闻起来臭,他闻起来确实香的。但是还是有大家公认的不好吃的东西和臭味道。

注释

  1. 注释太多,废话啰嗦
  2. 注释与代码不同步
  3. 关键点没有注释

函数

  1. 函数名称未表达其意思
  2. 参数列表过长
  3. 参数有多个返回值(out string msg, ref string txt)
  4. 过大的函数(一个函数只做“一件”事)
  5. 过大的类(单一职责原则)

重复或类似

  1. 重复代码块
  2. 类似的代码
  3. 被剔除或冗余类文件
  4. 数据泥团

不清不楚的关系

  1. 发散式的变化(一个类受多种变化影响)
  2. 散弹式修改(一种变化引起多个类相应修改)
  3. 依恋情结
  4. 令人迷惑的临时字段
  5. 中间人
  6. 狎昵关系
  7. 过度耦合的消息链

埋头单干的

  1. 被拒绝的馈赠(继承某个类,但子类和继承类的几乎没有关系)
  2. 夸夸其谈的未来性

其中有:幼稚的数据类、数据泥团、不完美类库、平行继承体系、基本类型偏执,这几类都觉得还ok,更多的是结构层面的问题。

posted @ 2018-04-15 22:52  DorJust  阅读(198)  评论(0编辑  收藏  举报