技术宅,fat-man

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

导航

2012年5月17日 #

测试框架设计:初步

摘要: 在上次不成功的重构以后,我又蠢蠢欲动的重新设计程序,纠结了许久,还是决定程序写成OO的,OO设计我还没怎么想好,不过这次的重新设计我只写业务逻辑的API,同时编写配套的单元测试,用单元测试来验证API的正确程序结构common/bussiness/data/test/ testMain.pytestMain.py是整个测试的启动点,只要在test目录执行该文件,那么testMain.py就会查找test目录下其他文件,并加载文件里的测试用例一并执行#!/usr/bin/env python# -*- coding: utf-8 -*-import osimport sysimport unit 阅读全文

posted @ 2012-05-17 10:09 codestyle 阅读(303) 评论(0) 推荐(0) 编辑

2012年4月26日 #

我自己写的domtohtml

摘要: 写这个的愿意是要从浏览器获得福利,利用浏览器容错的能力得到无错标准的HTML流var ELEMENT_NODE = 1;var TEXT_NODE = 3;var emptyString = "";var replaceFlag = "[firefox_thinkernote_pugin]";var cssArray = new Array();function elementToString(element){ function getScript(element) { /* if(element.childNodes.length == 0) ret 阅读全文

posted @ 2012-04-26 23:54 codestyle 阅读(361) 评论(0) 推荐(0) 编辑

2012年4月25日 #

能打印自己源码的C程序的版本2

摘要: 版本2#include <stdio.h>;int main(){ FILE *f; char c; if ( ( f = fopen( __FILE__, "r" ) ) != NULL ) { while ( fread( &c, 1, 1, f ) == 1 ) fwrite( &c, 1, 1, stdout ); fclose( f ); } return 0;} 阅读全文

posted @ 2012-04-25 23:48 codestyle 阅读(166) 评论(0) 推荐(0) 编辑

能打印自己源码的C程序的版本1

摘要: 版本1#include <stdio.h>int main(){char *p ="#include <stdio.h>%c int main(){char *p=%c%s%c; printf(p, 10, 34, p, 34);}";printf(p, 10, 34, p, 34);}评:这个实现非常精妙, 第一个p将当前字符串传递进去,作为printf的格式字符串,用后面的参数来替换格式字符串中的占位符(%c ,%c%s%c)生成一个新的字符串,第一个%c被替换为回车符(10的ASCII码值)%c%s%c则被替换为:"#include 阅读全文

posted @ 2012-04-25 22:30 codestyle 阅读(482) 评论(0) 推荐(0) 编辑

2012年4月21日 #

我的firefox插件开发历程

摘要: https://addons.mozilla.org/en-US/developers/docs/reference首先给出firefox插件开发的官方文档列表,如果没有列表,那么开发firefox插件几乎不可能,光看中文资料也是会死的说,从老大给了任务,到基本完成任务,中间花了一周时间,这一周是痛苦而又极有成就感的一周,我的插件其实功能还算简单,就是在界面上添加一个按钮,点击按钮打开我们的主页,右键菜单上在加上一个菜单项,点击可以把当前页面存到我们的server上(HTTP接口)开发环境:ubuntu10.10 firefox 7.0基础知识:firefox插件是一个xpi文件,例如fire 阅读全文

posted @ 2012-04-21 21:47 codestyle 阅读(1219) 评论(2) 推荐(1) 编辑

2012年4月10日 #

代码的持续改进

摘要: #!/usr/bin/env python# -*- coding: utf-8 -*-#工厂模式def createDomTree(htmlStream,type='soup'): if type == "soup": return tnDomTreeWithSoup(htmlStream) if type == "lxml": return tnDomTreeWithlXml(htmlStream) return None #外部依赖的接口,它屏蔽了我具体使用的第三方库class tnDomTree: #public... 阅读全文

posted @ 2012-04-10 13:21 codestyle 阅读(224) 评论(0) 推荐(0) 编辑

2012年4月9日 #

python:使用OO和工厂模式解决问题

摘要: 上次说到,用DOM树的方法替代正则表达式,去匹配替换具有特定属性值的HTML标签,第一次选用的是BeautifulSoup,但是领导更中意lxml这个库,因此我把代码抽取出来抽象成一个接口,让代码依赖接口,而不是具体的实现,代码并不知道我到底使用的是什么第三方库,后来更增加一个工厂方法,让外部连我用的什么类都不让它知道:)#!/usr/bin/env python# -*- coding: utf-8 -*-#工厂模式def createDomTree(htmlStream,type='soup'): if type == "soup": return tn 阅读全文

posted @ 2012-04-09 18:32 codestyle 阅读(557) 评论(0) 推荐(0) 编辑

2012年4月3日 #

MySQL的datetime类型在web端生成javascript的Date对象

摘要: 服务端读取Comment表并将结果集返回给调用者,调用者使用json.dumps将结果集转成json字符串列表返回给WEB前端。datetime字段dumps之后变成描述日期的字符串,例如'2012-4-1 12:31:01' JS无法操作这个日期,例如在该时间的基础上加减N天或者N个小时,再比如对两个时间进行比较。找出较早的时间,所以服务端先把datetime转成bigint,再传给客户端(如果是日期是MYSQL的timestamp类型就不需要转换,因为timestamp就是bigint)#webpy框架import web,time,datetimedef getList( 阅读全文

posted @ 2012-04-03 18:00 codestyle 阅读(1819) 评论(0) 推荐(0) 编辑

2012年3月31日 #

预留接口

摘要: def _getNoteSharedStatus(db,attId): list = _get(db,attId) if len(list) == 0: return Falsedef getFileHandler(db,attId,userId): try: list = _get(db,attId) if _getNoteSharedStatus(db,attId): handler = open( util.getFullPath(int(attId)) + "/" + attId, 'rb') ... 阅读全文

posted @ 2012-03-31 16:28 codestyle 阅读(747) 评论(0) 推荐(0) 编辑

2012年3月30日 #

转:解决测试之疼<特别是单元、集成测试之疼>

摘要: 原文在这里 : http://blog.csdn.net/bxyz1203/article/details/7401205【概念】说到测试,最主要的是,检测代码是否满足特定的逻辑,检测代码是否满足业务的需求。测试还需要有一些附加特性,如:快速响应、可重复运行、可持续维护等。目前的测试基本可以分为:单元测试:检测代码片段的测试,基本是以代码结构为衡量,属于百盒测试。(白盒测试,貌似原作者笔误)集成测试:集成各个系统的各个模块,各个代码片段的,主要以业务为角度。属于黑盒测试。验收测试:主要是人工页面验证,用户演示,PD验证等,此主要是测试功能是否正确,以业务为出发点。一般是人工进行,比较难进行自动 阅读全文

posted @ 2012-03-30 09:56 codestyle 阅读(268) 评论(0) 推荐(0) 编辑