结对编程 0219:tdd element3 rate 组件 2 - 复盘

jinhuisheng · February 19, 2021 · Last by jinhuisheng replied at February 27, 2021 · 35 hits

感受,收获,建议等

「软件匠艺社区」旨在传播匠艺精神,通过分享好的「工作方式」,让帮助程序员更加快乐高效地编程!

  1. 不要过多的暴露一个类的细节,要用行为来代替
  2. 重构要及时,不然积累多的话是要命的
  3. 谨记 测试->实现 -> 重构 三部曲

感受

  • 紧张感减少很多
  • 命名还需要更准确一些
  • 设计原则到嘴边忘了,还需要时常看看,加深印象

收获

  • 对前端的 js 的不同对象的封装性认识加深 RateItems,RateItem,RateItemState 行为的封装
  • onclick 代表一个被动触发的行为,click 代表的是主动行为
  • service 不应该依赖视图的 class
  • 识别过长消息链坏味道,item.state.getState() 违反迪米特法则
  • tell,don't ask 原则 用命令代替查询 this.state.isStarOn() 替换 this.state.getStarState()===StarState.STAR_ON
Reply to jinhuisheng

这里 isStarOn 实际还是一个查询,不完全算是命令与查询分离

Reply to seabornlee

是的😅 ,不是,isStarOn 相当于是做了一下封装,不暴露内部的细节

You need to Sign in before reply, if you don't have an account, please Sign up first.