• 数据库 schema 迁移数据最佳实践

    Posted by : lon.y@qq.com on 2017年11月28日

    如何进行大规模在线数据迁移 工程团队常面临一项共同挑战:重新设计数据模型以支持清晰准确的抽象和更复杂的功能。这意味着,在生产环境中,需要迁移数以百万计的活跃数据对象,并且重构上千行代码。 用户期望 Stripe API 保障可用性和一致性。所以在进行迁移时,需要格外谨慎,必须保证数据的数值正确无误,并且 Stripe 的服务始终保持可用。 本文将展示国外移动支付服务商 Stripe 如何安全地对数以亿计的 Subscriptions(订阅服务)对象进行大规

    阅读全文...

  • 5 款最酷的 Linux 终端模拟器

    Posted by : lon.y@qq.com on 2017年11月28日

    虽然,我们可以继续使用老旧的 GNOME 终端、Konsole,以及好笑而孱弱的旧式 xterm。 不过,让我们带着尝试某种新东西的心境,回过头来看看 5 款酷炫并且实用的 Linux 终端。 Xiki 首先我要推荐的第一个终端是 Xiki。 Xiki 是 Craig Muth 的智慧结晶,他是一个天才程序员,也是一个有趣的人(有趣在此处的意思是幽默,可能还有其它的意思)。 很久以前我在 遇见 Xiki,Linux 和 Mac OS X 下革命性命令行 S

    阅读全文...

  • Python 属性查找 深入理解(Attribute Lookup)

    Posted by : lon.y@qq.com on 2017年11月28日

    在Python中,属性查找(attribute lookup)是比较复杂的,特别是涉及到描述符descriptor的时候。 在上一文章末尾,给出了一段代码,就涉及到descriptor与attribute lookup的问题。而get系列函数(__get__, __getattr__, __getattribute__) 也很容易搞晕,本文就这些问题简单总结一下。 首先,我们知道: python中一切都是对象,“everything is object”,

    阅读全文...

  • Python 性能优化

    Posted by : lon.y@qq.com on 2017年11月28日

    本文除非特殊指明,”python“都是代表CPython,即C语言实现的标准python,且本文所讨论的是版本为2.7的CPython。另外,本文会不定期更新,如果大家有一些好的想法,请在评论里面留言,我会补充到文章中去。 姊妹篇:《Python内存优化》 姊妹篇:《使用gc、objgraph干掉python内存泄露与循环引用!》 python为什么性能差: 当我们提到一门编程语言的效率时:通常有两层意思,第一是开发效率,这是对程序员而言,完成编码所需要的

    阅读全文...

  • 网页适配 iPhoneX,就是这么简单

    Posted by : lon.y@qq.com on 2017年11月28日

    前言iPhoneX 取消了物理按键,改成底部小黑条,这一改动导致网页出现了比较尴尬的屏幕适配问题。对于网页而言,顶部(刘海部位)的适配问题浏览器已经做了处理,所以我们只需要关注底部与小黑条的适配问题即可(即常见的吸底导航、返回顶部等各种相对底部 fixed 定位的元素)。 笔者通过查阅了一些官方文档,以及结合实际项目中的一些处理经验,整理了一套简单的适配方案分享给大家,希望对大家有所帮助,以下是处理前后效果图: 适配之前需要了解的几个新知识 安全区域 安全

    阅读全文...

  • 数据库新动向 Oracle 与微软割据局面产生

    Posted by : lon.y@qq.com on 2017年11月26日

    【IT168 评论】数据库是一个历久弥新的领域,每年有很多新的黑马产生,但是整体局面却又看不出大的变化。究其原因可能是老牌厂商占据了主要市场,新伙伴的加入只能稍改部分局面,却无法撼动大的格局。 今年,DB-Engines指数和数据库领域都有了一些新的变化,既有新的组合产生,也有高歌猛进的黑马选手,同时也有不进则退的老牌选手。虽然,黑马选手无法撼动大局面,但是新鲜组合的诞生是否会创造出新局面呢? Oracle与MySQL的局面或颠覆 在DB-Engines榜

    阅读全文...

  • 用 Python 实现一个大数据搜索引擎

    Posted by : lon.y@qq.com on 2017年11月26日

    搜索是大数据领域里常见的需求。Splunk和ELK分别是该领域在非开源和开源领域里的领导者。本文利用很少的Python代码实现了一个基本的数据搜索功能,试图让大家理解大数据搜索的基本原理。 布隆过滤器 (Bloom Filter) 第一步我们先要实现一个布隆过滤器。 布隆过滤器是大数据领域的一个常见算法,它的目的是过滤掉那些不是目标的元素。也就是说如果一个要搜索的词并不存在与我的数据中,那么它可以以很快的速度返回目标不存在。 让我们看看以下布隆过滤器的代码

    阅读全文...

  • 你需要了解的前端测试“金字塔”

    Posted by : lon.y@qq.com on 2017年11月25日

    如果您正在测试前端应用程序,则应该了解前端测试金字塔。 在本文中,我们将看到前端测试金字塔是什么,以及如何使用它来创建全面的测试套件。 前端测试金字塔 前端测试金字塔是一个前端测试套件应该如何构建的结构化表示。 理想的测试套件由单元测试,一些快照测试和一些端到端(e2e)测试组成。 这是测试金字塔的改进版本,特定于测试前端应用程序。 在这篇文章中,我们将看到每个测试类型的样子。 为此,我们将为示例应用程序创建一个测试套件。 应用 要详细了解前端测试金字塔,

    阅读全文...

  • 轻松学习 JavaScript(6):JavaScript 箭头函数

    Posted by : lon.y@qq.com on 2017年11月25日

    JavaScript箭头函数是ECMAScript 6中引入的编写函数表达式的一种简便方法。通常,在JavaScript中,可以通过两种方式创建函数: 函数语句。 函数表达式。 可以如下所示创建函数语句: function add(num1, num2) { var res = num1 + num2; return res; } var sum = add(7, 2); console.log(sum); 也可以创建相同功能的函数表达式,如下所示: va

    阅读全文...

  • 疏而不漏:随机森林

    Posted by : lon.y@qq.com on 2017年11月25日

    一、概述 在三生万物:决策树中我们提到当决策树和装袋法(Bagging)和提升法(Boosting)结合后会成为更强大的算法,那么今天就介绍一种名叫随机森林(Random Forest)的算法,它是将决策树、装袋法以及随机特征选取结合后衍生出的一种增强型的树算法。 它有如下特点: 运行起来非常有效率,可以很容易的并行化 可以无删减的处理成千上万的输入变量,并可以评估变量的重要性 不用将数据专门分为训练集和测试集,随机森林构造完就可以得到近似的测试误差 能够

    阅读全文...