拥有0000-未整理-等待研究标签的文章

有赞应用层网关剖析

提到应用网关系统,我们脑海中或多或少都会闪过一些关键词,比如统一入口、高并发、大流量、限流、防刷、实时监控等等。 _Youzan Application Gateway Center_(公司内部称之为_Carmen_系统),它就是目前有赞的应用层网关系统。每天承载着亿级别的请求量,持续的为开放平台和多个有赞App应用提供着稳定的服务。今天我们来一起剖析下整个有赞的应用层网关,聊聊网关的当前的概...
阅读全文

机器学习搭便车指南–决策树(1)

```前言有赞大数据团队内部建立机器学习系列课程, 旨在结合实际项目重新讲解一遍核心机器学习技术. 我们始终相信技术是推动业务进步的原动力. 我们把我们学习的重点记录下来, 分享给大家, 一同学习. 和普通机器学习教程不同, 除了讲解重要理论之外, 我们结合scikitlearn源码加强对知识的理解. 文章有大量的讨论, 都是我们实践过程中遇到的问题. ```1\. 决策树的基本概念...
阅读全文

记一次基于Robotium改造的测试实践

1、前言去年年终复盘,测试这边留了两个Action:一是自动化工具推广,提高开发可操作性;二是App自动化稳定性及推广。如何提高可操作性?如何推广?由此便萌生了要做一个专门的App。今年初,我们上线了买家端入口,产品采用大量H5开发,随着产品迭代的加快以及开发测试比的增加,老的框架已经无法满足新的挑战: 开发自测 前端页面变动频繁(目前来看这点还好) App上各类组件...
阅读全文

TCP网络编程杂谈

作为一名IT工程师,网络通信编程相信都会接触到,比如Web开发的HTTP库,Java中的Netty,或者C/C++中的Libevent,Libev等第三方通信库,甚至是直接使用Socket API,但是很多程序员都仅限于使用,对于使用的方式是否合理并没有特别深的理解,比如有一股脑的使用线程池解决问题的(虽然大部分情况采用多线程方案不会有什么问题,但是编程复杂度比起单线程提升了很多,线程开的太多也...
阅读全文

Zan & Swoole2.0

,大家可能会有个疑惑, Zan的协程框架是不是要关门大吉了呢? 答案当然是否定的。Zan和Swoole2.0走的方向是不一样的;Swoole2.0的方向是希望和Golang一较高下; Zan的定位是搭建一个Zan + Golang的生态;Swoole2.0鸟哥的出现确实让国人在技术界猛的一抬头。 天峰的Swoole也备战了很多年,任重道远。 Zan目前是基于...
阅读全文

深入浅出Cache

章节== ① 什么是Cache? Cache的目标? ② Caching住哪些内容? ③ 我们想要的Cache产品 ④ Cache使用方式 ⑤ 对于总体系统的提高 ⑥ 关于Sharding ⑦ Cache痛点和关注点 ⑧ 我们用的Cache的产品 ⑨ 我们的一些实践① 什么是Cache? Cache的目标? 在说这个之前我们先...
阅读全文

Haunt - Youzan 服务发现 概述

背景Haunt是有赞内部使用的服务发现系统,下面会详细介绍一下该系统的设计与思考。 首先,我们设想一下,我们提供的RESTful API或者其他API的服务,为了完成一次服务请求,服务调用方需要知道服务实例的网络位置(IP地址和端口)。传统应用都运行在物理硬件上,服务实例的网络位置都是相对固定的。比较常见的做法是,服务调用方可以从一个经常变更的配置文件中读取网络位置。而对于一个现代的,基...
阅读全文

浅谈代码覆盖率

引言经常有人问这样的问题:“我们在做单元测试,那测试覆盖率要到多少才行?”。答案其实很简答,“作为指标的测试覆盖率都是没有用处的。”Martin Fowler(重构那本书的作者)曾经写过一篇博客来讨论这个问题,他指出:把测试覆盖作为质量目标没有任何意义,而我们应该把它作为一种发现未被测试覆盖的代码的手段。 代码覆盖率的意义1. 分析未覆盖部分的代码,从而反推在前期测试设计...
阅读全文

编程语言漫谈

_写在前边:我们知道现有语言的编程范式有:过程式,面向对象,函数式,逻辑式。随着软件工业化程度的普及,以及软件的复杂度越来越高,编程语言的发展历程也是从最初的过程式(命令式)语言c,发展到以java语言为代表的面向对象编程语言。而逻辑编程语言(以prolog为代表)和函数式语言(lisp系列)还多用在学术和人工智能领域中。近几年,随着多核,云计算时代的到来。函数式编程语言逐渐浮出水面,最经典的语言...
阅读全文

优化Linux NAT网关

因为我们的生产环境没有专用的NAT设备,不得不使用Linux的NAT功能来解决生产内网访问公网的问题。NAT的原理,大致如下图所示: 内网的机器,将网关配置成NAT网关的地址,当访问公网时,NAT会将访问公网的包的源地址(内网地址)转换为自己的公网地址,再将包发给公网的服务器。然而,服务器访问公网与桌面系统访问公网的场景,是完全不同的,服务器访问公网的行为,通常比桌面系统的行为更有“...
阅读全文