• 如何做人性化的代码审查?

    Posted by : lon.y@qq.com on 2018年5月31日

    最近,我一直在读有关代码审查最佳范例的文章。我注意到这些文章的关注点是找到 bug,而忽略了代码审查其他的部分。用建设性、专业的问题沟通方式?不相关!只要识别出所有的 bug,剩下的部分会水到渠成。 我只能假设我读过的这些文章都来自未来,那时候所有的开发人员都是机器人。在那个世界,你的队友欢迎对其代码未经过推敲措辞的批评,因为处理这样的信息能温暖他们冰冷的机器人之心。 我要做一个大胆的假设,你想要在当前世界改进代码审查,此时你的队友都是人类。我还要做一个更

    阅读全文...

  • 拿 Proxy 可以做哪些有意思的事儿

    Posted by : lon.y@qq.com on 2018年5月30日

    Proxy是什么 首先,我们要清楚,Proxy是什么意思,这个单词翻译过来,就是 代理。 可以理解为,有一个很火的明星,开通了一个微博账号,这个账号非常活跃,回复粉丝、到处点赞之类的,但可能并不是真的由本人在维护的。 而是在背后有一个其他人 or 团队来运营,我们就可以称他们为代理人,因为他们发表的微博就代表了明星本人的意思。 P.S. 强行举例子,因为本人不追星,只是猜测可能会有这样的运营团队 这个代入到JavaScript当中来,就可以理解为对对象或者

    阅读全文...

  • 从前端到全端:JavaScript逆袭之路

    Posted by : lon.y@qq.com on 2018年5月30日

    近年来,前端技术日新月异,前端已经不仅仅是网页,更多的开始由狭义向广义发展。 先后涌现出了具备后端能力的node,具备移动开发能力的react native,具备游戏渲染能力的cocos2d-js,以及iOS上的热修复技术JSPatch等等新技术。 咋一看,几乎各个端都被JavaScript攻陷,大有一统江湖之势。 究竟,JavaScript如何做到上天入地无所不能?JavaScript真的能一统江湖吗? 乱世出英雄:JavaScript的诞生故事要从Ja

    阅读全文...

  • 没学过线代也能读懂的CSS3 matrix

    Posted by : lon.y@qq.com on 2018年5月30日

    前言 CSS3 中使用 transform 可以对元素进行变换。其中包含:位移、旋转、偏移、缩放。 transform 可以使用 translate/rotate/skew/scale 的方式来控制元素变换,也可以使用 matrix 的方式来控制元素变换。 比如: 通过transform属性进行变换。 首先演示使用 translate/rotate/skew/scale 的方式: .box { width: 100px; height: 100px; ba

    阅读全文...

  • 分布式之 Redis 复习精讲

    Posted by : lon.y@qq.com on 2018年5月29日

    引言 为什么写这篇文章? 博主的《分布式之消息队列复习精讲》得到了大家的好评,内心诚惶诚恐,想着再出一篇关于复习精讲的文章。但是还是要说明一下,复习精讲的文章偏面试准备,真正在开发过程中,还是脚踏实地,一步一个脚印,不要投机取巧。 考虑到绝大部分写业务的程序员,在实际开发中使用redis的时候,只会setvalue和getvalue两个操作,对redis整体缺乏一个认知。又恰逢博主某个同事下周要去培训redis,所以博主斗胆以redis为题材,对redis

    阅读全文...

  • 更深入的理解 Python 中的迭代

    Posted by : lon.y@qq.com on 2018年5月28日

    深入探讨 Python 的 for 循环来看看它们在底层如何工作,以及为什么它们会按照它们的方式工作。 Python 的 for 循环不会像其他语言中的 for 循环那样工作。在这篇文章中,我们将深入探讨 Python 的 for 循环来看看它们在底层如何工作,以及为什么它们会按照它们的方式工作。 循环的问题 我们将通过看一些“陷阱”开始我们的旅程,在我们了解循环如何在 Python 中工作之后,我们将再次看看这些问题并解释发生了什么。 问题 1:循环两次

    阅读全文...

  • 6 个 Python 的日期时间库

    Posted by : lon.y@qq.com on 2018年5月26日

    曾几何时,我们中的一个人(Lacey)盯了一个多小时的 Python 文档中描述日期和时间格式化字符串的表格。当我试图编写从 API 中将日期时间字符串转换为 Python datetime 对象时,我很难理解其中的特定部分,因此我决定请求帮助。 有人问道:“为什么你不使用 dateutil 呢?” 读者,如果你没有从这个月的 Python 专栏中获得任何东西,只是学习到有比 datetime 的 strptime 更容易地将 datetime 字符串转换

    阅读全文...

  • 如何编译 Linux 内核

    Posted by : lon.y@qq.com on 2018年5月26日

    曾经有一段时间,升级 Linux 内核让很多用户打心里有所畏惧。在那个时候,升级内核包含了很多步骤,也需要很多时间。现在,内核的安装可以轻易地通过像 apt 这样的包管理器来处理。通过添加特定的仓库,你能很轻易地安装实验版本的或者指定版本的内核(比如针对音频产品的实时内核)。 考虑一下,既然升级内核如此容易,为什么你不愿意自行编译一个呢?这里列举一些可能的原因: 你想要简单了解编译内核的过程 你需要启用或者禁用内核中特定的选项,因为它们没有出现在标准选项里

    阅读全文...

  • Vue 页面骨架屏注入实践

    Posted by : lon.y@qq.com on 2018年5月26日

    作为与用户联系最为密切的前端开发者,用户体验是最值得关注的问题。关于页面loading状态的展示,主流的主要有loading图和进度条两种。除此之外,越来越多的APP采用了“骨架屏”的方式去展示未加载内容,给予了用户焕然一新的体验。随着SPA在前端界的逐渐流行,首屏加载的问题也在困扰着开发者们。那么有没有一个办法,也能让SPA用上骨架屏呢?这就是这篇文章将要探讨的问题。 文章相关代码已经同步到Github,欢迎查阅~ 一、何为骨架屏 简单来说,骨架屏就是在

    阅读全文...

  • Web 安全之 XSS

    Posted by : lon.y@qq.com on 2018年5月26日

    什么是XSS 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。 XSS的攻击场景 反射型 这类攻击方式主要借助URL来实施。URL的构成分为协议、域名、端口、路径、查询几部分构成。如图所示:

    阅读全文...