今天開發中遇到的一個關於初始化賦值問題

這裏寫圖片描述

昨天花時間改了一下項目中篩選條件的樣式和代碼,然後提交到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這樣的寫法,也是自己想不到更好的辦法,覺得能看起來統一就行。但是我沒有去跟同事討論或者問問同事有沒有更好的想法,自己一意孤行的就做了,結果很簡單的一個問題,白白浪費了幾個小時。以後一定要多跟同事交流,把自己的想法表達出來。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章