- 博客(98)
- 资源 (8)
- 收藏
- 关注
原创 互联网大厂的后端技术栈
最近公司招聘海外后端研发,所以整理一份技术栈的资料给他们,但是想来这份整理也适用于所有后端研发,所以去掉了敏感内容,把它呈现于此,本文重在概述,毕竟篇幅有限,欢迎【关注】https://www.zhihu.com/people/wenxi.zhang,后续可能把单点拓展成文,详细地一一阐述,另外笔者见识有限,毕竟也没有可能在所有大厂工作过,所以如果有疏漏可以在留言处赐教目录后端开发概述...
2020-02-22 10:28:04 3830 1
原创 LRU原理和Redis实现——一个今日头条的面试题
很久前参加过今日头条的面试,遇到一个题,目前半部分是如何实现 LRU,后半部分是 Redis 中如何实现 LRU。我的第一反应是操作系统课程里学过,应该是内存不够的场景下,淘汰旧内容的策略。LRU ... Least Recent Used,淘汰掉最不经常使用的。可以稍微多补充两句,因为计算机体系结构中,最大的最可靠的存储是硬盘,它容量很大,并且内容可以固化,但是访问速度很慢,所以需要把使用的内容
2018-03-13 21:23:00 28946 4
原创 机器学习在饿了么竞价广告中的实践
本文介绍的内容,有真亦是假假亦真的部分,请读者自行斟酌。具体数据比较敏感,都使用模糊的描述方式代替。概述竞价广告,这个在大百度的时代就家喻户晓的词汇,相比大家也很熟悉了。顾名思义,竞价、竞价,广告位置有限,满足条件的竞争商家有很多,那么如何选择商家对商家排序。价高者应该是在没有任何数据积累的情况下,最原始的策略。这类广告的收费模型往往是按照点击次数付费(CPC),如果价高者得广告位,但是因为自身原
2017-12-22 16:06:07 2827
原创 Spring Cloud + Kubernetes 微服务框架原理和实践
早在半年前,公司开始推行容器化部署方案 AppOS,虽然发布界面过于极客,十分晦涩,不过仔细研究起来真的觉得十分强大,容器化推行后,计算资源(CPU、内存)的利用率可以极大提高,降低服务器数量,从而节约技术成本。恰巧,若干个朋友所在创业公司最近也在尝试做微服务、容器化。架构上摒弃 SOA 的 dubbo,加入Spring Cloud阵营;部署方案上从过去的云服务器直接部署,升级到基于Kuberne
2017-12-06 16:08:39 18942 4
原创 PMML模型文件在机器学习的实践经验
算法工程师和业务开发工程师,所掌握的技能容易在长期的工作中出现比较深的鸿沟,算法工程师辛辛苦苦调参的成果,业务工程师可能不清楚如何使用,如何为线上决策给予支持。本文介绍一种基于PMML的模型上线方法。这种方案,在本次参加 QCon 大会时,Paypal的机器学习平台中也有所提及:PMML预测模型标记语言(Predictive Model Markup Language,PMML)是一种可以呈现预测
2017-10-23 18:33:25 25181 7
原创 GBDT的原理和应用
周二、周三参加了QCon上海2017|全球软件开发大会,听了几场机器学习相关的 Session,多次提及 GBDT(Gradient Boost Decision Tree),并且在模型演化历史中,都有很重要或者最重要的地位。如《Pinterest如何利用机器学习实现两亿月活跃用户》提到的模型发展历史,GBDT带来过巨大的效果提升。迭代决策树(GBDT)《唯品金融机器学习实践》中也提到因为GBDT
2017-10-23 13:42:54 10874 2
原创 基于Elastic Search的搜索广告召回方案
如果你对搜索广告,竞价排序,或者Elastic Search技术感兴趣,读读这篇文章或许多少能有所收获。作者不是计算广告领域的专家,如果作为读者的你是这个方面的专家发现本文浅薄,希望留下你宝贵的意见。因为ES版本升级很快,很多功能支持程度也伴随版本的升级而改变,本文内容基于Elastic Search 5.4.1实现。什么是搜索广告举个最常见的例子,当我们在淘宝上购物搜索时候,例如输入“猫粮”在搜
2017-08-09 08:23:22 9064
原创 从单一WAR到多活, 记述一个创业公司的架构演变
本故事纯属虚构,如有雷同,实属巧合程 是一个爱折腾,喜欢交朋友的程序员。某一天,程一个朋友介绍了另外一个朋友 创 给他,创说他有个点子,可以改变世界,现在就差一个程序员。程看了创的PPT,觉得还不错,反正也没妹子,平时下班回家或者周末也没事干,就答应创,做他的合伙人,给他开发网站。单一垂直架构程把他自己在大学的时候做的基于Java的考试管理系统,拿来改了改,又自学了
2017-07-16 14:29:22 12589 26
原创 面试归来——梳理社招面试以及浅述对程序员职业生涯的看法
原谅我是一个后知后觉的人,已经在新的岗位工作了两个月,才写这篇文章。 本文会先讲述博主一个月的面试经历,梳理一下技术面试,浅述关于程序员职业生涯的一些看法。从创业到再就业大概4个月以前,终止创业已经成为逃不开的事实。本来以为即使散伙,也会有比较充裕的时间找工作,所以并没有做过任何投递简历和面试。但是现实却紧张的多,实际留给我们的时间只有一个月。所以开始有些慌,毕竟太
2017-07-14 11:19:14 17470 52
原创 为什么我们创业失败了和选择创业公司的思考
作为技术专栏,第一篇文章居然是和技术无关! 不过,人生还长,博主会陆续梳理很多技术,分享给大家。 先分享一个博主创业失败的故事,往往失败的故事更有启发性和趣味性,不是么? 这篇文章会从一个技术合伙人角度分享创业失败的感受,和从一个技术合伙人的角度分享一些创业公司选择的观点。两年前,我通过校友会认识了我们的创始人,那时候邮币卡电子盘(邮票纪念币磁卡证券化交易,更多了解可以搜索南京文交所
2017-07-12 07:21:27 12417 40
转载 Spring AOP 概述
一.前言 在以前的项目中,很少去关注spring aop的具体实现与理论,只是简单了解了一下什么是aop具体怎么用,看到了一篇博文写得还不错,就转载来学习一下,博文地址:http://www.cnblogs.com/xrq730/p/4919025.htmlAOPAOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Obje
2017-04-07 08:02:05 1404 1
转载 RabbitMQ消息队列(五):Routing 消息路由[转]
上篇文章中,我们构建了一个简单的日志系统。接下来,我们将丰富它:能够使用不同的severity(严重程度)来监听不同等级的log。比如我们希望只有error的log才保存到磁盘上。1. Bindings绑定 上篇文章中我们是这么做的绑定:channel.QueueBind(queueName, EXCHANGE_NAME, ROUTING_KEY);//con
2017-03-18 09:08:24 1480
转载 RabbitMQ消息队列(四):分发到多Consumer(Publish/Subscribe)[转]
上篇文章中,我们把每个Message都是deliver(提供)到某个Consumer。在这篇文章中,我们将会将同一个Message deliver(提供)到多个Consumer中。这个模式也被成为 "publish / subscribe"。 这篇文章中,我们将创建一个日志系统,它包含两个部分:第一个部分是发出log(Producer),第二个部分接收到并打印(Consumer)。 我们
2017-03-18 09:07:00 1097
转载 RabbitMQ消息队列(三):任务分发机制[转]
在上篇文章中,我们解决了从发送端(Producer)向接收端(Consumer)发送“Hello World”的问题。在实际的应用场景中,这是远远不够的。从本篇文章开始,我们将结合更加实际的应用场景来讲解更多的高级用法。 当有Consumer需要大量的运算时,RabbitMQ Server需要一定的分发机制来balance每个Consumer的load。接下来我们分布讲解。
2017-03-18 08:56:07 1111
转载 RabbitMQ消息队列(二):"Hello, World"[转]
2. Sending第一个program send.cs:发送Hello world 到queue。正如我们在上篇文章提到的,你程序的第9行就是建立连接,第12行就是创建channel,第14行创建名字为hello的queue。 1 using System; 2 using RabbitMQ.Client; 3 using System.Text; 4 5
2017-03-18 08:54:27 997
转载 RabbitMQ消息队列(一): Detailed Introduction 详细介绍[转]
1. 历史 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现。AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者是 SOAP 等),但是在异步消息处理中却不是这样,只有大企业有一些商业实现(如微软的 MSMQ ,IBM 的 Websphere M
2017-03-18 08:44:59 1593
转载 Hadoop2.7.3+Spark2.1.0 完全分布式环境 搭建全过程
一、修改hosts文件在主节点,就是第一台主机的命令行下;vim /etc/hosts我的是三台云主机:在原文件的基础上加上;ip1 master worker0 namenodeip2 worker1 datanode1ip3 worker2 datanode2其中的ipN代表一个可用的集群IP,ip1为master的主节点,ip2和i
2017-02-24 22:41:14 2539
原创 深入理解Java SOA 架构Dubbo系列—— 第二回 搭建dubbo-demo环境
本文目的阶段一 基于本地调用的微服务框架阶段二 基于Zookeeper注册中心的微服务框架相关资料基于本地调用的dubbo微服务代码框架基于注册中心的dubbo微服务代码框架本文目的一旦提到某某架构,可能很多人的第一感觉就是:这个东西很复杂,很难实际操作。其实不然,只要获得对的资料,搭建自己对微服务框架并不是一件难事,不过由于历史原因,很多资料过于老旧,引用的文档也已经被废弃,所以从零搭
2016-09-14 13:26:16 7159 7
原创 深入理解Java SOA 架构Dubbo系列—— 第一回 结缘
一年半以前,我在一家创业公司从事服务器端开发工作,虽然当时公司已经拿到了6000w的A轮融资,并且App已经有超过百万的日活,开发团队已经有10几个人。但是看一眼服务器的代码,却感觉和笔者本科时候做的“学生管理”系统没什么两样。所有的服务器代码,都在一个JavaWeb工程里,然后被打包成War,使用Tomcat部署。为了应对增长的活跃用户,使用Haproxy做了负载均衡,同样的war包会在5-10
2016-09-10 22:35:32 30880 12
原创 商城系统中常见的逻辑陷阱和优化方案(1)
和金钱相关的系统,都很有挑战性,是因为在这里,一切都很严肃 ----by Someone you don't know 伴随着用户群积累,社区的壮大,还有来自投资人对变现渴望的压力,似乎最容易想到的变现途径就是“我们也卖点东西吧”,如果直接给淘宝链接,会显得逼格太低,购买别人的系统,钱不少花,最后为了适应自己的
2016-06-18 08:49:12 7887 1
原创 Tomcat 服务器 Session的实现
结合《HTTP权威指南》和《How Tomcat Works》话一话我所理解的Session以及Tomcat下的实现方式!Session是什么?在开始正式讨论之前,我们首先探讨一些原理性的问题,什么是session,它可以用来做什么!我们每天都会浏览各种网站,不同的用户浏览网站的目的不同,在该网站上留下的历史也不同,为了提供个性化的服务,服务器就需要记录和识别用户!一个用户
2016-05-31 21:43:54 6639
原创 Jsoup 实现的基于列表-详情结构的网页爬虫
问题阐述: 对于很多应用而言,都需要搜集一些资讯内容充实自己的内容,这样可以丰富站点内容,增加用户停留的时间。最原始的办法,莫过于复制粘贴,但是,当如果目标网站是几个,甚至几十个的时候,复制粘贴并不是长久之计,劳心劳力,又容易搞错。所以基于程序的数据爬取就十分重要。但是几乎每个网站,都有他独特的结构,看起来要针对每个网站独特的结构,来写一套东西,但是这样拓展性也很差。这里我介绍一下,我所实
2016-01-30 18:39:28 3069 1
原创 利用Nignx巧妙解决我所遇到的DDOS攻击
1. 问题自家的APP上线已经有一段时间了,突然有一天发现线上产品居然不能发送验证码。登录第三方短信验证码服务后台,发现问题很严重。3youbiquan157972015-12-254youbiquan572015-12-235youbiquan49201
2016-01-10 22:34:58 4011
原创 Mybatis 使用技巧-通用的搜索
写在前面算算自己也工作两年有余了,工作中遇到过很多问题,解决了很多问题,但是似乎没有太多时间反思,想想真的应该记录下来,越来越觉得反思和总结比盲目的做要重要的多。 粗浅的使用过几种java的持久框架,感觉mybatis还是十分好用的,特别比较喜欢resultMapping这个feature,使得结果的封装很方便。实际使用中,笔者遇到一个问题,就是针对不同的搜索,往
2016-01-01 21:47:19 3028 2
原创 Java 协变性 逆变性 学习笔记
在面向对象的计算机程序语言中,经常涉及到类型之间的转换,例如从具体类小猫到动物之间的类型转换(上行转换),或者从形状向三角形之间的转换(下行转换)。我们之前往往都比较关注类型本身,却常常忽略类型转换的性质。最近在拜读《thinking in java》看到一些关于类型转换性质的比较抽象理论的内容,仔细研究一下,分享给大家。我们将围绕如下三个核心名词:协变性(covariance)、逆变性(
2013-04-19 10:21:23 3969 1
转载 5招让简历成为面试绿卡(转)
简历,是求职的第一关。没有恰到好处的简历,就可能失去面试机会,大学生正值求职之际,如何做好自己的简历呢? NO1,简单明了的简历受青睐,没必要把所修课程都列上去 什么样的简历更容易吸引招聘人员的眼球?IBM人事部倪铮经理告诉记者,“一份简单明了的求职简历更容易得到招聘人员的青睐,那种太厚、太繁杂的简历往往被直接淘汰,因为人事经理没有时间和耐心在你提供的一大堆资料
2013-03-16 08:01:51 3179
转载 薪水最高的25家高科技行业公司
自 http://www.fenzhi.com/25-top-salary.html薪水最高的25家高科技行业公司薪水最高的25家高科技行业公司,根据企业员工发布的薪水所得,互联网及软件行业很有优势哦。Top 25 高薪水科技公司1Google.com (谷歌中国)月均薪水:18160元google是全球领
2012-12-22 09:59:01 7074
原创 IT求职经验总结——面试和准备策略
IT求职经验总结——面试和准备策略 风风火火的求职经历断断续续持续了大概2个月,最匆忙的时候,可以一天赶3个场子,有心灰意冷,也有身心俱疲。幸好最后结果还算好,所以写个东西,主要还是希望师弟师妹可以从中受到一些启发吧。首先,楼主的专业是计算机,所以这个求职经历主要也更加切合计算机类的求职无疑。(后记:十分荣幸这篇文章,被CSDN收录到热文当中,并且有很好的排名。这让我觉得受宠若
2012-11-13 11:05:47 30565 100
原创 小米公司2013校园招聘笔试题(研发)
一,填空题1. 两个人一个速度为a,一个速度为b,相向而行,在距离为s的时候,A放出鸽子,速度为c,鸽子飞到B后,会返回A,遇到A后再返回B。在这期间鸽子飞行的路程2. (he)的平方 = she。 h,e,s 各代表什么3. 运算 93 & -84. 将无序数组构建成最大堆,最差的时候,复杂度是5. int *p = &n;
2012-10-11 22:37:31 9656 13
原创 Wildcard Matching (Recursive and Non Recursive method) (Leetcode 网易有道面试题)
题目描述 (http://www.leetcode.com/onlinejudge 倒数第三题)Implement wildcard pattern matching with support for '?' and '*'.'?' Matches any single character.'*' Matches any sequence of characters (inc
2012-10-04 16:35:33 7551
原创 网易有道面经(2013校园招聘杭州站)
上机考试:网易有道的筛选模式是先上机考试,然后根据上机考试选择大概1/3参加面试。上机的平台和ACM有点类似,提交代码然后有手动阅卷。上机考试时隔比较久远,不过还能想起两个题目:1. 给定一个点分IP地址表示,写个程序把它转换成相应的32位的无符号整数并输出,如果输入不是合法数据,就返回0.这个题目如何利用好标准输入输出,其实可以很容易判断出不合法的输入用例,不过当时没有想好,导致
2012-09-27 21:19:25 11129 20
原创 2012搜狗校园招聘笔试题
1. 选出程序输出的结果#include using namespace std;int main(){ short input[10]={'A','B','C','D','E'}; unsigned char *p=(unsigned char*)&input; int s=0; int temp=sizeof(input); for
2012-09-22 21:05:38 5909 8
原创 Remove Nth Node From End of List
题目连接:http://www.leetcode.com/onlinejudgeGiven a linked list, remove the nth node from the end of list and return its head.For example, Given linked list: 1->2->3->4->5, and n = 2. Af
2012-09-19 14:31:07 2256
原创 LeetCode 面试题 Regular expression matching(正则匹配)
题目如下:Implement regular expression matching with support for ‘.’ and ‘*’.‘.’ Matches any single character.‘*’ Matches zero or more of the preceding element.The matching should cover the
2012-09-18 16:32:15 20579 7
原创 C++重载new,以及实现检测内存泄露版本的new
在c++中,new作为一个操作符,也是可以被重载的,这个可能很多人比较陌生。在 Effective C++这本书中,专门提到了这方面的知识,看过此书,做一些总结,顺便在网上找到一些内容,实现一个可以检测内存泄露的内存分配机制(new delete)。1. new_handler在铺叙重载new之前,先说一下new_handler, 如果读过 windows结构化异常,对这个机制应该
2012-09-13 21:03:44 5065
转载 可变参数表函数的原理及实现(printf实现)
没事的时候,想一下printf,居然发现都不知道是怎么样的大概的原理。找到一篇文章,不过也加上一些自己的理解,写出此文。原文地址: http://www.cnblogs.com/liyou_blog/archive/2010/09/01/1814663.htmlANSI C中库函数printf的正确形式如下: int printf(char *fmt, ...);
2012-09-07 20:49:36 2551 1
转载 同步函数与异步函数
文章出处:http://blog.163.com/lyzaily@126/blog/static/42438837200952751954922/ 1. 同步函数与异步函数 什么是同步函数? 什么是异步函数? 它们在线程中执行时会对线程有何影响? 一个线程如何与一个异步执行的函数进行同步?
2012-09-06 13:38:13 2352
转载 Bloom Filter概念和原理
Bloom Filter概念和原理焦萌 2007年1月27日转自: http://blog.csdn.net/jiaomeng/article/details/1495500 Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时
2012-09-05 12:59:19 1943
原创 阿里巴巴研发工程师面经
前缀:分享一些面试的题目吧,是否拿到offer,还要等2周以后。阿里印象:面试地点是在塘苗路18号,一淘那边。给我的感觉一淘的办公环境着实一般,和网易杭州和MSRA是差了一个档次的。开始到的时候,很多人也在等,本来通知是4:40,结果等到5:20才面试,等待的过程中发现很多认识的人,阿里如此早的启动招聘,感觉浙大的所有人都被他给面了。一面:凭直觉
2012-09-04 21:59:02 14068 12
OpenGL学习大礼包
2009-12-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人