跳转至

2017 年

6个重构方法可帮你提升80%的代码质量

原文地址:Top 6 Refactoring Patterns to Help You Score 80% in Code Quality

在过去做了不少代码审核,发现了一些代码质量上普遍存在的问题,以下是其中的前五名:

1. 臃肿的类

类之所以会臃肿,是因为开发者缺乏对最基本的编码原则,即“单一职责原则”(SRP)的理解。这些类往往会变得很臃肿,是由于不同的且在功能上缺少关联的方法都放在了相同的类里面。

解决方法:提取类/抽离方法 正如上面提到的,像“臃肿的类”(一个类提供了本该有几个类提供的功能)这种代码异味应该将原有类中的方法和属性移动到适当数目的新类中去。旧类中对应新类的方法和属性应该被移除。

另外,有时候一些类过于臃肿是因为它包含了被其他类使用本应该是其他类的成员方法的成员方法。这些方法也应该被迁移到合适的类中。

使用Xdebug和Webgrind优化PHP代码

在PHP开发过程中找到并修复性能瓶颈(performance bottlenecks)往往是非常困难和耗时的。为了定位问题,我们可能会在疑似影响性能的代码的开始和结束之间打上标记点,计算时间差,来定位问题,CI框架提供的基准测试类就是这样工作,这种方式对小型项目起到方便快捷的作用,但对大项目往往吃力不讨好,好比在工业时代,却是用石器时代的工具。这时候我们可以借助Xdebug,webgrind这样的工具来定位到和可视化php代码中的性能瓶颈。

Xdebug是PHP拓展,可以用来跟踪,调试和分析PHP程序的运行状况。而Webgrind是Web应用,提供一个可视化工具,来分析、查看Xdebug性能日志功能。在Linux KDE环境下可以用KChaceGrind,windows 下可以用winChaceGrind来替换Webgrind查看分析Xdebug日志。

Improve the performance of your webapp: configure Nginx to cache

Nginx

原文链接:https://www.theodo.fr/blog/2016/06/improve-the-performance-of-your-webapp-configure-nginx-to-cache/ Sometimes, improving the user’s loading experience is not enough, and you need real changes to make your application load faster. So you try CSS and JS minification or image compression but your app is only a bit faster to load. These tricks reduce the size of resources that need to be downloaded, but what if your users didn’t have to download anything at all? That’s what caching is for!

In this article, I will explain how you can configure Nginx to enable the browser cache, thus avoiding painfully slow downloads. If you are not familiar with Nginx, I recommend reading this article.

HTTP断点续传

断点续传简介

断点续传是HTTP/1.1协议支持的特性。实现断点续传的功能,需要客户端记录下当前的下载进度,并在需要续传的时候通知服务端本次需要下载的内容片段。

网站性能指标

QPS

每秒查询率(Query Per Second),每秒响应请求数

QPS = 完成Request量/所花时间(单位 Request/s)

吞吐量(Throughput)

吞吐量是指系统在单位时间内响应的数据量

一个系统吞吐量通常由QPS(TPS)、并发数两个因素决定,每套系统这两个值都有一个相对极限值,在应用场景访问压力下,只要某一项达到系统最高值,系统的吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降,原因是系统超负荷工作,上下文切换、内存等等其它消耗导致系统性能下降

How-To-Clear-PHP’s-Opcache

原文链接:https://ma.ttias.be/how-to-clear-php-opcache/

PHP can be configured to store precompiled bytecode in shared memory, called Opcache. It prevents the loading and parsing of PHP scripts on every request. This guide will tell you how to flush that bytecode Opcache, should you need it.

You may want to flush the APC (PHP < 5.5) or Opcache (PHP >= 5.5) in PHP when it has cached code you want to refresh. As of PHP 5.5, the APC cache has been replaced by Opcache and APC only exists as a user key/value cache, no longer a bytecode cache.

计算机术语之开源许可协议与软件版本

开源许可协议

当你给软件附上许可证时,意味着你将保留对软件的所有权利。许可协议用来授权其他人具有某种使用你的作品的权利。

开源许可协议 使人们免去了研究那些专业的许可条款的麻烦,使人们更方便的对开源项目贡献出自己的代码。而且它还能保护你作为作品的原创作者,确保你至少拥有由于贡献参与而带来的署名荣誉。它还能用来阻止其他人企图声明对你的作品拥有所有权的行为。