- 浏览: 94075 次
- 性别:
- 来自: 深圳
最新评论
文章列表
对于大多数的APP产品经理而言,APP性能是最高优先级的,但是他们并不知道为什么性能如此重要,更不用说如何理解这些性能指标了。这篇文章介绍了APP性能魔法数字的三个问题what,why以及how。
对不同的人,性能意味着不同 ...
最近的一年主要精力都放在自动化测试上了。前半年是手机客户端的自动化测试,主要是冒烟测试,一个平台大概200条用例的量,平均一个平台3个人力,在完成日常的系统测试之余,花了半年时间做起来的。接下来的半年是维护,比较大的问题是测试平台的支持不够及时,以及真机的损耗很大。而且客户端测试的一个短板在于测试覆盖度很小,冒烟测试,简单说就是最基本的功能测试,一般都是正常的用例,很少涉及异常的用例。对于一个仍然不断增加新功能的APP应用而言,大部分的工作还是要依靠测试人员手工完成。如果是一个很稳定的APP,类似QQ这种的,大量的客户端测试还是有相当客观的收益的。
后半年在研究后台自动化测试。几年前 ...
原文链接:http://www.infoq.com/cn/presentations/3-challenges-from-technology-to-management
今天看了演讲视频,觉得讲的很好,自己作为一名基层管理者,还是有不少共鸣的
以下摘要供自己定期自省。
挑战1:队员做的工作没有自己好,花时间去沟通还不如自己去做。
错误一:帮队员调整代码
-代码规范性不够
-代码逻辑性不清
-代码健壮性不强
经验与教训
1、指导队员要注意技巧,行为不能强制
2、降低要求,关注进步,只看增量
3、学会“授人以渔”,教会他思考问题的方法
错误二:替队 ...
最近读到一篇文章:《你不是google》,里面提到了UNPHAT原则:
1、在彻底了解(Understand)你的问题之前,不要急着去寻找解决方案。你的目标应该是在问题领域内“解决”问题,而不是在方案领域内解决问题。
2、列出(eNumerate)多种方案,不要只把眼睛盯在你最喜欢的方案上。
3、选择一个候选方案,并阅读相关论文(Paper)。
4、了解候选方案的产生背景(Historical context)。
5、比较优点(Advantages)和缺点,扬长避短。
6、思考(Think)!冷静地思考候选方案是否适合用于解决你的问题。要出现怎样异常的情况才会让你改变主意? ...
一、 函数定义
struct.pack_into(fmt, buffer, offset, v1, v2, ...)
Pack the values v1, v2, ... according to the format string fmt and write the packed bytes into the writable buffer buffer starting at position offset. Note that offset is a required argument.
按照指定的格式fmt,将v1,v2...打包到buffer中,其中偏移位置为offs ...
导入文件夹下的py文件,这个文件夹下必须要有一个__init__.py才可以。
即使这个文件是空的也可以。
换句话说,__init__.py 文件的作用是将文件夹变为一个Python模块。我们在导入一个包时,实际上是导入了它的__init__.py文件。__init__.py中还有一个重要的变量,__all__, 它用来将模块全部导入。
#__init__.py
__all__ = ['sys', 'struct', 'socket']
#test.py
from package import *
引入包的作用主要是:
1、便于维护和使用,可以把相关联的模块放在一 ...
1、创建文件夹
mkdir <文件夹名称>
2、进入目录
cd <跳转的目录>
3、上传文件
rz: 运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器
rz -e -y: 上传并替换服务器文件
-e: 强制escape 所有控制字符,比如Ctrl+x,DEL等
-e, --escape
Force sender to escape all control characters; normally XON, XOFF, DLE, CR-@-CR, and Ctrl-X are escaped.
-y ...
1、Server端代码
import socket
port = 8081
s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.bind(('',port))
while True:
data, addr = s.recvfrom(3000)
print ('Received: ',data, ' from ', addr)
2、客户端代码
import socket
port=8081
host='localhost'
s=socket.socket(socket.AF_INET,soc ...
在网络通信当中,当我们用二进制流的形式来传递数据时,需要有一种机制,使得发送端可以将数据打包再传输,接收端收到数据后能将数据解包得到原始的结构体数据。Python的struct模块就提供了这样的机制。
pack 和 unpack 关于这两个函数的官方定义如下:
struct.pack(fmt, v1, v2, ...)
Return a bytes object containing the values v1, v2, ... packed according to the format string fmt. The arguments must match the v ...
Python语言是一款对缩进非常敏感的语言,给很多初学者带来了困惑,即便是很有经验的Python程序员,也可能陷入陷阱当中。最常见的情况是tab和空格的混用会导致错误,或者缩进不对,而这是用肉眼无法分别的。
在编译时会出现这样的错:IndentationError:expected an indented block。说明此处需要缩进,你只要在出现错误的那一行,按空格或Tab(但不能混用)键缩进就行。
往往有的人会疑问:我根本就没缩进怎么还是错,不对,该缩进的地方就要缩进,不缩进反而会出错,,比如:
if xxxxxx:
(空格)xxxxx
或者
def xxxxxx:
(空格 ...
前提条件:
1、Android手机获取root权限
2、电脑上有安装Android SDK
3、下载tcpdump软件
操作步骤:
1、Android手机USB连接到电脑上
2、cmd打开命令行窗口,进入adb所在目录(\android-sdk\platform-tools),运行以下命令,将tcpdump拷贝到手机上
adb push d:/tcpdump /data/local/tcpdump
可能遇到拷贝失败的问题,请参考笔者另一篇文章解决此问题
http://sharley.iteye.com/blog/2376265
3 ...
前提:手机有root权限,安装RE文件管理器
1、adb shell 执行ls -l 命令查看目录权限
drw-rw-rw- root root 2017-05-25 08:55 local
2、su 执行 chmod 777 local
3、执行ls -l 命令查看目录权限
drwxrwxrwx root root 2017-05-25 08:55 local
4、exit
5、执行adb push 成功
D:\Android\sdk\platform-tools>adb push d:/t ...
、Coverity概述
Coverity公司是由一流的斯坦福大学的科学家于2002年成立的,产品核心技术是1998年至2002年在斯坦福大学计算机系统实验室开发的,用于解决一个计算机科学领域最困难的问题,在2003年发布了第一个能够帮助Linux、FreeBSD等开源项目检测大量关键缺陷的系统。Coverity公司推出的综合开发测试平台,基于新一代的不做代码规则检查、只专注检测代码中的Bug静态分析技术,可以更好地帮助开发人员在写代码的时候就能发现并修复安全缺陷,缩短产品上市时间和降低风险。Coverity是唯一位列IDC前10名软件质量工具供应商的静态分析工具厂商,被VDC评为静态 ...
1、创建测试用的proto源文件,如:StudentInfo.proto,内容如下
message StudentInfo{
required int32 id = 1;
required string name = 2;
optional string email = 3;
}
2、cmd命令行进入protobuf源代码文件夹下的src目录下,运行命令:
protoc -I=$SRC_DIR --python_out=$DST_DIR $SRC_DIR/*.proto
本例中StudentInfo.proto放在了s ...
1、从https://github.com/google/protobuf 的Downloads模块下载
protobuf-2.6.1.zip 和 protoc-2.6.1-win32.zip
(笔者机器上已安装了python2.6.4版本)
2、解压上面两个zip文件,将protoc-2.6.1-win32.zip里的protoc.exe,放到protobuf-2.6.1的src目录下
3、cmd窗口下切换到protobuf-2.6.1的python目录下,依次运行以下命令:
python setup.py build
python setup.py test
p ...