技术宅,fat-man

增加语言的了解程度可以避免写出愚蠢的代码

导航

上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 50 下一页

2013年12月18日 #

迈出单元测试的第一步

摘要: 单元测试不仅是软件行业的最佳实践,在敏捷方法的推动下,它也成为了可持续软件生产的支柱。根据最新的年度敏捷调查,70% 的参与者会对他们的代码进行单元测试。单元测试和其他敏捷实践密切相关,所以开始编写测试是组织向敏捷转型的踏脚石。道路漫长,但值得去做。我将在本文介绍符合要求的小技巧,以及在开发周期里进行单元测试的步骤。有效的单元测试默认要能自动化。没有自动化,生产力就会下降。没有自动化,单元测试的习惯也不会持续太久。依靠手工测试(由测试人员或开发人员完成)并不能持续太长时间;在有压力的情况下,没人会记得去运行所有的测试,或者去覆盖所有的场景。自动化是我们的朋友,所有的单元测试框架都支持自动化,而 阅读全文

posted @ 2013-12-18 14:21 codestyle 阅读(302) 评论(0) 推荐(0)

伯克利DB的一个BUG

摘要: 一旦没有手工close掉伯克利DB,则缓存里的数据不会主动写入到文件中,因此非常难于排查这个BUG,记录在这里提醒自己 阅读全文

posted @ 2013-12-18 13:06 codestyle 阅读(248) 评论(0) 推荐(0)

当一个对象方法什么都没干时

摘要: 本文作者介绍:Michael Feathers是Object Mentor International公司的技术顾问。他的工作不仅是技术开发,他还参与对世界各地技术团队进行培训、指导等工作。他曾开发了将JUnit迁移到 C++的CppUnit的初始部分,还有FitCpp——一个C++版的FIT基础测试框架。他是《Working Effectively with Legacy Code》一书的作者。Michael Feathers重构的方式千差万别。当在分析一个很大的方法时,我会首先看一下它的整体结构,心里对如何分解它有了一个初步的感觉。里面的条件判断代码块通常都会是我认为有问题、可以入手的地方 阅读全文

posted @ 2013-12-18 07:06 codestyle 阅读(399) 评论(0) 推荐(0)

2013年12月17日 #

CodeKata

摘要: http://codekata.pragprog.com/2007/01/code_kata_backg.html#more背景你如何成为一个伟大的音乐家?它有助于知道理论,了解仪器的机制。它有助于有才华。但最终,伟大来源于实践,运用理论一遍又一遍,使用反馈每次都变得更好。你如何成为一名全明星运动的人吗?显然,健身和人才帮助。但是,伟大的运动员,每天花几个小时,练习。但在软件行业,我们采取培训,在理论和开发商把他们直接到深底,工作的一个项目。这就像服用了一批适合孩子们,告诉他们,他们有四个季度击败红人队(嘿,我们通过管理目标,对吧? ) 。在我们的软件上做的工作我们的执业,这就是为什么我们做的 阅读全文

posted @ 2013-12-17 17:35 codestyle 阅读(1155) 评论(0) 推荐(1)

也谈 Python 的中文编码处理

摘要: 最近业务中需要用 Python 写一些脚本。尽管脚本的交互只是命令行 + 日志输出,但是为了让界面友好些,我还是决定用中文输出日志信息。很快,我就遇到了异常:Python代码UnicodeEncodeError:'ascii'codeccan'tencodecharactersinposition0-3:ordinalnotinrange(128)为了解决问题,我花时间去研究了一下 Python 的字符编码处理。网上也有不少文章讲 Python 的字符编码,但是我看过一遍,觉得自己可以讲得更明白些。下面先复述一下 Python 字符串的基础,熟悉此内容的可以跳过。htt 阅读全文

posted @ 2013-12-17 10:33 codestyle 阅读(550) 评论(0) 推荐(0)

2013年12月11日 #

编码出错的问题

