自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(130)
  • 资源 (1)
  • 收藏
  • 关注

Xcode的代码结构管理

[b][size=large]Merge Conflicts on .project file[/size][/b]XCode的.project文件本质上是一个记录了该项目下所有文件关系的XML文件,每次新加一个文件,目录或者删除一个文件,目录都会对这个文件产生修改。因此,当团队大到一定程度之后,多个成员工作在同一个Project下时,经常会发生同时修改.project文件的情况,这个时候.p...

2015-07-21 22:34:38 272

记Protocol Oriented Programming in Swift of WWDC 2015

其实最先朋友让我就这个题目写篇文章的时候,我是拒绝的,因为觉得苹果就是在炒冷饭, 把已经流行了数十年的OOP中的“面向接口编程”还拿来讲,看完整个Session之后呢,虽然还是觉得在炒冷饭,但是毕竟还是加了蛋的,有些东西还是值得说说的。通常谈到面向接口编程,其主要作用是把系统设计和具体实现分离开,让系统的每个部分都可以在不影响别的部分的情况下,改变自身的具体实现。接口的设计就反映了系统...

2015-07-12 20:28:03 186

你应该知道的Core Animation知识

分享最近读的一本书:https://github.com/AttackOnDobby/iOS-Core-Animation-Advanced-Techniques[img]http://dl2.iteye.com/upload/attachment/0109/2824/53aa65d8-89e6-3f09-bb40-7c56bc8bdfcf.png[/img]...

2015-06-07 00:04:28 181

关于并发的思考

[size=large][b]并发数[/b][/size]并发数和2个因素有关,一是系统可用的处理器核数,这个值可以通过硬件查询得到,也可以通过如下代码得到:[code="java"]Runtime.getRuntime().availableProcessors();[/code]二是并发任务的类型,任务类型一般分为IO密集型和CPU密集型[list][*]I/O 密集的...

2015-02-08 22:33:29 117

使用Hystrix守护应用(3)

[size=large][b]监控HystrixCommand[/b][/size]除了隔离依赖服务的调用外,Hystrix还提供了近乎实时的监控,Hystrix会实时的,累加的记录所有关于HystrixCommand的执行信息,包括执行了每秒执行了多少请求,多少成功,多少失败等等,更多指标请查看:[url]https://github.com/Netflix/Hystrix/wiki/Met...

2015-01-02 22:04:51 163

使用Hystrix守护应用(2)

