Quantcast
Channel: 编程 –尘埃落定
Browsing all 10 articles
Browse latest View live

使用 Nginx 的 X-Sendfile 机制提升 PHP 文件下载性能

很多时候用户需要从网站下载文件,如果文件是可以通过一个固定链接公开获取的,那么我们只需将文件存放到 webroot 下的目录里就好。但大多数情况下,我们需要做权限控制,例如下载 PDF 账单,又例如下载网盘里的档案。这时,我们通常借助于脚本代码来实现,而这无疑会增加服务器的负担。 例如下面的代码: 一、这样做有什么问题? 这样做意味着我们的程序需要将文件内容从磁盘经过一个固定的 buffer...

View Article



约定优于配置——软件开发的简约原则

工作快满 1 年了。在刚从 CUHK 毕业的时候,我还满怀悲壮地表示在中文大学饱受摧残,各种 assignments projects 所写的代码已经超过了整个在武大的四年。而现在,wc -l 显示的数字已经可以让我十分蛋定,这一年的代码量已经超过了过去所有学生时代的总和。回过头来看一年前写的代码,真是惨不忍睹,恨不得把当时的自己拉出去暴打一顿。确实走了很多弯路,但我也因此收获颇丰。...

View Article

Image may be NSFW.
Clik here to view.

转换 HTML 与 PDF 格式文档的神器

企业 Web 项目开发中经常会有生产 PDF 格式文档的需求,例如 PDF 账单下载,月末生成各种统计报表等等。我们要帮助企业实现自动化,也就是说无需人工干预,程序能够按需从 DB 中拿数据自主生成。 项目使用 PHP 开发,于是调研了一下 PHP 的 PDF 类库,有 dompdf,TCPDF 之流,总的来说,各个项目主页上自夸的成分居多,基本思想都是类似的,即先用 HTML...

View Article

Image may be NSFW.
Clik here to view.

测试驱动开发

测试 是软件开发中一个必不可少的环节。不管我们是否有意识到,其实我们经常都在做测试工作。比如最原始的在代码中插入 echo $variable 查看变量值,简单粗暴而有效。当然,PHP 也会有 XDebug 这样的工具,可以做到单步调试,不过要在服务器上安装再配合好本地一个 IDE 和浏览器一起运作,始终不是那么方便。...

View Article

Image may be NSFW.
Clik here to view.

作风问题

和同事吵了几次,Leader 就找我谈话了。开门见山问我知不知道自己的问题在哪里,我当然知道,说好听点叫“完美主义”,难听点就是固执、刻薄、吹毛求疵。我看不惯 un-professional 和各种 trick 导致的 dirty...

View Article


Image may be NSFW.
Clik here to view.

该用 Abstract Class 还是 Interface?

在编写程序的时候我常常陷入纠结,一个抽象对象,到底应该定义成 抽象类(Abstract Class) 还是 接口(Interface) 呢?二者具有很大的相似性,甚至可以相互替换,难以选择。在 Stackoverflow 上这个问题被问了很多次,各种编程语言的都有。而在 PHP 官网文档 Abstract Class 和 Interface...

View Article

Image may be NSFW.
Clik here to view.

基于 RESTful 接口的前端 MVC 架构

HTML5 时代来临,使用原生代码编写 Native App 还是使用 HTML5 技术构建 Web App 的争论还未尘埃落定。但不可否认的是,Web 前端正变得越来越重,处理的逻辑越来越复杂。不仅仅是交互体验需要编写大量 javascript 代码,甚至很多业务逻辑都被搬到了前端。例如有些 购物车 的设计,无需向服务器端发送请求即可向购物车中添加商品并立刻计算出总价格。Web...

View Article

Image may be NSFW.
Clik here to view.

将代码库从 SVN 迁移至 Git 并保留所有 commit 记录

公司内部原本使用 SVN 进行版本控制,但随着 Github 的流行我个人的代码管理习惯逐渐转变。虽然公司项目并非开源,SVN 所具有的标准 trunk / branches / tags 结构完全够用,使用 Git 仍然有如下优势: 类似 GitHub 的 GitLab 免费管理工具。将代码托管在自己内部服务器上的同时,提供了优美的 web...

View Article


在 Yii2 项目中使用 Composer 添加 FontAwesome 字体资源

前天帮同事改个十年前的网站 bug,页面上一堆 include require 不禁让人抱头痛哭。看到 V2EX 上的讨论说,写 PHP 不用框架等同于耍流氓。Yii Framework 是我使用了 2 年多的 PHP 框架,器大活好,皮实耐操。 Yii2 还在 Beta 中,不过不影响拿来预研。 这回要说的是,如何给 Yii2 项目添加外部资源(external assets),以...

View Article


Image may be NSFW.
Clik here to view.

Git tips: 合并 commit 保持分支干净整洁

本文的读者需要已经了解 基本的 Git 操作和开发流程。 在我们开发完分支后,一般分支上会有很多 commit —— 少不了诸如 “fix typo”, “sth wrong in the previous commit” 之类的 commit。在合并到主干的时候,往往这类 commit 显得臃肿多余。为了方便别人做 code review,我们希望合并一些不必要的 commit...

View Article
Browsing all 10 articles
Browse latest View live




Latest Images