发表于: 2017-06-25 23:09:27
1 898
今天完成的事情:
今天头晕了一天,效率非常低,改了一天的样式,听付老师讲课
明天计划的事情:
把搜索页面和公司搜索功能完成。完成在招职位页部分功能。
遇到的困难:
改了一天的样式,没有遇到什么困难
收获:
从付老师讲的课上我知道了二叉树是一种非常重要的数据结构,很多其他数据机构都是基于二叉树的基础演变过来的。二叉树有前、中、后三种遍历方式,因为树的本身就是用递归定义的,因此采用递归的方法实现三种遍历,不仅代码简洁且容易理解,但其开销也比较大,而若采用非递归方法实现三种遍历,则要用栈来模拟实现(递归也是用栈实现的)。下面先简要介绍三种遍历方式的递归实现,再详细介绍三种遍历方式的非递归实现。
1、先序遍历——按照“根节点-左-右”的顺序进行访问。
2、中序遍历——按照“左-根节点-右”的顺序进行访问。
3、后序遍历——按照“左-右-根节点”的顺序进行访问。
从小课堂中初步了解开源框架调研、对比、使用的基本流程
状态:在业务界面中我们经常需要数据和界面的交互,根据某些数据去生成界面,通过界面上的操作去改变数据。这其中有两种,一种就是数据到界面,一种是界面到数据,使用原生或者jquery实现这种操作要大量代码,而且实时更新也很麻烦,所以主流框架都在交互上进行了封装处理。
MVVM流派的angular、vue,通过类似模版的语法,通过内部转换,构建数据和界面状态的绑定关系,甚至双向绑定,监听界面变化,当界面发生改变,按照规则去更新响应的数据,然后,再根据配置好的规则,从数据更新界面状态。react则通过函数式编程实现,推崇的是单向数据流:给定原始界面或数据,施加一个变化,就能推导出另一个状态,有点像状态机。
组织:整个业务代码的模块关系、业务模型。模块关系共识就是组件化,整个应用形成组件树,每个组件树提供对外接口,用来数据交互,然后内部只关注自己的实现,需要考虑组件的定义、约束、管理、测试等很是复杂;react和vue的组件化成都要优于angular。业务模型指的是所处领域中的业务数据、规则、流程的集合。即使抛开所有的展示层,这一层也是应当要能够运作起来的。react有redux来辅助管理,angular2引入了RxJS,vue有vuex。如果是学习能力强的人,发现面向函数编程模型的时候会非常喜欢,但是对于大型项目,并非好事。用面向对象、面向过程的那些方式,虽然笨重,但是门槛低,符合大多数人的理解和思维模式,而且经验丰富。
效率:分为开发效率和运行效率。组件化是提升开发效率的一种手段,具体到单个组件的实现上,mvvm系的代码量会少一些、开发效率稍高一些。其中,angular因为实现的特殊性,有作用域继承之类的双刃剑黑魔法,开发效率的不稳定因素要高不少,深刻理解的人用起来效率很高,不理解的用了到处是坑。angular是三者中运行效率最低的那个,主要在于数据变更方式是脏检查,当监听数量提高时,极大影响性能。在针对现实情况的测试中,vue是效率最高的那个(使用和react共同约定的测试基准),在大数据的情况下,react效率最高。
学习曲线:angular1学习曲线陡峭,大量新的概念、晦涩的说明、复杂的指令;angular2即使不用typescript,它使用es2015的js,18个npm依赖包、4个文件、超过三千多字的介绍来实现一个hello world!;react学习曲线陡峭,需要了解jsx和es2015,需要学习构建系统;vue需要你熟悉html、符合es5的js。
评论