敏捷开发松结对编程系列:L型代码结构案例StatusFiltersDropdownList(中)
这是松结对编程的第22篇(专栏目录)。
接前文
业务代码比较长,基本上就是看被注释隔开的三大段,先显示状态群筛选链接,然后是单个状态筛选,然后是显示下拉框的当前选中项,最后显示下拉框。 subItems = statusIds == null ? ItemsUnder(repository, rootID, includeHidden: includeHidden) : ItemsUnder(repository, rootID, includeHidden: includeHidden).Where(i => i.Status != null && statusIds.Contains("_" + i.Status.ID + "_"));这是它唯一被真正使用的地方。尽管我们会对很多东西进行筛选,但都不需要写任何一行代码了,因为这行代码位于“很多东西”的底层。日后如果技术上有什么变动,就修改它就可以了。实现业务变更现在我们需要实现“晚于某个状态的所有工作项”筛选器(比如自动集成时,只运行“所有晚于故事板上已完成的故事,以及部署中、部署完毕的故事”的测试用例,这个是我们自己的实际需求,写本博客时还没做),下篇文章将通过增加这个新业务,来展示L型代码结构如何使得只通过业务代码而无需阅读技术代码就进行维护变为可能的。(写下篇文章前需要写一些代码,会晚0.5~1小时左右发布)