博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编码原则:短小的函数
阅读量:5239 次
发布时间:2019-06-14

本文共 2301 字,大约阅读时间需要 7 分钟。

结构

代码行数不要超过 15 行,为啥是 15 呢?我也不知道。

1 /** 2  * 根据元数据自动生成的表单。 3  */ 4 Ext.define('Happy.form.metadata.Panel', { 5     extend: 'Happy.form.Panel', 6     alias: 'widget.happy-metadata-form', 7     mixins: { 8         'custom-configable': 'Happy.mixin.CustomConfigable' 9     },10 11     /**12      * 根据元数据配置表单 items。13      * 14      * @protected15      */16     configItems: function () {17         var me = this;18 19         me.items = Ext.clone(me.metadata.getDefaultFormItems());20 21         me.customConfigArray(me.items, 'name', 'config-item-');22 23         me.callScene('configItems', arguments);24     },25 26     /**27      * 根据元数据配置按钮。28      * 29      * @protected30      */31     configButtons: function () {32         var me = this;33 34         var actions = [35             {36                 type: 'save',37                 remoteSave: me.metadata.isLifeCycleIndependent()38             },39             {40                 type: 'close'41             }42         ];43 44         me.customConfigArray(actions, 'type', 'config-button-');45 46         me.buttons = Happy.createActions(actions);47 48         me.callScene('configButtons', arguments);49     },50 51     /**52      * 根据元数据配置和当前表单相关的 items,如:订单的订单项列表。53      *54      * @protected55      */56     configRelatedItems: function () {57         var me = this;58 59         var relatedItems = me.callScene('getRelatedItems', arguments);60         if (!relatedItems) {61             return;62         }63         if (relatedItems.length == 0) {64             return;65         }66 67         me.addDocked({68             xtype: 'tabpanel',69             height: 200,70             dock: 'bottom',71             items: relatedItems72         }, 1);73 74         me.on('recordloaded', function (form, record) {75             Ext.Array.each(relatedItems, function (item) {76                 var grid = me.down(item.xtype);77                 grid.reconfigure(record[item.plural]);78                 grid.reselect();79                 if (!record[item.plural].isNested) {80                     record[item.plural].reload();81                 }82             });83         });84     }85 });

备注:我目前写的方法,几乎都自然的控制在 15 行以内。

优点

  • 函数更容易起名字了,代码行数的减少意味着职责的更单一,因此名字更容易命名。
  • 函数更容易阅读了。
  • 函数更容易书写了。

 

转载于:https://www.cnblogs.com/happyframework/p/3508573.html

你可能感兴趣的文章
03 线程池
查看>>
手机验证码执行流程
查看>>
设计模式课程 设计模式精讲 2-2 UML类图讲解
查看>>
Silverlight 的菜单控件。(不是 Toolkit的)
查看>>
初识lua
查看>>
jquery的contains方法
查看>>
linux后台运行和关闭SSH运行,查看后台任务
查看>>
CAN总线波形中ACK位电平为什么会偏高?
查看>>
MyBatis课程2
查看>>
桥接模式-Bridge(Java实现)
查看>>
Spring的JdbcTemplate、NamedParameterJdbcTemplate、SimpleJdbcTemplate
查看>>
Mac下使用crontab来实现定时任务
查看>>
303. Range Sum Query - Immutable
查看>>
图片加载失败显示默认图片占位符
查看>>
【★】浅谈计算机与随机数
查看>>
解决 sublime text3 运行python文件无法input的问题
查看>>
javascript面相对象编程,封装与继承
查看>>
Atlas命名空间Sys.Data下控件介绍——DataColumn,DataRow和DataTable
查看>>
算法之搜索篇
查看>>
新的开始
查看>>