摘要:
内容来自:http://marklodato.github.com/visual-git-guide/index-en.html什么是reference: reference,引用指的都是.git下的文件。HEAD就是reference中的一个, HEAD的指向的都是current branch。注意branch上面箭头表示可以移动到任意一个commit的id上。commit的箭头表示指向parent commit对象。理解了reference之后,对于reset也很好理解。The reset command moves the current branch to another positi 阅读全文
摘要:
转自http://wenku.baidu.com/view/0230a8fd941ea76e58fa04cb.html常见的符号有三种:@ # // (不常见的我也没有见过)一般来说我们都是糊里糊涂地被自动加上@这样的符号,多数人也懒得管这些鬼符号。其实我们也可以在编写微博的时候主动地输入这些古怪玩意儿。它们都有什么用呢?@微博人名@这个符号会把紧跟它之后的文字当成一个人名,自动生成一个指向这个人的微博。当然如果这个微博名字不存在,系统会告诉你。例如:编辑时你输入:有一天@阿狗 走在马路中间吃着汉堡看美女发布后会出现:有一天@阿狗 走在马路中间吃着汉堡看美女别人就可以直接点击@阿狗转到阿狗的微 阅读全文
摘要:
池化用来解决并发访问的情况下,需要服务器创建大量资源(比如内存),从而导致性能问题,连接池是并发等待与服务器性能妥协的产物。连接中的连接释放之后,并不会销毁,而是返回给存储连接的数据结构里(比如List)供重复使用。对于数据库连接池,释放之后并不会返回给数据库,而是放到存放连接的LinkedList。网络编程中提出了将Socket放入池中,让多个线程共享这些插座(Socket)对应的线缆(Conenction)DB连接池就是基于连接池的一个实现。连接池是客户端使用的技术。比如C3P0,DBCP都是应用程序做为客户端通过连接池访问DB1.连接池的前世:通过JDBC访问DB:一般来说,Java应用 阅读全文
摘要:
Socket.connect连接超时有二种情况:1.由于网络的问题,TCP/IP三次握手时间>timeout的设置时间。这在国外访问weibo时,并且网络环境极差的情况下有可能发生。解决的办法:调大socket.connect方法中的timeout参数值,比如50s,linux默认最高是70s,如果超过70s没有意义,linux会采用70s.但是当调大之后,发现不到10s就报timeout exception。通过国外的机器ping api.weibo.com发现unreachable。说明客户端在传输层之下的网络层就发现连个Syn的报文都发不出去,更不用说三次握手了,客户端直接失败并抛 阅读全文
摘要:
行为和状态的测试:基于行为的mock是站在目标测试代码外面的角度的.通常主要模拟行为。而基于状态的是站在目标测试代码内部的。我们可以对传入的参数进行检查、匹配,才返回某些结果。Mockup用于state based测试。一定要理解,单元测试测什么:单元测试的原则是哪怕你测试的方法中有一行代码,也是有必要写测试方法的。所以不要担心,你测试的业务逻辑最后只剩下边界值测试。你可以根据一些MOCK的返回值比如空,非空,个数等来测试你的业务逻辑是否正确。如果业务方法依赖于第三方类库,缓存,消息队列,DAO层的方法都是可以MOCK的。以前的思路:Service方法依赖于SDK,针对这些方法的单元测试需要与 阅读全文
摘要:
一. patch的使用示例:ygao@pts/ttys003 $ patch -p1 < ~/Desktop/phase2.diffpatching file src/features/com/abc/service/sns/PostAsyncProcessor.javapatching file src/features/com/abc/service/sns/PostEngine.javapatching file src/features/com/abc/service/sns/PostEngineAdapter.javapatching file src/features/com 阅读全文
摘要:
单元测试备忘:1. DAO的测试使用DBUNIT+真实数据库(里面可以有一些初始化数据,与当前测试用到的DBUNIT文件无关。),这层的单元测试没有什么好Mock。3.在确认DAO层测试完全通过后,可以在Service层的测试中Mock DAO层的方法。3.Service层除了Mock DAO层的方法其实更准确的是Mock里面的各种返回值,比如null, Not null的值,类似的还包括缓存,JMS,第三方类库, 远程调用。我的一个活生生的例子在main方法中测试memcached返回null的情况时,需要改源代码看结果。这本来是应该在单元测试中Mock4.边界与异常的测试应该尽量少一些,一 阅读全文
摘要:
内容来自http://www.infoq.com/cn/git-adventures%3bjsessionid=0d9801a1309fef34f6b960944e69b787/一. 索引:git索引:就是暂存区。有了它,可以把许多的内容修改一起提交。创建一个commit(对象),那么只针对暂存区,与工作区无关。这是我对git第一个很重要的概念的理解。暂存区(staging area)一般存放在“git目录“下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)暂存区有二个名称:stage or index索引是一个二进制格式的文件,里面存放了与当前暂存内容 阅读全文
摘要:
在git pull的过程中,如果有冲突,那么除了冲突的文件之外,其它的文件都会做为staged区的文件保存起来。重现:$ git pullA Applications/Commerce/BookingAnalysis.javaA Applications/Commerce/ClickSummaryFormatter.javaM Applications/CommerceForecasting/forecast/Forecast.javaA Applications/CommerceForecasting/forecast/ForecastCurveProviderCategory.javaM 阅读全文
摘要:
zz: http://blog.csdn.net/herbert5069/article/details/6859563$Git stash 可用来暂存当前正在进行的工作, 比如想pull 最新代码, 又不想加新commit, 或者另外一种情况,为了fix 一个紧急的bug, 先stash, 使返回到自己上一个commit, 改完bug之后再stash pop, 继续原来的工作。基础命令:$git stash$do some work$git stash pop进阶:当你多次使用’git stash’命令后,你的栈里将充满了未提交的代码,这时候你会对将哪个版本应用回来有些困惑,’git sta 阅读全文