摘要: #!/bin/shrm bbbtouch bbbcat aaa | while read linedo echo $line | iconv -f utf8 -t gb2312 >> bbbdonelinux下关于编码有两个相关命令,一个是file,用于检测文件编码格式。一个是iconv命令用于将文件在两种编码格式之间转换。但是,经常会出现一个问题,就是不管怎么转,有的时候就是会报告转换失败,我一直在想这是怎么回事?一种可以说通的解释是文件的一部分已经损坏掉,所以无法进行整体转换,那么我产生一个想法,既然是部分损坏,那么我可以部分读出,部分转换,失败掉的地方就失败掉好了,我可以把大 阅读全文

posted @ 2013-12-11 14:40 codestyle 阅读(635) 评论(0) 推荐(0)

2013年12月10日 #

一些简单的编程练习题

摘要: http://blog.jobbole.com/53039/每当成为入门CS课程(学生们学习编程语言的课程)的助教时,都困于提出好的练习题。Project Euler和类似的问题通常对初学者来说来难了,尤其是对于那些没有很强数学背景的同学。在这篇文章中,Adrian Neumann收集了一些从初级到高级逐级困难的练习题,适合刚开始学习编程的初学者。当有新的练习题时,Adrian会及时添加。除了一些GUI问题外,练习题一般都是算法题,无需学习任何库就可以解决。课程练习题的困难程度有时候取决于你使用的编程语言。例如,关于列表List的练习题若用内部不支持List的C语言来解决的话会困难些。即使有一 阅读全文

posted @ 2013-12-10 15:05 codestyle 阅读(2045) 评论(0) 推荐(0)

2013年12月9日 #

敏捷开发的6个实战经验

摘要: 摘要:Ulf Eriksson根据自己多年的敏捷开发经历,总结了6个实施敏捷开发的技巧:快速迭代、让测试人员和开发者参与需求讨论、编写可测试的需求文档、多沟通&尽量减少文档、做好产品原型、及早考虑测试等。在大型企业中经常是各种软件开发模式混用,一些采用敏捷开发,一些则是采用传统的瀑布式或RUP(统一软件开发过程)。敏捷开发,相对传统软件开发模式,它主要是针对快速变化的需求,不断优化管理流程,最终推出优质软件。原文作者Ulf Eriksson,是一家在线问题跟踪软件公司的创始人之一,他是敏捷开发的忠实粉丝,已经进行了多年敏捷开发的实践。下面内容主要是作者根据自己多年经历进行的经验总结。1 阅读全文

posted @ 2013-12-09 17:24 codestyle 阅读(640) 评论(0) 推荐(0)

HTML5

摘要: HTML5拥有一些非常棒的特性,其中就包括了websockets。这个标准非常容易识别,你可以从ws://和wss://(安全的websockets URL)前缀中分辨出来,这样就可以启动“服务端的事件推送”。如果大家深入的了解一下的话,这里有一些非常有趣的内容。如果你深入学习HTML5,你绝对应该尝试一下websockets!在个人看来,这是最酷的HTML5技术。在大家正式开始了解HTML5的websocket之前,让我们了解一下:WebSockets的9大杀手级功能websocket启动了服务器端web应用双向交流处理的功能(这里查看API)。典型的应用如下:聊天应用(API)多人游戏,例 阅读全文

posted @ 2013-12-09 15:55 codestyle 阅读(383) 评论(0) 推荐(0)

Selenium IDE测试

摘要: 判断WEB程序是否能打开页面,并且打开了正确的页面,可以通过assertTitle和assertLocation进行判断并且这些操作不需要提供value.target就是期望的URL和页面标题,因为command本身就已经说明了希望比对的页面元素是什么一旦没有通过assert的断言,则程序执行将停下来 ,info列表显示红色文字 阅读全文

posted @ 2013-12-09 14:09 codestyle 阅读(135) 评论(0) 推荐(0)

上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 50 下一页