您现在的位置:首页
--> 编程语言
Objective-C 和 C++ 同样从兼容 C 语言开始,以给 C 语言增加面向对象为初衷,他们的出现的时间都很类似(1983 年左右)。但面向对象编程的源头却不同:C++ 受 Simula 和 Ada 的影响比较多,而 Objective-C 的相关思想源至 Smalltalk ,最终的结果是他们在对象模型上有不小的差异。
• 编码规范集锦
现在很多软件公司采用的编码规范基本是PEP8,但每行80个字符的限制除外。GitHub上的项目,大多数都遵循PEP8规范(这一点似乎达到了高度的统一),但遵守80个字符限制的很少。在一些有明确规定的规范标准中,这个限制可能会增加(100或120),甚至完全删除。
用了下 Objective-C Cocoa 里的 JSON 相关类 NSJSONSerialization, 发现简单的事情突然变得太复杂了. 想想用 php 语言的时候, 如果想把 php 语言对象转成字符串, 直接 json_encode(); 如果想把网络或者文件中的一段二进制数据(JSON 字符串)转成 php 对象, 直接 json_decode().
但是, 在 Cocoa 里就不那么直接了. 首先, 你会遇到字符编码的问题, 所以你得到的和操作的不能是字符串, 而是 NSData. 其次, NSJSONSerialization 无谓地增加了限制, 顶层 Objective-C 对象只能是数组和字典.
我不想探讨这里面的原因, 我当然知道这里面的原因, 我只是说, 这些原因可以避免.
在学习PHP的时候,感觉自己对面向对象理解还不深刻,很多时候是一头雾水。通过别人的推荐,找到了这篇通过星际争霸来讲解面向对象概念的文章,转载出来供有需要的朋友学习。
• 闲话命名
前几天在Twitter上有朋友问:ln的参数顺序要怎么记忆比较好,因为总是搞错。这个问题我也遇到过,以前每次都记不住两个参数的先后顺序,最终办法是花了点时间背诵命令模板,每次用到时心里默念就好了: ln option target linkname 我没想到的是,搞混顺序竟然是个普遍问题,我本来以为哪怕有疑问,背背模板也好了,大家都应该是如此。
Moco在程序库设计包括两个方面,如何设置服务器和如何让服务器运行起来。
先说简单的,如何让服务器运行。最简单的选择是让用户自己启动服务器,然后,在测试结束之后关闭服务器。小结一番,简化用户接口,设计DSL,利用好类型,区分Publish接口。
分享两个强符号,弱符号引起的编译问题。由于SP的编译分为debug和release两种模式(话说也没有谁不这么编吧),往往在debug开发的时候没有遇到的问题,在release阶段暴露了,这里面最容易出现的就是弱符号丢失,导致符号定位出错或者符号没找到的问题。
早几年有Ruby粉抨击设计模式,如今王垠又来,还有各种框架之争、平台之争,不计其数,争吵到最后又归结到程序语言问题,最后程序语言问题又归结为两个: 1.语言A能做的语言B能做吗? 2.如果都能做哪个做起来更方便?
• =的两边
John Backus据说说过下面的话,“赋值语句将程序割裂为两个世界。第一个世界是赋值语句右边的世界。这是一个有序的表达式世界,这个世界有许多有用的代数特性…….。最有用的计算都发生在这里。第二个世界是语句的世界,这是一个无序的世界,在那里找不到什么有用的数学特性。结构化编程一定层度上为这个混乱的世界带来一些秩序,但是它那些原始的循环,子函数,分支流程技术从未击中过冯诺依曼型语言的本质问题---一次一条指令的控制流模式”。“
昨天写一个读取bmp文件的小程序,出现了一个bug,但是不清楚到底是什么原因。
程序是要读取一个bmp文件然后保存成Bmp文件,我发现读取的时候有小错误,保存的时候也有。保存Bmp的时候居然文件大小比原来的文件大小多了3个字节,这三个字节的差异让图片的内容有了巨大的变化。
我以前给一些公司讲一些设计模式的培训课,我一再提到,那23个经典的设计模式和OO半毛钱关系没有,只不过人家用OO来实现罢了。设计模式就三个准则:1)中意于组合而不是继承,2)依赖于接口而不是实现,3)高内聚,低耦合。你看,这完全就是Unix的设计准则。
从本质上看模板也是一个微型语言,因此可以从 DSL 的角度着手,使用工具快速构建一个适合于特定前端框架的模板引擎。 本文讨论的话题和承玉的差不多,相信大家都知道coffeescript,handlerbars。承玉的DSL和handlerbars类似,我完成了一个模板语言velocity的解析,更接近coffeescript的编译。在此,与大家分享一些经验,如果你也希望知道coffeescript语法解析如何完成的,那么,本文应该对你有所启示。
每个使用MySQL数据库的人都应该看代码吗?不是的,那意味着MySQL数据库的使用门槛太高,几乎不可用;但另一方面,如果看MySQL代码的人多了,意味着有更多的人对MySQL数据库的了解更加深入。能够进一步推动MySQL数据库广泛而恰当地使用,为使用者、相关从业者创造更多的赢利机会和就业机会。
组合还是继承,这是一个问题 ——由模式谈面向对象的原则之多用组合、少用继承 刚刚接触模式或者学习模式的人,经常会有这样的问题,为什么模式是成功的呢?很多人都会说模式是经验的积累,当然是正确的。可是经验为什么偏偏就证明了这种模式是正确的呢?这其中起用作的就是面向对象的基本原则。正是因为模式都或多或少的符合了面向对象的基本原则,所以模式才成为我们面向对象的设计和编码过程中不败的法则。那么什么是面向对象的基本原则呢?这就是我们将要一一讲到的问题。 单纯的讲到一个个的原则,就是那么的寥寥几句,非常的简单,但又是非常抽象的,难以理解。怎么办? 任何的理论,只要有生动的例子来讲解或证明,就能极大的帮助理解。
linux内核和其他一些开源的代码中,经常会遇到这样的代码: do{ ... }while(0) 这样的代码一看就不是一个循环,do..while表面上在这里一点意义都没有,那么为什么要这么用呢?
• 正则书评
只要是知道“正则”这个词的,上网搜集个把资料,应该就不是问题吧。我获得正则消息的网絡渠道有这样几个,以质量从高到低排序:dilicious标签(颇有些不错的文章) > 一些与正则相关的博客(可以参考我整理的这个页面正则链接 ,不定期更新中) > google alerts (关键词[regex, regular expressions, 正则,正则表达式]都建议添加,有时也能发现好文章)。
近3天十大热文
- [67] Twitter/微博客的学习摘要
- [67] IOS安全–浅谈关于IOS加固的几种方法
- [63] android 开发入门
- [63] 如何拿下简短的域名
- [62] Go Reflect 性能
- [60] find命令的一点注意事项
- [60] Oracle MTS模式下 进程地址与会话信
- [58] 流程管理与用户研究
- [57] 【社会化设计】自我(self)部分――欢迎区
- [55] 图书馆的世界纪录
赞助商广告