Objective-C小技巧 (Builder / Command / Protected) Builder模式当我们在设计一个类时,我们期望类属性的值由外部调用者传入,但是我们希望这个值仅在初始化设置,在初始化之后外部调用者修改这个值会导致状态混乱。或者干脆一个类具备大量外部可access的属性,调用者在使用这个类时会感觉比较茫然,需要一定的学习成本才能明白这个类设计的意图。我们可以通过Objective-C的 init 方法解决,尤其是 designated initializer...
证书链-Digital Certificates 基础知识证书 CA证书CASigning Verification证书链实例证书链CA组织end-user certificates intermediates certificatesroot certificates其他基础知识在介绍证书链之前,需要首先了解一下非对称加密以及电子证书相关的基础概念。关于这部分,我也一直有些困惑,直到看了阮一峰老师的博客,才对证书有个比
Modern PHP读书笔记一 关于PHP,大家的误解比较多,但其实现代PHP是一门无论开发效率还是执行效率都相当高的编程语言。关于现代PHP的各方面特性,大家可以参考<Modern PHP>作者之前写的 PHP the right way,中文翻译:PHP之道。同时,作者也是比较流行的PHP框架 – Slim 的开发者。所以这本书非常值得已读,甚至你只需要懂一些OOP的概念即可,并不需要你懂PHP开发。Part 1 Langu
JavaScriptCore学习之JavaScriptCore JavaScriptCore框架的类JavaScriptCore框架对外暴露的类实际上非常少,这样带来的好处是API非常简单。如下图所示,只有5个类,分别是JSContext,JSValue,JSManagedValue,JSVirtualMachine,JSExport,其中最核心的是JSContext和JSValue,我们平时打交道的基本就是这两个类了。
JavaScriptCore学习之JSPatch源码阅读 方法调用require实现JS接口消息传递对象持有转换类型转换示例方法替换实现基础原理JPForwardInvocationOC调用JSPatch的基本原理:JS传递字符串给OC,OC通过Runtime接口调用和替换OC方法。方法调用1. require实现 var _require = function(clsName) { if (!global[clsName])
Mantle源代码阅读笔记 一 最近的项目需求需要持久化一些对象,由于只是一些比较简单的数据,使用NSUserDefaults进行存储即可。之前实现过比较简单自动archive和unarchive的操作。原理很简单,遍历NSObject的property list,然后通过valueForKey:和setValue:forKey:方法进行操作。这种实现不能满足我的新需求,我的新需求需要做到将property为其他类型的对象也做到
Flux学习笔记 Flux基本概念关于Flux,基本概念看了一天,对整体的概念有了一个基本的认识,这部分不算很难,概念上面也很容易理解。推荐一篇文章,结合facebook的官方的概念解释,可以快速对Flux有个很好的理解,甚至对基本的使用也会有个比较清晰的认识,参考:https://medium.com/brigade-engineering/what-is-the-flux-application-a
Redux学习笔记 随着JavaScript单页面应用开发的日趋复杂,JavaScript需要管理比之前任何时候都要多的State。State可以包括服务器返回的数据,本地缓存的数据,也可以是本地创建还没有发送给服务器的数据。UI state也变得日趋复杂。管理持续不断变化的state变得非常困难,最终的结果就是对state的失控,你不知道state是when, why 以及how发生变化的。导致的问题就
React.js学习笔记 最近在学习ReactNative,在搜集学习资料探究学习方式的阶段发现,要想能在实际项目中做到应用RN的水平,就必须要先对React.js很了解才可以。在了解React.js的过程中,发现里面涉及的概念非常多,node.js/js/css/jsx/babel/es6/flux/redux等等,感觉前端的技术栈果然比较深一些。根据我自身的学习习惯,先对知识的整理学习完毕,做到对技术的可控状态才算学习
<React: Up and Running>阅读笔记 — The life of a component & Excel: a fancy table component Properties要把Component的this.props属性认为是可读的,properties用来从parent component传递configuration给children。proptypes可以通过在components中添加一个叫做 propTypes 的property,这个property的值是一个列表,这个列表中定义了component可以接受
<React: Up and Running>阅读笔记 — JSX Transpiling JSXtranspilation是获取source code, 然后使用老版本浏览器可以理解的JavaScript来重写的过程,这两个版本之间的语法不一样,但是功能是一样的。这个JavaScript的polyfills是不一样的,polyfill是完全JavaScript-land的,比如解决JavaScript新老版本API兼容的问题,把高版本的A
React Doc阅读笔记一 — Why React ? && Displaying Data Why React?React是Facebook和Instagram用来构建user interface的JavaScript Library,它要解决的核心问题:building large applications with data that changes over time. Reactive UpdatesReact use a fast,
iOS中的正则表达式 参考:https://developer.apple.com/library/ios/documentation/Foundation/Reference/NSRegularExpression_Class/http://www.raywenderlich.com/30288/nsregularexpression-tutorial-and-cheat-sheet,RW的教程,错不了htt
Objective-C新特性 Swift的确是一个很强大的语言,各种特性使用起来非常简洁强大,但是目前来说,感觉成熟度还是不够,所以商业项目中使用OC来说是比较稳健的行为。看来一下WWDC 2015的 Swift and Objective-C Interoperability session,视频前半部分主要是讲解swift和OC之间的交互的规则,后面则讲到OC的一部分新的语言特性,这几个特性,Apple的开发人员在WWDC
iOS代码实践总结 前几个月完成对MVVM/RAC的学习之后,最近一直在默默地对项目代码进行重构,写码比较多,过了一段时间回头发现自己的代码风格还有代码质量都有大大的改善。去年在一家小公司负责客户端的研发工作,被杂乱的事情分神比较多,所以写码不多,这段时间写业务代码较多之后,感觉有点找到了属于的自己的best practice的感觉。除了专门抽时间和精力重构之外,还有就是遇到一个需要添加功能的模块,由于项目中的代码历
Laravel 配置 PhpStorm + Xdebug + chrome 设置Debug环境 配置Laravel在PhpStorm中的断点调试,有两种方式,第一种是最为常用的,直接配置一下phpstorm和安装一个chrom插件即可,但这种方式有一些缺陷,就是对API的调试非常不容易,比如Ajax或者客户端请求:http://laravelista.com/debugging-a-laravel-web-application-with-phpstorm-on-homestead/
breakpoints && lldb && chisel 的使用 BreakpointsBreakPoint分类breakpoint也是有分类的,我这里的文章内大致按使用的方式分为了 Normal Breakpoint,Exception Breakpoint,OpenGL ES Error breakpoint,Symbolic Breakpoint,Test Failure Breakpoint,WatchPoints。可以按具体的情
mac下 Android Studio && PHPStorm 在JDK1.8下字体问题的解决 关于这个问题存在已久,根本原因在于在JDK1.7以及1.8上,java渲染方式的更改导致的,可以查看jetbrains的官方网站:https://youtrack.jetbrains.com/issue/IDEA-117324。虽然在JDK1.8下渲染有些问题,但是不得不说,在JDK1.8下,编译速度快了很多。这个时候我们又想AS好看,又想提高编译速度。解决方式的话,我没有使用官方的解