自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 NSNotificationCenter几点说明

1 removeObserver不要忘记调用了,否则Observer对象被释放后是会Crash的.2 postNotification是同步的,也就是A 在postNotification 之后需要等到B 接收到Notification3 接收消息的回调函数是和postNotification在同一个线程的,和addObserver以及removeObserver在哪个线程无关

2015-04-12 00:11:28 410

原创 XCode 显示代码行

在Preference如下图设置即可,勾上“Line numbers”

2015-04-11 21:14:04 530

原创 "Not a bug" VS "Won't Fix"

经常听到开发和QA如下的对话: Case 1:  QA:“在我机器上工作不正常”;  Dev: 换个干净的机器试试;  QA: 干净的机器是好的。  Dev: 那是你机器的问题,不是Bug.  QA: ....Case 2:  Dev: 你为什么要报这个bug呢,我的代码都是对的啊,我的程序都是没问题的啊!;  QA: 可是程序不应该有这个结果啊";

2014-02-08 22:57:17 2340 1

原创 出错总有原因 之 仅有第一次编译不成功

新人入职,取下项目代码,打开VSTS2010, 编译整个Solution,第一次编译不成功,提示Link错误,某个Lib未找到。但这个问题在其他开发机器上并没有出现过。在第一次编译的基础上再次编译,成功了。         检查第一次编译出错的日志,发现出错的dll依赖于提示的library,这个library是在dll之前编译的,这个顺序是没错的。但是从日志中可以看到,原来是由于并行编译引起

2014-02-08 22:45:57 1394

原创 出错总有原因 之 关于重新编译

在开发过程中,偶尔遇到这样的问题,程序运行不正常或者改动没有生效,Clean掉,重新编译,然后重新运行就好了;但有几次,程序工作得好好的,重新编译过后,就无法正确运行起来了,这是编译器的魔法吗?       显然不是。程序工作不工作,都是有原因的,肯定不是什么魔法。       我在实际工作中遇到的重新编译后程序就可以正常运行,往往是这么几种情况,第一种情况,最初的编译过程只编译了改动的静

2014-02-08 22:43:53 1071

原创 出错总有原因 之 工程每次都重新编译

使用VSTS2010编译的时候,偶尔遇到某些工程,明明已经编译过了的,但是选择编译整个Solution的时候,却没有忽略这些Project,而将这些Project还是原样重新编译过一次。       这里主要讲讲自己遇到过的情况以防大家遇到类似的问题。       其中一个原因是,自己修改了系统时间做一些功能的测试,在系统时间修改之后,又做了代码的修改。譬如说,先将时间改到了一周之后,做了

2014-02-08 22:41:38 1092

原创 出错总有原因 之第三方库不一定可靠啊

某年某月的某一天,测试人员发现我们的程序运行起来后发生了一次Crash, 但是无论如何也无法重现,也没有明显步骤,就是开始运行就Crash了,而且由于是C#的代码,Dump里面也没有多少有意义的信息,于是不了了之。        正式发布之后,不停的有客户出现类似的问题。Dump不管用,只能从系统日志中收集到一些错误信息,比如发生Crash的模块和Offset等等,通过编译时候生成的Map文件

2014-02-08 22:39:40 787

原创 出错总有原因 之 匆忙引入多线程引发的Crash

一年之前,考虑到性能问题,需要引入多线程的工作机制来将数据备份到云存储上,但是时间要求得非常急迫,而原有代码完全是处于年久失修的状况,根本来不及重新设计,于是只有在原来的基础上开辟多个线程,每个线程上传一个文件。每个线程都有自己的文件对象,看上去好像各个线程间没有共享什么对象,每个线程所用到的日志类也是线程安全的,看上去问题不大。        但实际测试中还是发生了Crash,可奇怪的是,只

2014-02-08 22:38:03 1577

原创 出错总有原因 之 写在前面

