software_project_webPlatform

2020-04-04

项目的反思:

1. 应将 Chiller 和 performance 在 getResult() 这一点上抽象出统一的接口. 目前存在一些地方的的 Object 转换

2. 应在外部遍历数据的时候,将不能按照正常实例化的项 单独处理,无需为此改变了对象的构造方式。

 3. 在从数据中获取 Biz 对象的流程采用 模板方法, 每个Biz 的解析逻辑及构造的对象不同,

但都会包含两个部分:

1. 解析成功的部分是 entries Map<String,EntryNode> 

2.解析不成功的部分是 List<String>   

String  以  userType-project-tag   因为 Chiller 的 tag file 带有 _chiller.xml  特例,因此将 ID() 方法 在 Chiller overwrite.

 

4. 在对比两块 Biz 的时候,通用的逻辑抽象出来,可用 Template method.

5. 需要将 Validation 的数据比对 分 Performance, Option, Extension 分块组织.

6. 统一 Msg Constants.

 



todo list:

1. 构建统一的 KPI 组织形式为, EntryNode

<section name=" " >
    <item value="">
</section>

2. 构建两 KPI 对比 Template method, PerfValChlHandler 这一部分的 section 对比逻辑需要简化。

 


imp

1 修改了 Storyboard mapping file,

 

 

 

需要修改 默认访问文件路径;

需要修改 XML 解析路径。

需要将 Storyboard 中增加 performance ,及后续 option 预先准备 其组织方式。

需要增加 extension 信息处理,及相应的 数据对比。

将 Perf via chl 的 section 整理出来下 通用对比功能出来。避免重复功能代码。

 



 2020-04-07 10:37:42

Implementation records:

1. extent storyboard rules

2. uniform repository biz entry acquirement.  

absRepository 统一接口。

 

 

处理掉本不应该开放的 new constructure(),当时的情况是为了将无效的entry 纳入到统一的数据结构内,现在分离出去。

 

 



 

2020-04-07  13:43:44

一个 case, 其可能为正常的数据, 也可能是 error 的数据( 业务范畴属于正常情况,例如在某个工况下是不能产生某些性能数据),此时会有相应的 error 信息.

此时存在两条设计路线, 一种是为了保持格式统一, EntryNode 增加 Error node, 将数据存储在此。与正常的数据部分保持一致。

其二,是便利的存储, List<String>   其size() 便能取出所有 error msg. 不用再查找及遍历 Error Node, 

决策: Entry Node 的存取并不复杂, 且给了 Entry title 级别给了一个标识  constant .

 

 

Chiller 内部用的一个 MARK_STATUS, 为了处理一个 KPI,  值列表的形式 是  kpi, kpi_1, kpi_2 .... 这种情况.

 



2020-04-09

增加对 extension 逻辑的处理,与 performance KPI有部分相似部分,但逻辑分支会少一些。

 



 

substring,  开始索引, 结束索引 (不包含),不要将第二个参数误解为 截取个数。

 



JS 对象的遍历 和数组的遍历

 



2020-04-14

处理的几个问题:

1. bootstrap-table formatters : 意图直接处理一个 Array 类型,再单元格里内嵌一个table, 以显示差异的 details,结果为 table 不加载此块数据

其他列数据正常显示,据查有说 formatters 是返回即时数据,数据建议放在外部处理。

 

 

 

解决方案:

 

 

 

 

 

 

2. 在前端数据的显示时, 分 char 类型, num 类型会多一个数值差异,因此后者多一个属性。

在判断属性是否存在时,不要用 null 或 “”. 而是要用 undefined.

下图为用 null 实则未判定。

 

 下图为 undefined 判定属性是否存在。

 

 

3. formatters 方法  formatters ( value, row, index ) { return .. ; }    value 是当前值, row 是该行数据, index 索引。

 

 

4. 需要可编辑的单元格时, formatters, 和 event  事件配合开发。

5. 有的数据可用 responseHandler 处理原始数据。

复杂表头,参考  https://segmentfault.com/a/1190000015677716

 



 

 前端的 HTML规范采用 HTML5 boilerplate , 但项目未考虑兼容 IE, 后续要综合考虑。https://www.bootcss.com/p/html5boilerplate/

 1 <!DOCTYPE html>
 2 <!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
 3 <!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
 4 <!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
 5 <!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
 6     <head>
 7         <meta charset="utf-8">
 8         <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 9         <title></title>
10         <meta name="description" content="">
11         <meta name="viewport" content="width=device-width">
12 
13         <!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
14 
15         <link rel="stylesheet" href="css/normalize.css">
16         <link rel="stylesheet" href="css/main.css">
17         <script src="js/vendor/modernizr-2.6.2.min.js"></script>
18     </head>
19     <body>
20         <!--[if lt IE 7]>
21             <p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
22         <![endif]-->
23 
24         <!-- Add your site or application content here -->
25         <p>Hello world! This is HTML5 Boilerplate.</p>
26 
27         <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
28         <script>window.jQuery || document.write('<script src="js/vendor/jquery-1.9.0.min.js"><\/script>')</script>
29         <script src="js/plugins.js"></script>
30         <script src="js/main.js"></script>
31 
32         <!-- Google Analytics: change UA-XXXXX-X to be your site's ID. -->
33         <script>
34             var _gaq=[['_setAccount','UA-XXXXX-X'],['_trackPageview']];
35             (function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
36             g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
37             s.parentNode.insertBefore(g,s)}(document,'script'));
38         </script>
39     </body>
40 </html>

 



HTML5 语义化

https://www.jianshu.com/p/b226910034f2

 

posted @ 2020-04-04 19:52  君子之行  阅读(22)  评论(0)    收藏  举报