接上篇([url]http://ningandjiao.iteye.com/blog/2171185[/url]),[size=large][b]执行方式[/b][/size]HystrixCommand提供了3种执行方式:[b]同步执行:[/b]即一旦开始执行该命令,当前线程就得阻塞着直到该命令返回结果,然后才能继续执行下面的逻辑。当调用命令的execute()方法即为同步执行,...

2014-12-30 14:35:20 202

使用Hystrix守护应用(1)

Hystrix([url]https://github.com/Netflix/Hystrix[/url])是Netflix([url]https://www.netflix.com/global[/url])的一个开源项目,主要作用是通过控制那些访问远程系统、服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。 其可以看做是Netflix团队对分布式系统运维的各种理念和实践的总结。值得一...

2014-12-30 14:28:43 899

使用D3 Geo模块画澳大利亚地图

[size=large][b]数据[/b][/size]数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息。因此做数据可视化前需要想明白2件事:[list][*]你有什么数据?[*]你要传达什么信息?[/list]本文中的示例中,将以不同的颜色显示澳大利亚不同地区的客户数量。因此,首先需要澳大利亚的地图数据,D3中的Geo模块可以处理GeoJSON格式的地...

2014-11-24 22:34:47 852

把YSlow添加到Build Pipeline中

[size=large][b]YSlow[/b][/size]Yslow是雅虎开发的网页性能分析工具,Yahoo!的性能团队经过多年研究识别出了34条会影响Web应用性能的行为,然后根据其中可测试的23项行为开发了YSlow工具[list][*]Minimize HTTP Requests[*]Use a Content Delivery Network[*]Avoid emp...

2014-11-17 22:54:23 217

那些JavaScript周围的名词

初涉JavaScript的时候,经常会听到ECMAScript, NodeJS,Webkit,V8,PhantomJS什么的,到底这些都是些什么东西,有什么差别呢,在开发中,他们各自的角色又是什么?[size=large][b]ECMAScript[/b][/size]ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会)通过ECMA-262标准化的脚本程序设计语言。凡...

2014-11-13 22:02:52 121

JSHint: 规范团队的JavaScript代码

[b][size=large]历史[/size][/b]2008年,Douglas Crockford大神写完《JavaScript:The Good Parts》[url]http://book.douban.com/subject/11874748/[/url] 之后,给JavaScript树立了一个完整的技术规范,算是给JavaScript正名了(设计还是可以的,关键是要用好)。然后他老...

2014-11-03 22:30:03 198

Javascript中那些坑

[size=large][b]1. 隐式创建全局变量[/b][/size][code="javascript"]function test(){ var a = c = 10;}test()console.log(c); // 10console.log(a); // a is not defined[/code]给未定义的变量赋值会在隐式地创建一个全局变...

2014-07-19 22:28:20 121

使用Gulp构建本地开发Web服务器

[size=large][b]问题[/b][/size][list][*]1. 在写前端界面代码时,想调试的时候需要配置一个Apache或者Nginx服务器[*]2. 每次修改代码都需要刷新一下,验证效果。[/list][size=large][b]解决方案[/b][/size][b]Gulp + Gulp-connect +watch + livereload[/b]...

2014-05-24 00:32:19 174

iOS7之定制View Controller切换效果

在iOS5和iOS6前,View Controller的切换主要有4种:[list][*]1. Push/Pop,NavigationViewController常干的事儿[*]2. Tab,TabViewController点击[*]3. Present Modal,调用ViewController的presentViewController:animated:completio...

2014-04-18 23:19:51 104

Mac下同时安装多个版本的JDK

JDK8 GA之后,小伙伴们喜大普奔,纷纷跃跃欲试,想体验一下Java8的Lambda等新特性,可是目前Java企业级应用的主打版本还是JDK6, JDK7。因此,我需要在我的电脑上同时有JDK8,JDK7,JDK6。JDK6和JDK7主要是做一些产品代码的验证,以及自己玩一些开源项目,JDK8则纯属尝鲜,谁叫咱是喜新厌旧的程序员呢。[size=large][b]目标[/b][/size]...

2014-04-14 21:42:11 286

原创 Object-C之(Null)与(Bool)

在写iOS程序的时候,想初始化一个空值的时候,经常会迷茫到底是用nil,null还是NSNull, 想定义一个布尔值的变量时,又需要去想想应该用bool,BOOL抑或Boolean,赋值的时候应应该给YES/NO还是true/false。今天正好来理一下。[size=large][b]nil/Nil/NULL/NSNull[/b][/size]Matt Thompson总结了这4个...

2014-04-05 14:08:12 154

iOS之Local Notification(本地通知)·

[size=large][b]Local Notification的作用[/b][/size]Local Notification(本地通知) :是根据本机状态做出的通知行为,因此,凡是仅需依赖本机状态即可判断需要发出通知的行为都可以或者说应该使用Local Notification来处理。比方说:iBeacon中进入了某个Beacon region,或者说自定义的一些定时提醒等。[s...

2014-03-23 21:31:26 234

定制View Controller的切换特效

本文译自objc.io的文章:[url]http://www.objc.io/issue-5/view-controller-transitions.html[/url][size=large][b]定制动画效果[/b][/size]iOS7中最让我激动的特性之一就是提供了新的API来支持做定制View Contrioller之间的转换特效。iOS7发布之前,我自己写过一些View C...

2014-02-16 19:25:33 90

Shell文件处理,Tomcat默认项目,AccessLog的配置

最近处理了几个简单的技术问题,在这儿写一下,加深一下映象。[size=large][b]1. shell读取解析固定格式文件[/b][/size]在当前项目中,需要处理一个文件的内容,解析每行的数据,以这些数据位参数然后调用一些job完成任务,文件是固定的格式,以“|”分隔每个参数,例子:假设有如下的一个文件,格式为First_Name|Surname|age, Job的任务是提取...

2014-02-11 18:52:41 128

实战iOS7之后台多任务

在WWDC2013中 水果公司把iOS7的中后台多任务单独开出来一个Session讲述(Session 204 What’s New with Multitasking),其对后台多任务的改动如下:[list][*]1. 改变了后台任务的运行方式(Background Task)[*]2. 增加了后台获取(Background Fetch)[*]3. 增加了推送唤醒(静默推送,Si...

2014-02-08 20:20:53 99

实战iOS7之NSURLSession

[size=large][b]NSURLSession VS NSURLConnection[/b][/size]NSURLSession可以看做是NSURLConnection的进化版,其对NSURLConnection的改进点有:[list][*]* 根据每个Session做配置(http header,Cache,Cookie,protocal,Credential),不再在...

2014-02-01 20:19:16 53

iOS概念之KVO(Key-Value Observing)

在一个复杂的,有状态的系统中,当一个对象的状态发生改变,如何通知系统,并对状态改变做出相应的行为是必需考虑的一个问题,在iOS中为这类问题提供了4种解决方法:1. NSNotifiactaion和NSNotificationCenter:通知中心2. Delegates:代理, 3. Callback:回调, 4. KVO(Key-Value Observing):键值观察...

2014-01-26 20:21:35 77

实战iOS7之UIDynamics

最近在看Sam Davies写的iOS7系列文章([url]http://www.shinobicontrols.com/blog/posts/2013/09/19/introducing-ios7-day-by-day[/url]),非常有意思,以此为契机准备系统的学习一下iOS7的新特性, 今天是第一篇总结:UIDynamics。[size=large][b]UIDynamics的...

2014-01-26 14:26:51 76

性能测试工具之Gatling

Gatling一直是久闻其名但是未得机会运用,正好最近有需求做性能测试,于是趁此机会熟悉了一下,可以说,这是目前最合我胃口的性能测试工具。其主要有以下特点:[list][*]1. 绿色软件,即下即用。[*]2. DSL脚本描述测试场景,高端大气,易读易维护[*]3. 测试结果报表很漂亮,可读性高。[*]4. 使用Scala的actors和异步IO,资源消耗小,且运行稳定。[...

2014-01-15 19:27:28 490

JavaMail测试工具之GreenMail

不管现在各种Mock框架的运用有多广,我个人在写单元测试的时候还是特别烦Mock,原因如下:[list][*]1. 使用Mock需要Mock所有涉及到得行为,这其实代表了我们是在测试实现,而不是测试执行过程。这样会导致重构的时候经常需要修改很多测试代码。测试应该只关注输入输出,只要输入输出没变,就不应该影响测试。[*]2. 增加代码复杂度。[*]3. Mock的时候会不小心屏蔽掉一...

2014-01-08 19:13:40 236

AngularJS基本特性介绍

[b]Hello World[/b]使用AngularJS非常简单,如下:[code="html"] Hello {{'World'}}![/code]以指令ng-app定义AngularJS的作用域,然后引入angular-1.0.1.min.js,这就是AngularJS的Hello World,简单但是无用。[b]HTML执行表达...

2014-01-07 20:19:15 104

定制一个Gradle Plugin --- project-structure

最近在项目中遇到一个不大,但是还蛮烦人的问题,在Maven的约定中,一个标准Java项目的代码结构如下:[code=""]project--src --main --java --resources --test --java --resources[/code] 当‘gradle i...

2014-01-03 21:23:47 174

在iOS App的图标上显示版本信息

最近读到一篇文章([url]http://www.merowing.info/2013/03/overlaying-application-version-on-top-of-your-icon/[/url])介绍了一种非常简单的,把版本信息显示到iOS app的icon上的方式, 有了这个技能,在测试多版本的时候,测试人员可以直接从icon上看到当前测试的版本,无需在到HockeyApp或者Te...

2013-12-29 19:46:18 168

Restful Spring MVC应用的Request验证

在开放平台的时候,尤其是坐Rest服务的时候,因为用户可以给你传输任何数据,因此,我们需要在服务的入口处添加一层Validator以保证所有无效的数据不泛滥到后续的处理流程中,该Validator会以Fail Fast的形式,尽早告诉客户请求不合法,以及为什么不合法。在Spring MVC框架中可以非常容易实现这样的一层Validator机制。在Rest服务中,需要验证的输入分为2个部分:...

2013-12-26 15:05:14 269

Spring MVC中的异常处理

在一个良好的Rest架构的应用中,所有的异常都应该有对应的Http Status Code来表示具体的异常类型,这样可以客户端可以基于对应的Status Code做出最有利于自己的处理。在Spring MVC中,异常处理机制有3个选项:[list][*] 基于Exception的,即只处理某个异常[*] 基于Controller的,即处理某个Controller中抛出的异常。...

2013-12-25 13:13:28 175

Spring 4.0升级小贴士

随着Spring4.0的发布,很多同志估计都在考虑升级的事情了吧, 在前一篇([url]http://ningandjiao.iteye.com/admin/blogs/1993481[/url])中讲了Spring4.0给我们带来的新特性,如果真的非常喜欢的话,接下来就来看看升级注意事项,帮助想升级的同志们估算一下自己在自己的项目中升级到Spring 4.0的成本。[url]https://...

2013-12-22 19:40:38 91

Spring4.0给我们带来什么?

[size=large][b]JDK8[/b][/size]对JDK8的支持,这个目前来说还是探索性质,毕竟Java 8自己都还没有GA,而且应该没有公司会在目前的情况下使用JDK8做产品开发。因此,暂时可忽略。[size=large][b]Groovy Bean Definition DSL[/b][/size]即可以通过Groovy class来配置Bean,以及Bean之间的...

2013-12-22 17:13:38 140

RESTful API版本控制策略

做RESTful开放平台,一方面其API变动越少, 对API调用者越有利;另一方面,没有人可以预测未来,系统在发展的过程中,不可避免的需要添加新的资源,或者修改现有资源。因此,改动升级必不可少,但是,作为平台开发者,你必须有觉悟:一旦你的API开放出去,有人开始用了,你就不能只管自己Happy了,你对平台的任何改动都需要考虑对当前用户的影响。因此,做开放平台,你从第一个API的设计就需要开始API...

2013-12-15 19:51:42 488

对象转换利器之Dozer

在Java的世界中,经常会涉及到需要在2个对象中进行转换,比如说:[list][*]调用SOAP Web服务,需要把自己的Domain对象转换为Soap服务的Jaxb对象请求,[*]在分层级SOA架构中,2个层级之间Domain对象的转换,[*]在分布式系统中,每个模块使用自己的领域对象,防止自己的业务被其他模块的domain对象影响[/list]通常情况下,程序员们会自己...

2013-12-14 22:46:54 327

基于Spring-WS的Restful API的集成测试

在很多Java企业级应用中,Spring占据了非常重要的位置,这就导致了基本上的技术选型都是围绕着Spring来, 比方说笔者最近的项目需要开发一个Restful的API接口,选型的时候就说,客户架构师直接就拍了spring-ws,原因呢?系统中其他的模块都是用的Spring-ws,保持一致,而且社区活跃,文档丰富,遇到问题易解决。好了,入正题。既然选定了Spring-WS, 已经TDD入...

2013-11-28 19:41:56 106

TDD Of Spring JMS

不知何时养成了习惯,在没有一个可运行的测试的时候,个人完全没有动力去写实际的业务代码。老觉得,没有测试来证明自己的确做了某件事,即使自己真的完成了某个Task,也心里很没底。比方说,我想写一个基于JMS的MessageSender, 首先就得想这个MessageSender的功能是什么? 我应该怎么测试这个功能?功能: MessageSender的作用就是发送一个指定的Messag...

2013-11-25 19:53:58 67

原创 Ruby IO之ARGF,ARGV

在使用ruby脚本时, 经常需要用到在参数中给出文件名,然后再脚本中可以处理该文件的功能,或者说从STDIN获取输入,然后处理得到某个结果。 而ruby为开发者处理类似的问题提供了一个很好的解决方法 --- ARGF“ARGF is a stream designed for use in scripts that process files given as command-line a...

2013-11-23 15:44:18 411

Luhn算法的Ruby实现

什么是Luhn算法? Wiki上得标准定义:[url]http://en.wikipedia.org/wiki/Luhn_algorithm[/url]Luhn算法最常用的领域是信用卡号码的有效性验证,VISA和MasterCard等巨头都使用了该算法。Luhn算法的基本原理非常简单:(eg:49927398716)第一步:把信用卡号倒序(61789372994)第二步:取...

2013-11-22 20:18:29 202

使用Sinatra创建Soap Web Service

简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息。 SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议( HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。本文中得示例是Soap与Http结合的Web servi...

2013-11-21 17:58:14 94

Micro Service工具集之Swagger:可测试的样式化API文档

在我之前的一篇博文中,介绍了Yammer开发团队贡献的开源微服务开发框架DropWizard(http://ningandjiao.iteye.com/blog/1766498),有了服务之后,开发者最关心的事情是什么呢? 就是有人用你的服务。而开发者使用一个服务之前,首先需要知道的是该服务的API,目前几乎所有的开放平台都是把API以文档的形式放在网站上,如下:[img]http://dl2...

2013-09-28 19:55:56 172

软件测试从这里开始

关于软件测试的一些基本介绍,很好的一本软件测试入门教材!

2007-07-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除