字典对象合法性检验

过去,判断一个字典对象的合法性,采用了下面的方案。有一个很大的缺点就是,数据非法时,想要定位到哪个字段出了问题,这事并不轻松。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
+ (BOOL)isValidDic:(NSDictionary *)dic
{
if (![super isValidDic:dic]
|| !DIC_HAS_STRING(dic, SYNC_USER_UID)
|| !DIC_HAS_STRING(dic, SYNC_CONTENT)
|| !DIC_HAS_NUMBER(dic, SYNC_CREATE_TIME)
|| !DIC_HAS_ARRAY(dic, SYNC_COMMENTS)
|| !DIC_HAS_ARRAY(dic, SYNC_FAVORS)
|| !DIC_HAS_ARRAY(dic, SYNC_VISITORS)
|| !DIC_HAS_NUMBER(dic, SYNC_COMMENT_NUM)
|| !DIC_HAS_NUMBER(dic, SYNC_FAVOR_NUM)
|| !DIC_HAS_NUMBER(dic, SYNC_VISITOR_NUM)
|| !DIC_HAS_NUMBER(dic, SYNC_IS_HIDE_IN_SQUARE)
|| !DIC_HAS_NUMBER(dic, SYNC_FAVORED)
|| !DIC_HAS_ARRAY(dic, SYNC_PHOTOS)
|| ![UserBasicInfo isValidDic:dic[SYNC_USER_INFO]]
)
{
return NO;
}

return YES;
}

一岁一枯荣

生日

寻觅缘由,只为说愁

今天是身份证上的生日,虽然那是瞎写的;
一年一度,它是法定的里程碑;
可以写点检讨,可以直抒胸臆;
无论如何,去年至今,一年已经过去。

iOS 网络请求本地调试

首先,需要搭建本地环境,参考 PhpStorm 本地调试;核心步骤是配好 IDE 环境以及修改 hosts 文件。

其次,使用单元测试,参考 iOS 测试学习小结;显然,本该一键完成的测试,不应该调出模拟器 / 真机的界面去人工操作。

SASS 入门

Chrome 调试小记

参考链接

Python - socket 模块

简单 demo

Server.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import socket

s = socket.socket()

host = socket.gethostname()
port = 1234
s.bind((host, port))

s.listen(5) # 最大等待连接数
while True:
c, addr = s.accept()
print 'Got connection from', addr
c.send('Thank you for connecting')
c.close()

Python 单元测试简单实践

unittest

参考链接: https://docs.python.org/2.7/library/unittest.html

iOS 测试学习小结

参考链接

objc中国 测试

PHPUnit 的使用

最近对「开发未至,测试先行」的走位有相当高的好感;在开发过程中,也是不断伴随着测试;做好测试工作,把隐患扼杀在摇篮之中,才是高效的开发方式。

单元测试不仅要做,而且要操作起来一定要很顺手。

今天按照官方的操作教程对 PhpStorm 配置 PHPUnit,不知何故总是不能如预期那样运行。

PhpStorm 本地调试

安装 Xdebug

  1. 访问 https://xdebug.org/wizard.php