- 博客(29)
- 收藏
- 关注
原创 PHP接口性能优化之路
最近在做PHP接口的性能优化,在排查性能问题和优化的过程中总结了一些心得,分享给大家。性能问题排查首先,做性能优化要先进行性问题排查,即排查PHP接口的代码实现中那一块执行比较慢。排查方法一笔者使用的ThinkPHP框架中自带了G方法可以很方便的获取某个区间的运行时间和内存占用情况。 例如:G('begin');// ...其他代码段G('end');// ...也许这里还有其他代...
2019-06-24 16:24:27
1263
原创 程序静态分析第一课
程序静态分析第一课——该课程主要内容来自北京大学熊英飞老师的《软件分析技术》 事例一:飞机为了保证飞行安全,在很多设备上会设置冗余设备,一般来说都是一主二备三应急,一架飞机上同样功能的设备设施,会安装起码三套或更多来应付其中一套出故障而导致飞机飞行安全出问题。 事例二:以电控为例,高可靠度的工业系统一般会选择传感器3取2或5取3方式输入,什么是3取2呢?以平行方式连接三个一样...
2018-07-16 19:26:20
1320
1
翻译 从质量保障到工程生产力——看谷歌QA的角色演进
原文链接:https://testing.googleblog.com/2016/03/from-qa-to-engineering-productivity.html 原作者:Ari Shamash从质量保障到工程生产力——看谷歌QA的角色演进在谷歌的早期,一小部分开发工程师建造、测试和发布了软件。但随着用户基础的增长和产品的激增,工程师们开始专注于各自的角色,在开发过...
2018-07-16 19:02:14
1225
原创 推荐几款超好用的Android Stuido插件
现在Android的开发者基本上都使用Android Studio进行开发(别告诉我你还在用eclipse,你开心就好)。用好Android Studio插件能极大的提高我们的工作效率。1. .ignore我们使用git做项目的时候,并不是所有文件都是要提交的,比如构建的build 文件夹,本地配置文件等,但是每次add,commit都会不小心把它们添加上去。这是我们会用.giti...
2018-04-19 11:49:35
303
翻译 [译文] Google 在改进代码质量上的实践
2017-04-03 作者:Max Kanat-Alexander Google代码健康组技术主管,《简约之美:软件设计之道》一书的作者。良好的编程习惯涉及到很多方面,但在软件行业内,大多数的公司或组织都不会把良好的编程习惯列为主要关注点。 例如,具有可读性和可维护性的代码比编写好的测试代码或使用正确的工具更有意义,前者的意义在于可以让代码更易于理解和修改。 但...
2018-03-27 15:19:11
397
原创 主流安卓APP都中招了!“应用克隆漏洞”的快速检测修复方案
2018年1月9日, 国家信息安全漏洞共享平台发布了关于Android平台WebView控件存在跨域访问高危漏洞的安全公告。漏洞描述: 攻击者利用该漏洞,可远程获取用户隐私数据(包括手机应用数据、照片、文档等敏感信息),还可窃取用户登录凭证,在受害者毫无察觉的情况下实现对APP用户账户的完全控制。由于该组件广泛应用于Android平台,导致大量APP受影响,构成较为严重的攻击威胁。影响范
2018-01-19 19:01:16
1324
翻译 [译文] Google 厕所的代码测试题
原文标题:Code Health: Reduce Nesting, Reduce Complexity 发布日期:美国时间2017-06-05 发布渠道:Google Testing Blog 文章作者:Elliott Karpilovsky 文章译者:丁老九这是我们代码健康系列的另一篇文章。这篇文章的一个版本最初出现在世界各地的谷歌浴室,作为一个谷歌的厕所事件...
2018-01-09 20:26:37
477
原创 【新手教程】在Jenkins中使用火线插件做静态代码扫描
火线(Fireline)的Jenkins官方插件已经上线,目前火线不仅能检查出安卓代码中的安全类问题和内存泄露问题,还兼容了阿里开源的Java开发规约(P3C项目),本文将以教程的形式帮助大家了解如何在Jenkins中使用火线插件做静态代码扫描。 文章[新手教程] Jenkins 下载安装配置教程Jenkins下载和安装提示:如果您已经在使用Jenkins,请直接跳转至章节 Jenkins安
2017-11-28 16:48:26
3341
2
原创 【火线解码】001.避免在finally语句块中使用return语句
火线团队推出【火线解码】系列文章,每一篇解释一种不规范的代码写法,用较短的篇幅让大家快速的了解代码规范问题。001.避免在finally语句块中使用return语句错误的代码示例:public class Bar { public String foo() { try { doSomething(); } catch (Exceptio
2017-06-26 17:14:54
480
原创 静态代码扫描(六)——火线针对资源关闭问题的横向对比报告
在上一篇文章中,我们列举了一些资源关闭需要考虑的特殊场景,并且预告了会在这篇放出火线和其他开源产品横向的扫描结果对比报告,包括Sonar、Infer、PMD和Findbugs(由于Lint没有针对资源关闭的规则,未加入对比)。一. 对比结果我们将资源关闭场景进行了细化和拆分,以保证代码扫描过程中既能检测出已有的问题,同时也不会对正确的写法产生误报。目前共计30个场景。 废话不多说,先上结果:二.
2017-05-21 21:30:46
796
原创 静态代码扫描(五)——Java资源关闭的特殊场景
在上一篇文章中,我主要介绍了为什么要手动关闭Java资源对象和怎样正确的手动关闭Java资源对象。这篇文章将继续分享在判断Java资源关闭时,有哪些特殊的场景。1. 当开发使用自定义类进行资源对象关闭时,需要跨类追踪资源对象是否关闭。在使用火线扫描本公司的项目代码时,发现几乎所有的项目都会使用自定义的类来统一管理资源关闭。例如:/** * 资源回收工具类 */public final cla
2017-05-12 18:32:45
1068
原创 静态代码扫描(四)——Java资源关闭研究
最近一直在研究java资源关闭的检查规则,发现市面上开源的工具针对资源关闭的检测都存在一定不足,同时也无法满足我们业务的需求。所以火线团队针对资源关闭进行了深度的研究,取得了一些不错的进展,但是过程的艰辛也远超了我们的预料。现在就跟大家聊聊我们的心路历程,从为什么开始。1. 为什么要手动关闭Java资源对象?首先解释Java的资源对象,它主要包括IO对象,数据库连接对象。比如常见的InputStr
2017-05-05 19:00:08
702
原创 静态代码扫描中Java资源对象关闭的探究
本人在探究静态代码扫描中资源对象关闭规则遇到了一些疑惑,本文将这些疑惑记录下来并逐一找出解答。 包括在哪些情况下,这些资源对象需要手动关闭,怎么正确的关闭,哪些情况下不需要手动关闭,以及为什么。 资源对象包括很多种,本文重点关注输入输出流对象和数据库连接对象。一、正确的关闭资源对象的写法第一种写法:public static void main(String[] args) thr
2016-12-13 19:18:31
1006
原创 git 使用经验
常用命令git stash 暂存当前已修改的文件git stash pop 释放暂存的文件git status 查看当前状态git checkout master 切换到主分支提交文件相关git add * 增加文件git rm * 删除文件git commit -m "修改内容"git push 文件提交到服务器上同步文件相关git pull 把服务器上文件拉下来git merge master
2016-09-09 18:12:16
300
转载 前端学习 HTML标签
一些不常用的标签: ul 定义无序列表 Coffee Tea Milkol 有序列表 Coffee Tea Milkdl 定义列表 计算机 用来计算的仪器 … … 显示器 以视觉方式显示信息的装置 … …strong 把文本定义为语气更强的强调的内容 em 文本定义为强调的内容 blockquote 之间的所有文本都会从常规文本中分离出来
2016-07-27 11:41:34
371
原创 第二届移动互联网大会总结
大会热点技术: 移动UI自动化 Mock Docker 值得深究的技术: 安全 代码静态分析 性能 崩溃分析 WalmartLabs移动自动化测试要点: 1. 只有SDET。 2. 使用了Appium做自动化。 3. 成员中有Robotium创始人Renas Reda 。 4. UI自动化代码放在APP源码中,开发用来测功能,SDET用来做集成测试。 5. Rob
2016-07-19 18:01:25
568
原创 静态代码扫描——FindBugs自定义规则入门
阅读本文前,建议先了解一下FindBugs的介绍和使用方法。准备工作由于FindBugs是分析编译后的class文件,也就是字节码文件。我们需要了解FindBugs底层的处理机制。根据FindBugs官网文档描述,FindBugs使用了BCEL来分析Java字节码文件。从1.1版本开始,FindBugs也支持使用ASM字节码框架来编写bug探测器。 我们需要下载FindBugs源码版用来新增自定
2016-07-06 17:46:34
8774
1
转载 @SuppressWarnings的使用、作用、用法
在java编译过程中会出现很多警告,有很多是安全的,但是每次编译有很多警告影响我们对error的过滤和修改,我们可以在代码中加上@SuppressWarnings(“XXXX”) 来解决例如:@SuppressWarnings(“deprecation”)表示不显示使用了不赞成使用的类或方法时的警告 具体的XXXX的意义可以参考博文 http://www.thebuzzmedia.com/sup
2016-06-12 18:07:13
1025
原创 静态代码扫描——PMD自定义规则实践(Log日志文件中不要输出敏感信息)
上篇文章用一个简单的规则举例,帮助大家快速了解如何自定义规则。接下来我们开始使用比较复杂的例子进行剖析撰写规则的过程。
2016-05-16 14:53:48
3253
1
转载 Android应用的闪退(crash)分析
文章转自阿里客户端工程师试题简析——Android应用的闪退(crash)分析1. 问题描述闪退(Crash)是客户端程序在运行时遭遇无法处理的异常或错误时而退出应用程序的表现,请从crash发生的原因分类与解决方法、在出现crash后如何捕捉并分析异常这两个问题给出自己的解决方案。 我们以Android平台为例,介绍下如何捕获Android应用的闪退信息,以帮助我们定位和解决导致闪退的问题代码
2016-05-12 14:22:48
7381
原创 静态代码扫描——PMD自定义规则入门
阅读该文章前,最好已经对PMD有了初步的认识和了解,可参考静态分析工具PMD使用说明准备工作首先在PMD官网下载最新版本的文件,目前最新版本是5.4.1。 下载pmd-bin-5.4.1.zip和pmd-src-5.4.1.zip之后解压备用。 pmd-src-5.4.1是PMD源码包,是无法直接执行的。 pmd-bin-5.4.1是PMD的可执行包目录简介pmd-src-5.4.1
2016-05-09 19:15:36
4764
2
原创 php模块化供前端ajax调用的实现
由于临时需求,需要ajax调用php中的方法,简单的写了一个php文件,文件定义了两个方法,如何用ajax分别调用同一个php文件不同的方法。背景:没有使用php框架 以下是abc.php文件,我定义的两个方法a方法和b方法<?php class abc { function a(){
2016-05-09 15:55:02
638
原创 PHP Fatal error: Call to undefined function curl_init() in xxx
找到php.ini文件中这一行本人是centosextension=curl.so加上这一行,重启服务器如果服务器报错说找不到curl.so文件下载php源码包http://www.php.net/downloads.phptar -xvf 包名进入解压后的/php-5.6.15/ext/curl/这个目录下/usr/local/php/bin/phpize 我
2015-11-20 19:02:11
1270
转载 crontab 配置问题 没有执行php文件
设置了一个crontab ,发现不执行,查找了原因是因为PHP的路径不对。首先,确认 PHP 可执行文件的位置 —— 对于大多数 Linux 系统,几乎肯定是 /usr/bin/php。如果不确定其位置,请在命令行中键入 which php 并查看响应内容。我弄的是/usr/local/bin/php 肯定错了。。。用crontab跑php程序时,如何去调试,各人有各人的方法。我
2015-05-21 15:27:03
673
原创 如何使用Holmos处理页面等待ajax加载
页面等待的情况多为等待AJAX异步加载处理等待ajax加载通常有以下几种方式:1.sleep(5000);最省事的方法,给定固定的睡眠时间,在时间过后继续执行2.类似WaitforCondition()的方法,在方法内加个判断条件,判断一个元素在新页面展现出来后继续执行3.直接判断页面ajax加载完成后继续执行 由于前两种方法存在各种弊端,以下将着重讲解第三种方法:
2014-12-11 16:29:16
572
原创 Linux更新SVN版本遇到错误:svn: Can't convert string from native encoding to 'UTF-8'
这是由于linux解决方案非常简单
2014-11-18 10:18:51
872
原创 Fatal error: Call to undefined function mysql_connect()
PHP Fatal error: Call to undefined function mysql_connect();在使用中出现了这个问题,查看了一下phpinfo发现没有mysql扩展。步骤如下:1 进入php的安装目录 cd 到ext/mysql /usr/local/bin/phpize ./configure --with-ph
2014-11-07 11:34:11
665
原创 如何使用Holmos处理模态窗口(ModalDialog)
在自动化测试过程中发现点击某个按钮后弹出了一个特别的窗口。特点一,该窗口不关闭就无法切换到其他窗口。特点二,该窗口无法使用开发人员工具进行探测。 这个特别的窗口就是模态窗口: 对话框一般分为两种类型:模态类型(modal)与非模态类型(modeless)。所谓模态对话框,就是指除非采取有效的关闭手段,用户的鼠标焦点或者输入光标将一直停留在其上的对话框。非模态对话框则不会
2014-06-27 19:38:24
1218
原创 什么才是真正的人才
真正人才是几个层面的人才:1. 思维层面:他本身的思维方式就是高端的,这种思维方式导致他学习能力、解决问题能力是比别人强的。2. 技术层面:熟悉底层的东西,底层的东西变化比上层少,而对于核心的认识,导致对于新的上层技术的理解也快。有自己精通的语言可以实现自己想要的东西3. 流程层面:可以从大的流程角度思考问题,知道很多问题不是自己一个“点”的问题,而是“线”或者“面”的问题
2014-03-18 10:06:36
771
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人