跳槽随想

开篇先唠叨下

近一个月没有更新过博客了,这个月基本都在忙着找新东家,也面试了很多公司,总的来说还是很有收获的,做个总结,回顾一下这一年来的收获,以及接下来的打算,当然还有这次面试的经历。

感谢老东家—同程

还记得当初去面试同程的时候还是很忐忑的,接触iOS开发还不足两个月,只会简单的开发页面。记得当时还网上搜了一点面经,死记硬背的终于是过了同程的笔试,面试的时候就露馅了,好说歹说的总算是进了,当时的主管评价就是做iOS开发半年的样子。

Read More

Effective Obj-C <二>

API构建

这个领域可讲的点很多,设计规范,设计模式,设计范式,架构模式等。主要的宗旨就是可扩展,可维护,最终达到open-close原则。

命名空间

没有命名空间是我心中永远的痛啊,不过通过规范命名也能尽量避免,而更糟糕的是如果动态添加时碰到重名,崩溃就在一念间。

还有亮点很容易被忽视,就是C语言函数总是作为顶级符号,不管你是否是声明在.h中。还有一个是如果你的库引用了第三方的记得在第三方已有的前缀之前在加上你自己的前缀。

Read More

Effective Obj-C <一>

其实很久以前就看过这本书了,在实践的过程中也不断的遵循着这些tips,不过随着时间的推移,苹果又加入了一些新元素,所以记录下来,不断的更新,完善这些iOS开发中需要注意的点。

熟悉的Obj-C

这是一门很古老的语言了,古老到苹果已经推出新的语言来代替了,然而这也不能阻止我依然喜欢这门语言,虽然它还有很多缺陷,但也能看出苹果在不断的完善中。

Read More

一步一脚印封装CoreData

CoreData是一种非常灵活地数据管理方式,它既不是一种O/RM也不是一个单纯地SQL wrapper,但是却有这两者的有点,也就是说你既可以把它用作对象关系映射,也可以简化数据库的操作。那么要熟练地使用coredata我们需要掌握哪些姿势呢?

整个coredata技术栈中从上游到下游大致有这些技术:

上层:NSManagedObject,NSEntityDescription,NSFetchRequest,NSPredicate,NSSortDescriptors

中层:NSManagedObjectContext,NSManagedObjectModel,NSPersistentStoreCoordinator

底层:NSPersistentStore,SQLite,NSFileManager

那么我们就可以按照这样的分层来组织我们的架构。代码可以在这里下到

Read More

算法的思路

先说一个简单地题目,有一个无序的list里面存放了很多整数(有正有负),
如何去求出它的最小子序列和呢?(最小子序指的是连续的子list之和最小,如果都是正数则为0)

比如说有一个list = [1,-3,-2,5,2,-6],那么这个list的最小子序和则是-6,如果
list = [1,-3,-2,5,2,-4],那么这个list的最小子序和则是-5.

Read More

初探GCD

GCD简介

GCD是一种简洁的多线程编程技术,通过配合Block让我们平时在需要用到异步时可以简单地使用,而不需要考虑线程的建立,调度等问题。XNU内核通过上下文切换来完成任务的调度(线程就是任务调度的抽象),不过这也带来了一些问题,比如说数据竞争,死锁,消耗内存等,为了解决这些问题,编程会变得很复杂,而GCD大大地简化了多线程编程的难度。

GCD技能树

Read More

iOS开发应该知道的HTTP

前一阵子和同事讨论是否应该全部迁徙到HTTPS请求,由此引发了对整个HTTP协议的研究的想法,然后找了一本小学生也能看懂的关于HTTP协议的书《图解HTTP》,津津有味的翻了一遍,做个总结,下文主要以问答的形式组织,也为了以后方便回顾,查阅。(如有侵权,请及时联系)

了解Web及网络基础

1.WWW的构建技术有:

  • 作为页面的文本标记语言的HTML
  • 作为文本传输协议的HTTP
  • 作为指定文档位置的URL

Read More

iOS菜鸟的CS之路(计算机系统漫游)

计算机系统是由硬件+软件构成,共同工作来运行应用程序。这里由一个非常简单的例子入手观察在整个程序生命周期中,计算机系统分别承担了什么样的责任。

#include <stdio,h>

int main(){
    printf("hello, world");
}

系统简介

信息就是位+上下文

这是一个很简单的C语言源程序,在计算机系统中,像这样的源程序一般都是由ASCⅡ字符构成,也称为文本文件,其他文件则称为二进制文件。这也透露出来一个基本的理念:系统中所有的信息(磁盘上,存储器中,网络中)都是由一串位表示的,唯一区别只是上下文。

Read More