美文网首页
SAP Engagement Center的一段代码审查记录

SAP Engagement Center的一段代码审查记录

作者: _扫地僧_ | 来源:发表于2019-02-05 22:25 被阅读49次

    CEC review 2015-11-3

    1. 这段代码的目的是从A=a&B=b&C=c&D=d中解析出key A,B,C,D和value a,b,c,d

    虽然只有4行,但是后面两行每行至少包含substring和indexOf两个字符串操作。

    可以通过下面代码高效地实现这个功能:

    var test = "#token=Be&access_token=fff&id_token=ets&expires_in=3600&scope=full";

    var anotherTry = function(value) {

    var reg = /(?:^\#|&)(.*?)=(.*?)(?=&|$)/g;

    var temp;

    while((temp = reg.exec(value))!= null) {
    console.log("Key: " + temp[1] + " value: " + temp[2]); }

    };

    anotherTry(test);

    输出:

    2. 时间点1:UserInfoAPI instance的创建由getFullScopes trigger:

    时间点2:

    时间点1和时间点2 在两个不同的session里。

    4. 每次通过http 请求数据都是通过JSONModel的loadData完成的,既然是No caching,所以可以考虑用一个全局的JSONModel,而不用每次都new一个,因为创建 一个JSONModel是一个expensive的操作,因为其处在prototype chain的leaf node上:

    BaseObject -> EventProvider -> MessageProcessor -> Model -> ClientModel -> JSONModel

    5. getLogoIcon改成getLogoIconURL更好些。

    8. 这种在application 代码里hard code internal id ( 以两个下划线__ )开头是绝对不允许的代码。这里的__xmlview0是UI5 framework生成的,0是框架internal维护 的计数器。line 185就限定死了当前的view - LaunchPadShell 必须是UI5 application lifecycle里第一个被render的view - 这样就太不灵活了。今后如果你们的应用如 果deployment的方式发生了改变,例如是从其他的ui5 view通过点击navigate 过来的,此时counter就是一个大于0的数了。

    for line 52, use:

    logo: sCusLogoIcon || sSapLogoIcon

    要获取更多Jerry的原创文章,请关注公众号"汪子熙":


    相关文章

      网友评论

          本文标题:SAP Engagement Center的一段代码审查记录

          本文链接:https://www.haomeiwen.com/subject/qiuvsqtx.html