🎶 Sym - 一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)平台

📕 思源笔记 - 一款桌面端笔记应用,支持 Windows、Mac 和 Linux

🎸 Solo - B3log 分布式社区的博客端节点,欢迎加入下一代社区网络

♏ Vditor - 一款浏览器端的 Markdown 编辑器

工作中的纠结——区分于底层 OR 界面

在使用模板引擎时,遇到了一个纠结的问题,现需要分析一下。

在界面完全一样的情况下,所需的变量,也就是put到标记语言中的内容不一样 时,是选择重写界面,还是选择在底层进行逻辑区分?
场景假设 :有27个界面,平均每个界面需要装载4个小界面,也就是4个 panel。有8种panel。

当然对于爱好偏向界面的我来说, 重写界面是最好、最快速的选择。可是从对产品负责的方面考虑,让我们来假设下不同选择的结果!

首先界面不需要重写,可以节约界面十分之三 的工作量(重写界面只需粘贴复制,修改模板语言标记)。在此假设108(=27*4)个页面,美工,css,浏览器差异为2个人日,108界面工作量为8 个人日,去处重复的100(=(108/8-1)*8)个页面,也就是只需3个人日,节约了7个人日。
界面不重写,唯一能确定put的内容到底该 是什么值时需要根据你打开页面的瞬间,通过servlet传递的参数来进行区别。那么在底层,就需要很多的if...else...。在此有平均有4种类 型,每种类型有27个判别情况。也就是需要108次判别。即使你使用了设计模式,代码看起来可能简介,易于重构,可是到底层,还是一样的 if...else...。性能上面肯定存在一定的影响。这样姑且不说,节约的7个人日中至少有5个人日又被if...else..折磨殆尽,工作量上基 本是一样的。因此可见,重写模板是最好的选择。

产生此问题的原因 归结于整个系统的key不够灵活抽象,如果key根据4种 类型,27个情况,按照组合的方式进行定义,那么杯具就不会产生,同样的模板,只需要4次判别即可,也就是节约了重写模板的7个人日和底层 if...else...的5个人日,加起来共节约了11个人日(哇咔咔)。可惜木已成舟,我们需要的不是去责备和哀怨,只能寻找最适合的办法去解决它。


欢迎注册黑客派社区,开启你的博客之旅。让学习和分享成为一种习惯!

推荐阅读
留下你的脚步