コーディングの原則:短い関数
9502 ワード
こうぞう
コードの行数は15行を超えないでください.なぜ15ですか.私も知らない.
備考:私が今書いている方法は、ほとんどが自然に15行以内に抑えられています.
メリット関数は名前を付けやすくなり、コード行数の減少は職責の単一化を意味するため、名前の命名が容易になります. 関数が読みやすくなりました. 関数は書きやすくなりました.
コードの行数は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 * @protected
15 */
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 * @protected
30 */
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 * @protected
55 */
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: relatedItems
72 }, 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行以内に抑えられています.
メリット