随笔分类 -  学习

摘要:目前完成4篇源码分析文章:MVVM大比拼之knockout.js源码精析MVVM大比拼之avalon.js源码精析MVVM大比拼之vue.js源码精析MVVM大比拼之AngularJS源码精析分析所关注的点集中在 :双工绑定的实现机制、视图编译等几个关键点。建议读者从knockout开始按顺序阅读。... 阅读全文
posted @ 2014-05-05 17:49 侯振宇 阅读(4323) 评论(0) 推荐(2) 编辑
摘要:MVVM大比拼之AngularJS源码精析简介AngularJS的学习资源已经非常非常多了,AngularJS基础请直接看官网文档。这里推荐几个深度学习的资料:AngularJS学习笔记 作者:邹业盛 。这个笔记非常细致,记录了作者对于AngularJS各个方面的思考,其中也不乏源码级的分析。构建自... 阅读全文
posted @ 2014-05-05 17:19 侯振宇 阅读(8921) 评论(2) 推荐(12) 编辑
摘要:VUE 源码分析简介Vue是 MVVM 框架中的新贵,如果我没记错的话作者应该毕业不久,现在在google。vue 如作者自己所说,在api设计上受到了很多来自knockout、angularjs等大牌框架影响,但作者相信 vue 在性能、易用性方面是有优势。同时也自己做了和其它框架的性能对比,在这... 阅读全文
posted @ 2014-04-27 18:35 侯振宇 阅读(10641) 评论(12) 推荐(6) 编辑
摘要:标题党了。其实这篇文章是为了记录一个我对AngularJS compile过程的一个问题。基础:directive有个重要特性是transclude。这个特性主要用途是:当页面的dom元素要进行复杂变化时,将原本的dom暴露给用户以供变形时或变形后使用。例如我有个选项卡directive,写法是:<div tabs> <div tab title="title1">content1</div> <div tab title="title2">content2</div></div>这 阅读全文
posted @ 2013-05-15 15:54 侯振宇 阅读(1928) 评论(1) 推荐(0) 编辑
摘要:我在数据层的抽象上走了一段比较长的弯路。简单总结一下:刚开始做简单的项目时,用简单的ActiveRecord就已经很合适了,比如CodeIgniter自带的。但是项目变大之后,特别是业务实体之间的关联变多之后马上就出现了问题,为了降低各个实体间的耦合,你需要将各种操作再抽象出一层。举个例子:你做了一个简单的用户系统,对用户的增删改查只需要对“用户类”调用相应的操作就行了。后来你增加了一个文件类,每个用户可以拥有多个文件,删除用户时需要同时删除相应的文件。为了能使删除的用户的这个操作复用,同时防止其他操作删除用户时没有删除相应文件夹,于是你不得不再对用户的删除做一层封装。我曾经试图让各种实体在构 阅读全文
posted @ 2013-03-12 16:18 侯振宇 阅读(1407) 评论(0) 推荐(0) 编辑
摘要:在学习Django模板之前我以为也和很多php模板引擎一样,是通过缓存文件输出,执行模板中的python代码来实现的。读完发现居然和前端模板相似,用了正则。为了更好的体会设计的哲学,我同时参考了tornato、drupal、codeigniter、aceTemplate、underscore中的模板设计。Django模板特点1.不支持python代码,使用自己的标签关键字。 Django的模板设计时有个重要的假设是:“写模板的不懂python”。因此你只要搞告诉他基本的逻辑结构(判断、循环、输出变量等)的写法就行了。同时也避免了程序员将业务逻辑写道模板里。解析模板的时候和前端模板非常类似,也. 阅读全文
posted @ 2013-03-08 15:45 侯振宇 阅读(2154) 评论(0) 推荐(0) 编辑
摘要:这篇是总目录。记录下学习python的过程是为了强制自己执行新的学习方法,以及验证自己对于“学习”本身的新领悟。真正强大的人在于成长有个加速度。这个加速度体现在对自己思维方式的改造上,远不只是经验积累。这个改造的方式来自于日常学习中。普通人学习的误区在与于只是收获解决某类问题的经验,即使你学的是一种思路。对真正的学习来说,这只是第一步,我称之为通览。第二步是研究所学的东西的形成过程和发展趋势,对于其中疑惑的地方单独拿出来再学习,这一步才是学习的本质。第三步是在所学的东西上发挥灵感,再创造。这个想法得益于之前看到的一篇文章《如何在一年内修完斯坦福四年的课程》。就是我学习的详细记录:计划1 学习p 阅读全文
posted @ 2013-03-08 10:22 侯振宇 阅读(597) 评论(1) 推荐(0) 编辑
摘要:梯度下降算法的思维过程:x为训练数据输入值。y为训练数据输出值。θ 为 x的系数,也就是要求的。1.预测公式 h(x) = ∑θixi。“使 θ尽可能的准确”,可以理解为理想情况下对每一组样本都有 ( h(x(i)) - y(i) )2= 0 ,非理想情况下希望 J(θ) =∑( ( h(x(i)) - y(i))2 /2)尽可能小。2.梯度下降的思路是: 先取一组随机的 θ 值,代入样本数据,通过求导等计算算出能进一步减小J(θ) 的 θ 值。重新 对θ 赋值,再不断进行这个步骤,直到 J(θ) 达到局部最小。3.这个对 θ 重新赋值的算法是“ θi:= θi - ( aJ(θ) / aθi 阅读全文
posted @ 2012-11-26 16:27 侯振宇 阅读(929) 评论(0) 推荐(0) 编辑
摘要:其实写下这篇的时候我自己也没有什么把握到底会坚持多久,我对自己产生了怀疑。看看自己之前做的事情,做了很多,可是也没完成很多。我总是对新东西的兴趣是不用怀疑的。坚持也不用怀疑。只是某个阶段的时候结果出乎意料时就容易失去方向。这是我需要改进的。还有一点需要改进的是容易想当然,他们说的对。我年纪太轻,很多事情没有经历过所以不懂。但是没有经历过也是有机会做好的,只要真的经过了深思熟虑,计划周详。所以,以后对于没有把握的事情一定要深思熟虑,计划周详。比如,这一次。晚安,定个闹钟。我相信你。 阅读全文
posted @ 2012-11-01 23:55 侯振宇 阅读(263) 评论(1) 推荐(0) 编辑