- 博客(4)
- 资源 (3)
- 收藏
- 关注
原创 使用Liquid实现简单的数据交换
在平时的开发工作中,接口对接是一件无可避免的事情。虽然在“前后端分离”的大趋势下,后端的角色逐渐转换为数据接口的提供者,然而在实际的应用场景中,我们面对的往往是各种不同的“数据”,譬如企业应用中普遍使用的企业服务总线(ESB),这类服务要求服务接入者必须使用WebService来作为数据交换格式;再譬如电子数据交换(EDI)这种特定行业中使用的数据交换格式,从可读性上甚至还不如基于XML的WebS...
2019-12-29 14:44:08 3585 4
原创 Referrer还是Referer? 一个迷人的错误
诗人郑愁予曾经在一首诗中写道:我达达的马蹄是个美丽的错误,我不是归人,是个过客。而对我来说,十九岁之前的我,一样是个沉浸在诗歌中的文艺少年。十九岁之后的我,作为一名程序员,更多的是邂逅各种错误。可偏偏人类世界对待错误从来都不宽容,所以,错误本身既不美丽,亦不浪漫。接近中年的我,无论如何,都写不出年轻时令人惊艳的句子,这或许和我们面对错误时的不同心境,有着莫大的关联,而今天这篇博客,同样要从一个历史...
2019-12-29 14:43:01 3807 5
原创 浅析网站PV/UV统计系统的原理及其设计
国庆节前有段时间,新浪的“图床”一直不大稳定,因为新浪开启了防盗链,果然免费的永远是最贵的啊。为了不影响使用,我非常粗暴地禁止了浏览器发送Referer,然后我就发现了一件尴尬的事情,“不蒜子”统计服务无法使用了。这是一件用脚后跟想都能想明白的事情,我禁止了浏览器发送Referer,而“不蒜子”正好使用Referer来识别每个页面,所以,这是一个再明显不过的因为需求变更而引入的Bug。这个世界最离...
2019-12-29 14:41:21 5347 1
原创 使用Python开发插件化应用程序
插件化应用是个老话题啦,在我们的日常生活中更是屡见不鲜。无论是多年来臃肿不堪的Eclipse,亦或者是扩展丰富著称的Chrome,乃至近年来最优秀的编辑器VSCode,插件都是这其中重要的组成部分。插件的意义在于扩展应用程序的功能,这其实有点像iPhone手机和AppStore的关系,没有应用程序的手机无非就是一部手机,而拥有了应用程序的手机则可以是Everything。显然,安装或卸载应用程序并...
2019-12-29 14:39:55 2556 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人