写这部分主要是总结一下自己工作中遇到的一些错误问题以及解决办法,大部分都不是些什么了不得的问题,即使某些问题看上去很奇怪,但其实都是有迹可循的,有些甚至是一些明显的错误引起的。        当然,我也不是对于每个问题都能寻根究底,而且有些问题的记忆也不是那么清晰了,或者,当初的记录并没有细致的去截取堆栈信息的图表之类,主要是记下来作为自己的参考,避免以后犯同样的错误,这就是所谓的工作经验吧!

2014-02-08 22:35:03 634

原创 《代码大全》读后感(2) 程序工作不正常总是有原因的

作者在书中,反复提及,不要在代码还没有写好或者自己根本就没有弄清代码逻辑的时候,就采用简单的尝试方法让程序编译和运行起来,查看结果是否正确,当结果正确后就认为已经完工了;一个典型的例子便是更改循环时候的比较条件,试试能不能干活。        我想很多人在还是新手的时候都犯过类似的错误吧,至少我犯过类似的错误。在学生时代实验室的项目里面,能够成功的编译是主要的工作目标之一,很多时候根本没有弄清

2014-02-08 22:29:31 1027 2

原创 《代码大全》读后感(一) 代码首先是写给人看的

读《代码大全》与读别的书不一样的就是,总能找到共鸣。书中所讲到的很多问题都是工作中实际会遇到的,很多经验都是从实际工作中总结出来的。很多东西都是以往所看的其他类技术书籍不会提到或者不会重点提到的,但却是自己工作中有深刻体会的。    “代码是写给人看的”便是我感受最深的一条。     关于代码可读性的争论一直存在,各个论坛里社区上总会有关于是否需要加注释的争论,甚至CSDN上还会有用拼音命

2014-02-08 22:17:29 7239

原创 C++编码规范之命名约定

公司内部有一份代码规范,感觉还是很有帮助的,简单列一下C++规范中的核心部分,必要的加一些自己的理解和实际编码过程中遇到的问题与感受,很多细节的说明就不一一翻译了,能够明白就行。第一部分:命名约定规则1:使用前缀m_, g_, s_来标示成员变量,全局变量和静态变量;规则2:变量名使用驼峰式大小写风格;规则3:类型名使用Pascal大小写风格;       例如

2014-02-08 22:07:27 1438

原创 使用VSTS 2010进行静态代码分析

静态代码分析一直是个重要的话题,通过静态代码分析可以对代码进行初步的Review, 检查出代码中不规范的地方以及某些笔误的地方,来避免一些潜在的问题。有一种普遍的做法是在代码服务器端利用专门的商业软件来做代码静态分析,然后发送邮件给各个责任人,而且可以根据统计出问题的个数来对各个项目的代码质量有个大致的了解。但实际上,如果你是用VSTS 2010作为开发工具的话,其实可以很方便的做

2014-02-08 18:46:57 832

原创 利用VSTS2010进行远程调试

1. 在客户机上安装“Microsoft Visual Studio 2010 Remote Debugger”.(可安装为服务,如果需要经常调试)http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=60ec9d08-439b-4986-ae43-0487eb83c09e2. 客户机运行"Vi

2014-02-08 18:44:19 633

原创 VSTS2010无法自动Checkout的问题解决

公司使用VSTS2010作为Source Control Server, 默认配置下,在保存,编辑文件或者增加删除文件的时候是会自动Check out的;但某段时间公司网络非常糟糕,难以连接到公司的代码服务器;过了这段时间之后,就发现无法自动Checkout了,检查了相关选项,是已经配置好了的。后来在强大的google的帮助之下,终于找到了原因,是因为在连接失败后,solution变成了o

2014-02-08 18:42:11 649

原创 搞笑注释

也发个在Review 代码的过程中发现的搞笑注释 :) // MI: (^_^) i does not know the purpose of this list. BACKUP_PATHLIST cList;

2014-02-08 18:39:23 875

原创 Windbg调试64bit Dump的命令

