今天开发中遇到的一个关于初始化赋值问题
2017-09-01 16:23
435 查看
昨天花时间改了一下项目中筛选条件的样式和代码,然后提交到git上面去了。 不小心就被师父看到了,然后发了一个截图问我,你这==1是什么意思?
我解释说是第一次加载页面的时候还没有数据可以初始值,如果直接用Stage的数字的话,将来如果后台变了就会没有效果了,我用1传到后台,在判断赋值一遍,至少不会错。 他说那我还不如用Stage对应的数字,至少不要if ,看你好像好多地方写了if(我们公司讨厌if else ,这是低质量代码的表现,只用一个if还可以容忍,虽然我也讨厌if,但是我还是用了)。 我答,但是那样会很别扭啊,如果改动了就要全部改。 然后又说了一堆,就是用==1压根就看不懂要表达的意思,我觉得用Stage数字一样看不懂啊,而且像-1,0, 1这样的临界数字会好一点,但是我没有说了,因为我知道这也不是最好的办法。 然后师父过来帮我看了一下,说你到前端声明一个全局的用常量值,以后有变动也只要改这一个文件。我这样一想,是好一点,总比页面去判断等于1 好啊 。 然后按Shared下面建了一个Stage-init.profile.ts的文件 如下:
//公用的Stage
var Stage: {
routeAssigned: number,
contentVerified: number,
shippingPlanning: number,
preInterventionNeeded: number,
loadBalanced: number,
};
this.Stage = {
routeAssigned: 120,
contentVerified: 116,
shippingPlanning: 117,
preInterventionNeeded: 5,
loadBalanced: 140,
};
export { Stage };
在每个页面中继承并调用:
import { Stage } from ‘../shared/stage-init.profile’;
赋初始值:
this.criteria.stage = Stage.routeAssigned;
这样就搞定了,省掉了一大堆判断代码,有6,7个页面都要if判断一下也是心累的。
反思: 在决定写这个的时候,我只想到了样式和代码的统一,确没有想到基本一样的代码,是不是可以抽出来,共用。比如用==1这样的写法,也是自己想不到更好的办法,觉得能看起来统一就行。但是我没有去跟同事讨论或者问问同事有没有更好的想法,自己一意孤行的就做了,结果很简单的一个问题,白白浪费了几个小时。以后一定要多跟同事交流,把自己的想法表达出来。
相关文章推荐
- 今天在看一些面试题的时候遇到的一个关于strcmp()返回值的细节问题
- 今天遇到一个关于STL中排序的问题, 怀疑是sort的bug!
- java的初始化研究:android开发中遇到的一个奇怪问题
- 百度笔试题——找出程序中的错误(关于中文字符赋值给char时它是一个负数的问题),今天我是做错了!悲剧了!
- 今天遇到一个很奇怪的问题,挨个赋值可以,隔一个赋一个不行
- 今天遇到一个问题,关于ibatis的
- 今天在写一个关于背四级单词的APP,遇到一个问题
- 今天碰到的一个问题,关于通过基类对象的引用给子类赋值
- 今天遇到的一个开发问题 window.onload冲突
- 关于今天在开发中遇到的点击事件穿透问题
- 开发中遇到的一个关于 SQL 语句执行的问题
- 今天遇到一个关于对象和对象方法内存分配的有趣的问题
- 今天遇到的一个关于HttpSessionListener 的一个问题
- 今天在csdn上遇到一个问题,是关于sql数据行列转换的,我的写法如下:
- 今天用solrj遇到了一个问题,关于日期的
- 关于.net 开发web遇到的一个奇葩问题 drowdown未放置在runat="server"标记里
- 今天做开发时遇到的一个vs2005的问题
- 遇到一个关于ObjectDataSource的奇怪问题
- 今天安装 Atlas 时遇到一个小问题
- 昨晚和今天遇到一个好蠢的问题