最近总感觉自己写的代码很丑,设计模式很难有用武之地,今天看了 https://www.zhihu.com/question/25339235/answer/90183763?group_id=692432194668343296想到,也许可以给自己定制一个业务逻辑最佳实践
业务逻辑可能看起来长这样 (转自上面的链接):
switch (gender): case 'male': if (level === 'gold') { } else if (level === 'silver') { } else { } break; case 'female': if (level === 'gold') { } else if (level === 'silver') { } else { } break; case 'unknown': if (level === 'gold') { } else if (level === 'silver') { } else { } break;善用data driven的思想可以这样:
GENDER = { MALE: 'male', FEMALE: 'female’, UNKNOWN: 'unknown' } LEVEL = { GOLD: 'gold', SILVER: 'silver', BRONZE: 'bronze' } avatars = { GENDER.MALE => { LEVEL.GOLD =>; LEVEL.SILVER =>; LEVEL.BRONZE=>; }, GENDER.FEMALE => { LEVEL.GOLD => LEVEL.SILVER => LEVEL.BRONZE => }, GENDER.UNKNOWN => { LEVEL.GOLD => LEVEL.SILVER => LEVEL.BRONZE => } } user.gender = (user.gender in GENDER) ? user.gender : GENDER.UNKNOWN user.level = (user.level in LEVEL) ? user.level : LEVEL.BRONZE user.avatar = avatars[user.gender][user.level];我总觉得写代码的时候有五分之一的时间在思考函数和变量命名规则,尤其是rest接口,约定命名的时候简直要了我的命。 google style guide 里面没有提具体规则,只规定了函数必须是动词,变量命名要用驼峰法(lower camel)。