热度算法和个性化推荐

今日头条的走红带动了“个性化推荐”的概念,自此之后,内容型的产品,个性化算法就逐渐从卖点变为标配。伴随着“机器学习”,“大数据”之类的热词和概念,产品的档次瞬间提高了很多。而各种推荐算法绝不仅仅是研发自己的任务,作为产品经理,必须深入到算法内部,参与算法的设计,以及结合内容对算法不断“调教”,才能让产品的推荐算法不断完善,最终与自己的内容双剑合璧。

本文以新闻产品为例,结合了我之前产品从零积累用户的经验,整理了作为PM需要了解的基本算法知识和实操。

查看更多

分享到

使用Spring Validation 完成后端数据校验

前言

Web开发中JS校验可以涵盖大部分的校验职责,如用户名唯一性,生日格式,邮箱格式校验等等常用的校验。但是为了避免用户绕过浏览器,服务端的数据校验也是必要的,可以防止脏数据落到数据库中,本文将要介绍的Validation 来对数据进行校验。

简单叙述下JSR303/JSR-349Hibernate ValidationSpring Validation之间的关系。

查看更多

分享到

WebSoket初探并于SpringBoot整合

一、WebSocket

1.1 HTTP与WebSocket

WebSocket 是一种网络通信协议。RFC6455 定义了它的通信标准。WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。

我们知道,HTTP 协议是一种无状态的、无连接的、单向的应用层协议。它采用了请求/响应模型。通信请求只能由客户端发起,服务端对请求做出应答处理

这种通信模型有一个弊端:HTTP 协议无法实现服务器主动向客户端发起消息。这就注定了如果服务器有连续的状态变化,客户端要获知就非常麻烦。大多数 Web 应用程序将通过轮询请求。轮询的效率低,非常浪费资源(因为必须不停连接,或者 HTTP 连接始终打开)。

查看更多

分享到

Elasticsearch初探(5)——与SpringBoot整合

一、环境搭建

采用SpringBoot 2.0 + Elasticsearch 6.4.1.

源码地址:https://github.com/jitwxs/blog_sample

查看更多

分享到

Elasticsearch初探(4)——集群

Elasticsearch的一大优势就是能够十分轻松的进行分布式/集群部署,本文将主要讲解Elastic的集群搭建。

查看更多

分享到

Elasticsearch初探(3)——简单查询与中文分词

一、简单查询

1.1 查询全部

请求方式: GET

请求路径: ES服务的IP:端口/索引名/{分组名,可省略}/_search

查看更多

分享到

Elasticsearch初探(2)——相关概念与索引、数据操作

一、基本概念

由于Elasticsearch也是基于Lucene实现,因此它的许多概念和Luncene相似,关于Lucene的知识,可以参考文章:Lucene初探——基于Lucene 6.6.2

查看更多

分享到

Elasticsearch初探(1)——基本介绍与环境搭建

一、Elasticsearch简介

1.1 什么是Elasticsearch

Elasticsearch是一个实时的分布式搜索和分析引擎。它可以用于全文搜索结构化搜索以及分析,当然你也可以将这三者进行组合。

Elasticsearch是一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎,可以说Lucene是当今最先进,最高效的全功能开源搜索引擎框架。

Elasticsearch使用Lucene作为内部引擎,但是在使用它做全文搜索时,只需要使用统一开发好的API即可,而不需要了解其背后复杂的Lucene的运行原理。

查看更多

分享到

Java并发编程——Thread类的使用

在学习Thread类之前,先介绍与线程相关知识:线程的几种状态、上下文切换,然后接着介绍Thread类中的方法的具体使用。

查看更多

分享到

Java并发编程——volatile关键字解析

volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。

volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下与内存模型相关的概念和知识,然后分析了volatile关键字的实现原理,最后给出了几个使用volatile关键字的场景。

查看更多

分享到