前面有一篇说到过VSTS 2010无法调试64bit Dump, 但是Windbg是可以的;虽然用WinDbg会更加复杂一些,但如果你手头只有64bit Dump用来解决问题的话,windbg可是非常强悍的工具哦。只需要输入命令!wow64exts.sw就可以调试64位操作系统下的32位应用程序及其Dump了。

2014-02-08 18:37:00 853

原创 如何统计电脑配置信息

方法1:Step1: 点击”Start”?”Run”或者在Command 里面直接输入dxdiag,回车Step2: 然后点击” Save All Information”,导出DxDiag.Txt 文件实际上就是使用DirectX Diagnostic Tool来收集信息! 方法2:Step1:  点击 “start”按钮,在Search Program an

2014-02-08 18:35:36 1441

原创 如何在64位机器上创建32位Dump文件

VSTS 2010是无法调试64位的Dump文件的,所以最好在64位机器上也能够获取32位的Dump文件。方法很简单:在64位机器上,找到目录C:\Windows\SysWOW64, 运行其中的taskmgr.exe, 这个应用程序就是32位的task mananger, 然后使用这个task manager来创建Dump文件就可以了。忘了说了,貌似WinXP是不支持用task m

2014-02-08 18:32:46 1167

转载 Win8 Metro应用远程调试方法

http://software.intel.com/zh-cn/blogs/2012/07/13/win8-metro-2/

2014-02-08 18:29:46 564

原创 重新开张

一晃已经工作将近6年时间了,可是慢慢发现自己虽然有了不少工作经验,平时也写了不少东西,但没有正式的总结出来,搜寻起来还是不够方便。回头看看自己在CSDN上问过的问题,由于年代久远,又没有代码,现在自己都不明白当初要做的什么东西了,看来写写博客日志之类的还是很有必要的,正好也对自己过去做一个小结,对未来进行进一步的规划吧!再看看自己blog里面最早写的两篇无聊的文章,真的是有些汗颜呢!现在开

2014-02-08 18:27:00 537 1

转载 新版《Scrum启动规划书》

新版《Scrum启动规划书》刚刚由Adam Weisbart发布,目的是促使团队围绕创建敏捷团队或项目的重点展开讨论。本指南是一个PDF文档,文档被设计为让核心Scrum团队在启动讨论中填空,把相关问题厘清。该文档被设计用来推动对一系列关键问题的讨论,包括团队的的组建、方法和工具,产品负责人的角色,Sprint规划,与其他团队的协作,对Done、Ready的定义

2014-02-08 18:22:50 590

原创 刘备为何要东征?

     建安二十四年冬,东吴孙权趁关羽与曹魏大战于襄阳期间,派吕蒙袭取荆州,攻占江陵、公安,杀关羽。至此,吴蜀反目,隆中对的战略思路完全没破坏,蜀汉基本上失去统一全国的机会。     建安二十五年,献帝退位。刘备在曹丕之后称帝,建立蜀汉政权。次年七月,帅师东征伐吴,以报东吴杀关羽取荆州之仇。然虽出战告捷,但于次年被东吴名将陆逊击败于猇亭,精锐损失殆尽,而刘备也于这一战后耗费了心力,于章武三年

2010-03-01 22:02:00 3097 2

原创 白帝托孤杂论(一)

三国时刘备白帝托孤之事,广为流传,然而却褒贬不一。褒奖者以多赞赏刘备举国托付于诸葛亮,待人至诚,而诸葛亮也鞠躬尽瘁辅佐后主,力图恢复中原,传为千古美谈,正如《三国志.先主传》所云:“及其举国讬孤於诸葛亮,而心神无贰,诚君臣之至公,古今之盛轨也”。而贬低此事者多认为刘备善帝王驾驭之术,在临死之前,虽然将幼子托于孔明,然实则暗藏玄机,一句“若嗣子可辅,辅之;如其不才,君可自取”从道德上完全绑架了诸葛亮

2010-02-22 22:49:00 1806 1

空空如也

空空如也

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

TA关注的人

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