导读:本文译自JamesWhittaker在Google测试官方博客发表的文章《HowGoogleTestsSoftware》。在所有我被问及的问题中,最多的就是关于谷歌是如何测试的。尽管在博客中(googletestingblog)中有过零碎的解释说明,但还是需要更多的系统阐述。虽然谷歌的技术路线在执行的过程中不断地进化,但公司的测试策略却从来没有变化过。谷歌现在是一家拥有搜索、应用、广告、移动、操作系统等产品的公司,我们在这些涉及到的产品领域里发挥着非
系统 2019-08-29 22:01:05 2149
有不少带有手写记录功能的iOS应用,比如NotesPlus,iWriteWords或者是Evernote。不过考虑到手写输入没必要太挑剔,一个叫做7notes的iOS应用注意到这个问题,并且在这一块干得不错。这款应用在iPhone和iPad上面运行方式基本相同(版本不同,不过还是建议你下iPad版),可以用手指或者用手写笔在上面记下笔记。如果需要的话,可以让7notes将你手写的那些斗转换成标准的数字字体。所有的笔记都可以和图像以及网页结合起来。还有一些不
系统 2019-08-12 09:30:11 2149
策略模式的用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模式相当于"可插入式(Pluggable)的算法。一,结构:环境(Context)角色:持有一个Strategy类的引用。抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口。具体策略(ConcreteStrategy)角色:包装了相关的
系统 2019-08-12 09:29:46 2149
下面是把app放到website,让其他人通过OvertheAir(OTA)下载安装的步骤。前提:能安装app的device需要被包含在你的provisioningprofile里Environment:iOS5.0+xcode4.3reflink:https://help.apple.com/iosdeployment-apps/?lang=en-us#app43ad871eStep1在你的project里,选择"iOSDevice"intheactiv
系统 2019-08-12 09:27:33 2149
http://wiki.openwrt.org/doc/howto/docker_openwrt_imagehttps://www.baidu.com/s?wd=lxc%20docker&rsv_spt=1&issp=1&f=3&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=0&inputT=2880&rsv_pq=d5b2146500001cd3&rsv_t=083fLTRGsZDBS3R4S
系统 2019-08-12 09:27:33 2149
近来公司有个MSOffice编程的活,借机也研究了一下,略有收获,不敢独享,希望大家扔鸡蛋,但最好不是臭的。这个项目里,主要是想将Word,Excel做成的文档中的图形导出为XML文件。这里的关键是找出文档中的图形对象,并识别出类型。做法如下:ApplicationClassapp=newApplicationClass();Documentdoc=null;objectmissing=System.Reflection.Missing.Value;obj
系统 2019-08-12 09:27:13 2149
自从购入徐峰老师的《软件需求最佳实践》以来,断断续续看了差不多有3个月,期间一直在负责一个项目的需求和架构,在需求上从零开始使用了SERU框架,现在项目第一次迭代趋于结束,对于SERU框架也有了一点或多或少的认识。说起来接触这本书多多少少是因为另一本温昱老师的《一线架构师实践指南》的影响(准确说是直接通过购书网站的相关书籍链接过来的),两本书都有很强的方法论味道。温老师的书还是有些吝啬笔墨,读完之后会让人觉得每一处都讲了要如何做,但是在真正去做的时候却还是
系统 2019-08-12 09:27:11 2149
Memcache存储大数据的问题huangguisuMemcached存储单个item最大数据是在1MB内,假设数据超过1M,存取set和get是都是返回false,并且引起性能的问题。我们之前对排行榜的数据进行缓存。因为排行榜在我们全部sqlselect查询里面占了30%,并且我们排行榜每小时更新一次,所以必须对数据做缓存。为了清除缓存方便,把全部的用户的数据放在同一key中,因为memcached:set的时候没有压缩数据。在測试服測试的时候,没发现问
系统 2019-08-12 09:26:46 2149
把一个字符串划分成几个回文子串,枚举所有可能的划分例如Forexample,givens="aab",Return[["aa","b"],["a","a","b"]]写一个子函数判断是否为回文。然后dfs,这个dfs比之前的稍微难理解一些。dfs函数每次输入的起点代表之前已经处理好了,从这个起点开始到结尾len的有几种长度可能组成,回文的都要dfs遍历一次,如果没有就++。例如输入为abcc,假设此时start指向b了,那么b是回文,要dfs从start+
系统 2019-08-12 01:53:47 2149
functionstripscript(s){varpattern=newRegExp("[%--`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]")//格式RegExp("[在中间定义特殊过滤字符]")varrs="";for(vari=0;i
系统 2019-08-12 01:53:44 2149