## 开发日志

* 20171121
    * 今天搞清楚了nodes 树到java 编译文件的解析过程，没准一不小心就会忘记。
    函数的核心输出实现，并不是传统的字节流那样。从上到下，顺序输出，而是遇见函数体，则存档案，输出函数体，待函数体输入完成以后，再读取档案，继续输入。
    相当精髓的设计，这种栈式操作，似曾相识。适用场景，树解析之类的，通常会树状的数据处理会采用递归之类的。但是递归处理是嵌套结构的，比如你递归查找，拼接字符串，返回的最终都是递归一一嵌套的。
    而这种场景不一样，虽然是递归调用，但输出的方法体函数，在java 类或者js 类中必须是线性的，而不是嵌套的。这种处理是递归处理不了的。十分震撼。
    2：06，一步一步来，现在能解析成 node 节点树，知道怎么用节点生成匀称的js 文件了，现在差，模板文件的设计，和通用tag 比如foreach 这种的实现类了
    
* 20171231
    * 在此之前数据输出方案，像java jsp 一样先编译成一个js 文件在执行还是，直接在内存中运行，这个问题纠结了很久
    最终选择了在内存中运行。第一生成js 文件，就污染项目了，运行时候产生垃圾文件，别人使用提交不好，第二，编译成js 文件后，有个动态require 过程。性能会收到影响
    内存的方案，当然在开发调试排错估计都没有编译成js 这种方案更为直观，但麻烦的只是开发阶段。对使用来说比较友好。
    * 今天实现了foreach 的解析。，多层嵌套解析，一些核心的设计解决了，比如运行环境，上下文 pagecontext 的设计，var="item" ,items="${list}" 在context 上应该如何体现等问题
    * 今下午先实现一个简单的 el 在context 上的渎值函数，后续肯定是要引入 BNF 编译原理来解析复杂的el 的。还没到那一步。
    * 今天也是2017 最后一天了。这半年来收获太多了，app h5 混合开发，如何更好的开发,node ，数据库，http, 的封装
    java 那套移植过来也是蛮好用的，不过这些东西都要自己封装。市面上的很少用，因为java 太熟了，按照自己习惯把那些东西都从底层到运用层封装了一遍
    ，58 的上线系统也第一个里程碑也达到了，比预计的快很多。后续只需要做好交互使用就行了，我也交给其他人来持续开发这个了
    自己打算要去阿里云了，不知道这个选择对不对。
* 20180106
    * 如果以后回想起，开发这个遇到的一些难点，其中一个就是对异常的处理，node 对异常的处理比较弱，还好不是一个async 那样的项目，异常再compiler 层都能捕获到
    

