【读书笔记】iOS-iOS敏捷开发】的更多相关文章

敏捷开发分为几个不同的门派,如:Scrum,XBreed,极限编程(XP Extreme Programming)和水晶方法等. 参考资料:<iOS传感器应用开发最佳实践>  …
[摘要] 3月份的时候,根据教练和其他多为项目经理的推荐,开始阅读这本书:本书共三大部分.12个章节,第一部分:思考工具,第二部分:组织工具:第三部分:杂记:全书相当于对精益思想和敏捷团队组织.Scrum基础进行了浓缩,是这几个方面的知识体系汇总. 部分文字因为翻译的原因,加上个人理解能力有限,没有完全吃透. 个人觉得价值比较大的是第一部分第三章-精益思想.和第二部分的第七章-特性团队,这两部分值得细细阅读:提取两部分的重要观点和经验记录如下: [精益思想] 精益思想的支柱并不是工具和减少浪费:…
总评        这本书是日本一个叫hatena的大型网站的CTO写的,通过hatena网站从小到大的演进来反应一个web系统从小到大过程中的各种系统和技术架构变迁,比较接地气.      书的内容不是很难,所以总的来说比较容易阅读,不需要特别累的啃,可想而知,不是非常深入的,更多的还是把作者的一些经验写出来,hatena这种量级的在国内应该是一个中型网站的水平,作者基本把这个量级web服务的运维的方方面面都讲了一遍,看完可以对这个这种量级网站有一个总体的了解,个人认为还是值得一读的.   逐…
Bonjour就是这样一种技术:设备可以通过它轻松探测并连接到相同网络中的其他设备,整个过程只需要很少的用户参与或是根本就不需要用户参与.该框架提供了众多适合于移动的使用场景,如基于网络的游戏,设备间的文件共享,甚至是家庭自动化. 一,zeroconf概览. 1,寻址 2,解析 3,探测 二,Bonjour概览 1,发布服务 2,浏览服务 3,解析服务 4,与服务进行通信 三,实现基于Bonjour的应用 1,员工应用 2,顾客应用 四,总结 Bonjour是一项非常棒的技术,可以实现自组织网络…
Apple的Game Kit框架可以实现没有网络状况下的设备与设备之间的通信,这包括没有蜂窝服务,无法访问Wi-Fi基础设施以及无法访问局域网或Internet等情况.比如在丛林深处,高速公路上或是建筑物的地下室等. 一,Game Kit基础 除了底层的网络通信特性外,Game Kit还包含了一些特定于游戏的技术,比如成就,排行榜和比赛等. 蓝牙虽然具有不依赖于网络基础设施的独特优势,不过也有一些较大的缺陷.32英尺的最大接接范围比Wi-Fi网络小太多了,而后者可以跨越多个访问点来覆盖更大范围.…
一,URL方案 URL方案有3个主要用途:根据设备上其他应用的存在与否调整逻辑,切换到其他应用以及响应打开你的应用的其他应用.你还可以通过URL方案从某个站点或是在基于Web的认证流程结束是打开应用. 1,实现自定义的URL方案. 2,感知其它应用的存在. 3,高级通信. 1)base64编码,专门用于将二进制数据表示为ASCII文本字符串.可以使用一个标准化的转换表格将二进制数据的每6位编码为一个字符. 2)要想创建图像数据字符串,需要使用之前介绍的3个步骤.序列化图片,使用base64对其进…
一,本地通知 本地通知有64位的最大限制.虽然,你依然可以调度通知,不过到到达的通知数被限定为接近64个,并且按照fireDate的顺序排序,系统会忽略掉其余的通知.这意味着如果现在有64个调用的本地通知,那么在调用另一个通知会丢弃掉fireDate距当前日期最远的那个通知.循环通知会被当作单个通知,因为它们会自动被系统重新调度.如果超出这个限制,就应该检查一下该如何吸引用户,看看本地通知是否为正确的方式. 二,远程通知 APN负载是JSON对象,并且被严格限制为256字节.需要确保负载不会超过…
一,观测网络流量. 观测网络流量的行为叫做嗅探或数据包分析. 1,嗅探硬件. 从iOS模拟器捕获数据包不需要做特别的硬件或网络配置.如果需要捕获这些数据包,那么可以使用嗅探软件来监听回送设备或是用于连接网络的接口. 2,嗅探软件. OS X自带命令行数据包嗅探器topdump,它是OS X中大多数其他嗅探器的根基. 1)使用tcpdump进行捕获. 2)使用Wireshark进行捕获. 二,操作网络流量 1,配置Charles 2,HTTP断点. 3,重写规则. 三,模拟实现的网络状况. 网络数…
在iOS上,有一个库叫做Core Foundation networking或CFNetwork,它是对原始Socket的轻量级封装,不过它很快对于大多数常见场景来说变得非常笨重了.最后,添加了另一层(NSStream)来封装CFNetwork,并且作为最基础的Objective-C网络API.大家更熟悉的类(比如NSURLConnection与UIWebView)都是非常易于使用的,而且能够通过很少的代码完成很多事情,这都是由于这些底层库所提供的坚实基础而实现的. 一,BSD Socket A…
一,度量网络性能 1,网络带宽 用于描述无线网络性能的最常见度量指标就是带宽.在数字无线通信中,网络带宽可以描述为两个端点之间的通信通道每秒钟可以传输的位数.现代无线网络所能提供的理论带宽是很高的.不过请记住,运营商与网络设备提供商引用的带宽数字常常是该项技术的理论最大值,网络设备使用的实际带宽可能与这个最大值之间存在很大的偏差. 2,网络延迟. 度量网络性能的第2个因素是网络延迟,指的是网络包在两个端点间一次往返所需的时间.无线运营商很少会提到网络的延迟数据,不过延迟却会对应用的实际性能造成很…
一,验证服务器通信. 二,HTTP认证. 手机银行应用有两种认证模式:标准验证与快速验证.标准验证只是提示用户输入用户名与密码,而快速验证则让用户注册设备,然后使用PIN进行验证,每次验证时无需用户名和密码.要想确保快速认证的安全性,如果用户选择在给定的认证请求中注册设备,那么服务器响应就需要包含一个额外的属性,即用户的证书.应用会存储这个证书,并在随后启动时检查,从而确定应该显示哪个认证视图. 1,HTTPBasic,HTTP Digest与NTLM认证. 2,客户端证书认证. 三, 使用哈希…
一,在接口契约中处理错误. 二,错误状态可能不正确. 设备模糊地确认操作是崇拜失败的.比如,移动应用发出HTTP请求以在两个账户间转账.请求被银行系统接收并正确地处理:然而,由于网络失败应答却丢失了,NSURLConnection报告超时.超时发生了,但却是在转账请求成功之后发生的.如果重试该操作,就会导致重复转账,可能会造成用户透支. 三,验证负载. JSON和XML就具备了验证机制的负载格式,不过,以逗号分隔的值文件与HTML就没有这种机制. 四,分离错误与正常的业务状况. 五,总是检查HT…
一,操作系统错误. iOS人机界面指南中,Apple建议不要过度使用AlertViews,因为这会破坏设备的使用感受. 操作系统错误: 1,没有网络. 2,无法路由到目标主机. 3,没用应和监听目标端口. 4,无法解析目标主机名. 二,HTTP错误. 404错误是一种常见的HTTP错误,表示找不到URL指定的资源. 一共有5类HTTP错误: 1,信息性质的100级错误. 2,成功的200级错误. 3,重定向需要的300级错误. 4,客户端错误400级别. 5,下游错误500级别. 三,应用错误.…
考虑一个字节是如何从设备发往运程服务器以及如何从远程服务器将这个字节接收到设备,这个过程只需要几百毫秒时间,不过确要求网络设备都能正常工作才行.设备网络和网络互联的复杂性导致了分层网络的产生.分层网络将这种复杂环境划分成了更加易于管理的模块.虽然这对程序员很有帮助,不过当数据在各个层之间流动时可能会产生之前提到的网络错误. 参考资料:<iOS网络高级编程-iPhone和iPad的企业应用开发>…
Web Service可以通过多种格式返回结构化数据, 不过大多数时候使用的是XML与JSON.也可以让应用只接收HTML结构的数据.实现了这些Web Service或是接收HTML文档的应用必须能解释这种结构化数据并将其转换为对于应用上下文有意义的对象. 一,XML 使用原生解析库的另一个考虑因素就是它们是由Apple发布并提供支持的.这意味着它们会针对iOS操作系统未来的每次发布都进行完全的测试以确保向后兼容性.在评估应用中到底该使用哪个解析器时,这些都是要考虑的因素. 二,JSON 从iO…
负载指的是在服务的请求响应事务中交换的数据.常见的负载格式包括XML,JSON与HTML. 进入与发出的负载数据存在很多形式与大小.比如,有些开发者会使用原生的字符串或是以分隔符分开的数据与Web Service进行通信.这么做虽然简单,不过技术上却不具备可扩展性,难以处理复杂的数据结构,可能会导致很多问题. 一,XML XML是一种标记语言,用于编码和组织数据. 二,JSON JSON是一种用于交换格式化信息的轻量级数据格式. JSON支持的数据类型以及与之关联的格式规则: 1,数字:无双引号…
协议指的是在与其它系统交换结构化信息时所要遵循的一套格式,过程与规则.此外,协议定义了在传输过程中所要使用的数据格式.这样,接收系统就能正确地解释结构化信息并做出正应的回应. 1,简单对象访问协议. 简单对象访问协议(SOAP)是个轻量级协议,用于通过可扩展标记语言实现系统间的结构化数据交换.SOAP消息构成了Web Service栈的基础,很多企业建立的服务层都以SOAP作为面向服务架构的基石,可以服务于防火墙内外的客户端. 2,表述性状态转移. 表述性状态转移(REST)是由Roy Fiel…
Cookie是HTTP协议在首个版本之后加入的一个重要组件.它向服务器提供了追踪会话状态的能力,同时又无须维持客户端与服务器之间的连接.在浏览器客户端,Cookie值是由服务器通过请求提供的,,然后被放到随后的请求中.由于设计Cookie的目的是追踪会话状态,因此它们通常会非常小,基本上是几十到几百个字节. 参考资料:<iOS网络高级编程-iPhone和iPad的企业应用开发>    …
异步请求需要运行循环.当数据传递到服务器或是被客户端接收时,运行循环用于实现事件与委托对象之间的通信.异步请求在发出时,会在当前线程的运行循环上操作,这个实现细节是很重要的,因为在GCD块中或者是通过NSOperationQueue创建的线程并没有运行循环.因此,如果在后台线程上发出了异步请求,那么还需要确定线程是有运行循环还是使用了别的运行循环.如下代码片断展示了如何显示地将请求处理指定给运行循环. NSURLConnection connection=[[NSURLConnection al…
一,同步请求的最佳实践. 1,只在后台过程中使用同步请求,除非确定访问的是本地文件资源,否则请不要在主线程上使用. 2,只有在知道返回的数据不会超出应用的内存时才使用同步请求.记住,整个响应体都会位于代码的内存中.如果响应很大,那么可能导致应用出现内存溢出问题.此外,当代码将响应解析为所需的格式时可能需要复制返回的数据,这会导致内存增加一倍. 3,在处理返回的数据前,验证错误与调用返回的HTTP响应状态码. 4,如果源URL需要验证,那么不使用同步请求,因为同步框架并不支持对认证请求做出响应.唯…
一,GET方法. 从服务器获取一段内容,用HTTP术语来说就是实体.GET请求通常不包含请求体,不过也是可以包含的.有些网络缓存设施只会缓存GET响应.GET请求通常不会导致服务器端的数据变化. 二,POST方法. 使用客户端提供的数据更新实体.POST请求通常会在请求体中加入应用服务器所需的信息.POST请求是非幂的,这意味着如果处理多个请求,那么结果与处理单个请求是不同的. 三,HTTP虽然使用了有状态的TCP传输层,但HTTP却是个无状态协议.这意味着HTTP服务器并不会保留关于某个请求的…
代码: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. //URL百分号编码 //URL编码会编码&,问号和其他标点符号. NSString *urlString=@"http://myhost.com?query=This is a question"; NSString *encoded=[u…
http://user:password@hostname:port/absolute-path?query. http:  协议 user:password@   认证 hostname:  主机名 port    端口号 /absolute-path   绝对路径 ?query    查询字符串 参考资料:<iOS网络高级编程-iPhone和iPad的企业应用开发>    …
运行循环是由类NSRunLoop表示的,有些线程可以让操作系统唤醒睡眠的线程以管理到来的事件,而运行循环则是这些线程的基本组件.运行循环是这样一种循环,可以在一个周期内调度任务并处理到来的事件.iOS应用中的每个线程最多只有一个运行循环.对于主线程来说,运行循环会为你开始,在应用委托applicationDidFinishedLaunchingWithOptions:主法调用后就可以访问了. 参考资料:<iOS网络高级编程-iPhone和iPad的企业应用开发>…
一,iPhone 为iPhone编写基于Web的应用程序非常简单.Safari Web浏览器是一款很优秀的工具-它能够完美地对基于Web的应用程序进行缩放,以便在iPhone大小的屏幕上运行.Safari Web浏览器还能够非常好地运行高度依赖于JavaScript的应用程序.升级基于Web的iPhone应用程序也易如反掌,只需要将新版本的应用程序部署到Web服务器上即可.很多应用程序都采用这种方式进行升级. 但是Web应用程序方式并不适合于所有的应用程序-对于要求某种后台处理,访问本地资源,必…
读书笔记:<HTML5开发手册> (HTML5 Developer's CookBook) 虽然从事前端开发已有很长一段时间,对HTML5标签也有使用,但在语义化上面理解还不够清晰.之前在图书馆看到HTML5这类书基本就是略过,想想无非就是介绍一些标签,给一些初学者看,但看了本书之后深受启发,拿来分享,也希望大家多提意见. 一.HTML5中新的结构元素 1. HTML5初始文件 1.1.doctype 在之前,doctype的声明是这样的: <!DOCTYPE HTML PUBLIC &…
一.HTML5中新的结构元素 1. HTML5初始文件 1.1.doctype 在之前,doctype的声明是这样的: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//en" "http://www.w3. org/TR/html4/strict.dtd"> doctype称作文档类型声明(Document Type Definition),它总是作为HTML文件的第一行.doctype是WEB标准要求的一部分…
基本上是对 ADO+开发指南.pdf 的摘抄和总结,以及个人心得. 文章末尾有<ADO+开发指南.pdf>的资源下载,附带个人批注. ------------------------------------------------------------------------------------ ADO(ActiveX Data Object)是Microsoft数据库应用程序开发的新接口,是建立在OLE DB之上的高层数据库访问技术.(话说已经不是新的了?) ADO数据库开发的基本流程…
读书笔记:<HTML5开发手册>-- 现存元素的变化 继续学习HTML5语义化的内容,今天主要介绍一下,HTML5之前的元素经HTML5规范后的语义及一些使用示例. 一.cite HTML5对cite元素的定义进行了很大的修改,在HTML4中,cite元素允许开发人员显示引用内容的作者或发言人. <cite>恺撒大帝</cite>曾经说过, <q>来,信,砍.</q> 然而,HTML5中的cite用来显示某个作品(书籍.诗歌)的标题.HTML5规…
这是补充HTML5基础知识的第五篇内容,其他为: 一.HTML5-- 新的结构元素 二.HTML5-- figure.time.details.mark 三.HTML5-- details活学活用 四.HTML5-- 现存元素的变化 在之前的笔记中记录了HTML5标签元素的语义以及新定义,本周开始进入Web表单部分的学习,该章节已经读过一遍,很多表单验证的工作都可以通过HTML5完成!现在整理笔记,再次进入Web表单的神奇地域. 因该书出版较早,很多东西已经更改,我会在文中已经更正. 一.表单验…