正文
李狗蛋为了和自己心仪的女神在一起,使上了浑身解数,让我们看看他是如何逆袭的。
case1:
狗蛋想看女神的详细个人信息,他调出了官网的代码:
// list即可能是列表也有可能是表格 const configListData; const configList; const configData; const configFormList; ......
WTF!这些变量名根本一模一样好吗?我到底该看哪个?
解析:
让我们来看一下elementui的命名:
采用机翻往往会出现同名非同义的情况,需要对基础组件置顶一个自己的规范,设想一下,如果多人维护统一套代码,每个人风格不统一又没有注释,很容易出现神秘变量。
狗蛋好不容易理好了表格,打算用烂熟于心的女神三围做查询条件,OMG!这查询条件也太多了吧:
//vue中的data 这里用了苍老师的..... { age:'18', sex:'female', major:'english', //专业 class:'201', bust:'90', //胸围 waistline:'58', //腰围 hips:'83', //臀围 table:'', } table.search({waistline,hips,bust});
报错:正经学校怎么可能会有三围啊!
解析:
表格的查询条件有很多,然而上面这一块并不全是学生表格中的查询条件。
狗蛋一怒之下修改了结构:
{ // 查询学生条件 studentSearchData:{ age:'18', sex:'female', major:'english', //专业 class:'201', }, // 查询私人条件 privateSearchData: { bust:'90', //胸围 waistline:'58', //腰围 hips:'83', //臀围 }, table:'', } table.search(studentSearchData); //少写几个变量
这样通过业务领域来抽象成个对象(类)来区分业务,在复杂的业务场景里不仅可以确认数据的职责链,通过命名让代码显得更加'模块化',甚至在一些功能里可以更加便利的调用。
函数名case1:
狗蛋为了维护女神的形象(占为己有)想把隐私条件修改(保存)了:
changeSearchData('privateSearchData'); updateSearchData('privateSearchData');
所以是哪个是修改函数?
解析:
建议采用 操作(restful) 内容 / 内容 行为 来命名
searchData(); //获取 加get多此一举,个人风格你们也可以加 initSearchData(); //删除 addSearchData(); //添加 updateSearchData(); //更新 removeSearchData(); //移除某个属性 deleteSearchData(); //删除 searchDataToString(); //转换数据格式
case2:
帮女神清空购物车,计算她双11购物车的消费金额:
(数量 * 单价)* 折扣 距离 * 运费
function Price(){ return (order.quantity * order.itemPrice) * order.discount distance * shipping }
狗蛋想修改购物车的计算逻辑但是无从下手
我们的项目里往往会出现这种代码,这并不是什么错误的代码(需求紧、懒癌),但是我们一定要重构它。这个函数中的代码过于复杂,以至于用一个名字无法解释它的具体行为
解析:
用单一职责重构它:
// 基本价格 = 数量 * 单价 function basePrice (){ return order.quantity * order.itemPrice; } // 折后价格 = 基本价格 * 折扣 function discountPrice (basePrice){ return basePrice * order.discount; } // 运费价格 = 公里数 * 运费 function shippingtPrice (){ return distance * shipping; } function Price(){ return discountPrice(basePrice()) shippingtPrice(); } ......
写了个大概,根据具体业务还能优化,重构后的好处是:
参数名
完全是个人风格了:
女神低下头在狗蛋的耳边轻声说道,其实你不用为我复出那么多,我就喜欢你写代码的样子,真的好帅。(我就喜欢你人傻钱多)
狗蛋:嘿嘿,女神原来对代码感兴趣,你认为什么语言是世界上最好的语言?
女神:。。。。。。
更多信息欢迎关注!
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved