标签分享下的文章

Jerry Bendy 发布于 01月17, 2017

【分享】HTTP 状态码 451:基于法律上的原因,我不能向你展示网页内容

几天前GitHub一个repo由于某个原因而无法从国内访问,当我打开ChromeDevTools时,发现了一个新的HTTP状态码——451。我们先看看维基百科对这个状态码的介绍:在电脑网络领域中,HTTP451因法律原因不可用(英语:HTTP451UnavailableForLegalReasons)是一种HTTP协议的错误状态代码,当用户请求访问某个经政府审核等查核方法后认定不合法的来源时,就会显示这个错误代码。451数字来源于1953年由美国作家雷·布莱伯利所著的反乌托邦小说《华氏451度》。故事叙述了一个压制自由的近未来世界,禁止人们阅读、拥有书籍,所谓的消防员的工作不是灭火,而是焚书。文中的主人公,盖·蒙...

阅读全文 »

Jerry Bendy 发布于 11月26, 2016

【分享】几种常见的不停机发布方式

何为不停机发布?本文所说的不停机发布,是指在不停止对外服务的前提下完成应用的更新。与热部署的区别在于,热部署关注于应用层面并且以不重启应用为前提,而不停机发布则关注于服务层面。随着摩尔定律逐渐逼近极限和多核时代的到来,分布式应用已经成为事实上的主流。下文首先给出一种通用的适用于分布式应用环境的不停机发布方式,然后再介绍Master/Worker这种常见的适用于单机应用的不停机发布方式。Cluster模式对于运行于集群环境的分布式应用,一般在应用之上都有一层负载均衡(LB)。如果在发布过程中,在更新任一节点(也可以是一组节点)前先关闭该节点对应的负载,更新完再打开负载,即可实现整体服务的不停机发布。在此基础上,为了...

阅读全文 »

Jerry Bendy 发布于 11月24, 2016

【分享】程序员提交代码的 emoji 指南——原来表情文字不能乱用

程序员都爱github,而许多程序员喜欢在github提交代码时加入emoji表情。并不是程序员喜欢故意卖萌,而是添加了emoji表情的提交记录真的能包含很多有用信息,阅读体验非常棒。但是,emoji表情在提交代码的时候也不能乱用,否则容易造成误解。因此开源项目gitmoji专门规定了在github提交代码时应当遵循的emoji规范:?-改进结构和代码格式⚡️-优化性能?-移除代码或文件?-修复bug✨-引入新功能?-修复MacOS下的问题?-写文档?-部署新功能✅-添加测试用例?-发版/版本标签?-修复安全问题?-修复Linux下的问题?-移除linter的警告?-工作在进行中?-修复C...

阅读全文 »

Jerry Bendy 发布于 09月07, 2016

【分享】手机淘宝的flexible设计与实现

看到小黑的文章关于webapp中的文字单位的一些捣腾感觉很赞。尤其是,他提到了手机淘宝的meta,所以觉得要讲讲我们这方面的一些实践。手机淘宝从2014年中开始,全面推行flexible设计。什么叫flexible呢?其实flexible就是responsive的低端形态和基础。对我们来说,最直观的感受就是,在超宽屏幕上,网页显示不会两边留白。以前pc时代大家经常讲的流体布局,其实就是一种flexibledesign。只不过,流体的表述角度是实现,flexible的表述角度是结果,为了跟高大上的responsive保持一致,我们这里使用了flexible这个说法。讨论方案之前,需要先了解三个关键概念:单位英寸像素...

阅读全文 »

Jerry Bendy 发布于 07月30, 2016

【分享】ES6 你可能不知道的事 - 基础篇

序ES6,或许应该叫ES2015(2015年6月正式发布),对于大多数前端同学都不陌生。首先这篇文章不是工具书,不会去过多谈概念,而是想聊聊关于每个特性你可能不知道的事,希望能为各位同学正确使用ES6,提供一些指导。对于ES6,有些同学已经在项目中有过深入使用了,有些则刚刚开始认识他,但不论你是属于哪一类,相信这篇文章都有适合你的部分。针对文章中的问题或不同意见,欢迎随时拍砖、指正。正文Let+Const这个大概是开始了解ES6后,我们第一个感觉自己完全明白并兴致勃勃的开始使用的特性。以如下方式使用的同学请举下手?//定义常量constREG_GET_INPUT=/^\d{1,3}$/;//定义配置项letcon...

阅读全文 »

Jerry Bendy 发布于 07月03, 2016

【分享】如何部署软件 - 让你团队的部署像地狱一样无聊且毫无压力

作者ZachHolman本文为Coding用户协作翻译,转载请注明来源。如果你对本文的翻译有建议,欢迎提交PullRequest。让我们来聊聊部署无论你何时对自己的代码库做出改动,总会伴随着要破坏一些东西的风险。没有人喜欢宕机,没有人喜欢暴躁的用户,也没有人喜欢生气的经理,所以部署新代码到生产环境变成颇具压力的一个环节。你完全没必要对它有压力,我将在这里重复一遍又一遍这句话:你的部署应该尽可能单调、直接、毫无压力。部署新功能到生产环境中应该像在HackerNews开始一场关于用spaces还是tabs的口水战一样简单。它应该足够简单到让新员工理解,它应该为防止错误而生,它应该在第一个最终用户看到新代码前被很好地测...

阅读全文 »

Jerry Bendy 发布于 04月07, 2016

淘宝架构发展

2003年4月7日,马云,在杭州,成立了一个神秘的组织。他叫来十位员工,要他们签了一份协议,这份协议要求他们立刻离开阿里巴巴,去做一个神秘的项目。这个项目要求绝对保密,老马戏称“连说梦话被老婆听到都不行,谁要是透漏出去,我将追杀到天涯海角”。这份协议是英文版的,匆忙之间,大多数人根本来不及看懂,但出于对老马的信任,都卷起铺盖离开了阿里巴巴。他们去了一个神秘的据点——湖畔花园小区的一套未装修的房子里,房子的主人是马云。这伙人刚进去的时候,马云给他们布置了一个任务,就是在最短的时间内做出一个个人对个人(C2C)的商品交易的网站。现在出一个问题考考读者,看你适不适合做淘宝的创业团队。亲,要是让你来做,你怎么做?在说出这...

阅读全文 »

Jerry Bendy 发布于 12月02, 2015

【分享】PHP中的并发

今天看到一篇讲PHP并发的文章,感觉不错,于是便Copy了下来。原文如下:周末去北京面了两个公司,认识了几位技术牛人,面试中聊了很多,感觉收获颇丰。认识到了自己的不足之处,也坚定了自己对计算机学习的信心。本文是对其中一道面试题的总结。面试中有一个问题没有很好的回答出来,题目为:并发3个http请求,只要其中一个请求有结果,就返回,并中断其他两个。当时考虑的内容有些偏离题目原意,一直在考虑如何中断http请求,大概是在client->recv()之前去判断结果是否已经产生,所以回答的是用socket去发送一个http请求,把socket加入libevent循环监听,在callback中判断是否已经得到结果,如...

阅读全文 »