天狼武士的Blog

世界太大我想敲两行代码


  • 首页

  • 归档

  • 标签

写给产品经理的技术干货

发表于 2018-07-17 | 阅读次数
字数统计 4,799 字 | 阅读时长 16 分钟

一、前言

 一个好的产品少不了一个好的产品经理的策划与设计,外界普遍认为产品经理也隶属于技术工种,但其实不是,产品经理在我看来属于文艺圈,设计一套产品对他们来说是创作,可以天马星空,可以不受任何束缚尽情创作,所以产品经理普遍是不知道他们设计的产品是如何实现的,这就是为什么我们经常听到或者看到网上产品经理和技术开发之间的各种争斗段子。产品经理不懂技术在创作层面上来说是必要的,反之一个好的技术是绝对设计不出一款好的产品的,如果让一个人即做开发又做产品。。。。。。我真的很难想象产品出来是啥样子的。。。。。。

 那么问题来了,产品经理到底要不要懂技术呢?答案是了解就好,不要深入也不能完全不懂!为什么?打个比方,我们设计一个摩天大楼,这个大楼的设计者可以完全不用考虑各种物理定律天马行空,漂浮在半空中的天空之城都没问题,但是这种大楼至少在他活着的时候是不会竣工的甚至都不会动工,真正好的设计至少他得知道楼为什么不能漂浮在半空中,怎么设计这个楼才不会倒塌等等。相应的,产品经理所要了解的东西也远不止如何天马行空如何让最终用户眼前一亮。恰巧,我认识一个产品经理他就完全不懂技术,最近发现了自己至少得了解一下产品是如何实现的,所以在网上看了半天,还是云里雾里,看了还不如不看越看越懵逼。

 以上是这篇文章的前提条件,为了不让我认识的这位产品小达人更加迷茫,我决定给他写一篇干货,介绍一下他的产品到底是如何落地的。

阅读全文 »

ElasticSearch的搭建与数据统计

发表于 2018-05-15 | 阅读次数
字数统计 2,342 字 | 阅读时长 10 分钟

 平台内的产品有一个数据分析,统计平台内某个商户某个时间段内(今天、昨天、7天内、30天内……)的各种数据分析,这种分析显然用MySql的count、sum、GroupBy之类的去查询是很不靠谱的,尤其是在数据量很大的情况下效率就不言而喻了,本来想着用HBase的MR来做,或者直接把各纬度的数据通过HADOOP的MR处理完存到HBase里面,后来与朋友聊天后被朋友严重鄙视了一顿,鄙视的内容基本是嫌弃我们的数据量太小根本用不到HBase更用不到MR,在朋友的极力蛊惑之下决定用ElasticSearch来实现以下简称ES,好吧,那我们还是从传统的搭建-采坑-填坑-再采坑-再填坑开始。

阅读全文 »

基于Hadoop生态SparkStreaming的大数据实时流处理平台的搭建

发表于 2018-01-26 | 阅读次数
字数统计 2,687 字 | 阅读时长 13 分钟

 随着公司业务发展,对大数据的获取和实时处理的要求就会越来越高,日志处理、用户行为分析、场景业务分析等等,传统的写日志方式根本满足不了业务的实时处理需求,所以本人准备开始着手改造原系统中的数据处理方式,重新搭建一个实时流处理平台,主要是基于Hadoop生态,利用Kafka作为中转,SparkStreaming框架实时获取数据并清洗,将结果多维度的存储进HBase数据库。
 整个平台大致的框架如下:
 

 操作系统:Centos7
 用到的框架:
 1. Flume1.8.0
 2. Hadoop2.9.0
 3. kafka2.11-1.0.0
 4. Spark2.2.1
 5. HBase1.2.6
 6. ZooKeeper3.4.11
 7. maven3.5.2
 整体的开发环境是基于JDK1.8以上以及Scala,所以得提前把java和Scala的环境给准备好,接下来就开始着手搭建基础平台:

一、配置开发环境

 下载并解压JDK1.8,、下载并解压Scala,配置profile文件:

vim /etc/profile
1
2
3
4
5
export JAVA_HOME=/usr/java/jdk1.8.0_144
export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export SCALA_HOME=/usr/local/scala-2.11.12
export PATH=$PATH:$SCALA_HOME/bin

source /etc/profile
阅读全文 »

SpringBoot集成Shiro并用MongoDB做Session存储

发表于 2017-11-10 | 阅读次数
字数统计 1,052 字 | 阅读时长 5 分钟

 之前项目鉴权一直使用的Shiro,那是在Spring MVC里面使用的比较多,而且都是用XML来配置,用Shiro来做权限控制相对比较简单而且成熟,而且我一直都把Shiro的session放在mongodb中,这个比较符合mongodb的设计初衷,而且在分布式项目中mongodb也作为一个中间层,用来很好很方便解决分布式环境下的session同步的问题

 自从SpringBoot问世之后我的项目基本上能用SpringBoot的就会用SpringBoot,用MAVEN做统一集中管理也很方便,虽然SpringBoot也提供了一套权限安全框架Spring Security,但是相对来说还是不是太好用,所以还是用Shiro来的方便一点,SpringBoot集成Shiro要比Spring MVC要简单的多,至少没有一堆XML配置,看起来更清爽,那么接下来我们就开始集成。

 第一步必然是在MAVEN中先添加Shiro和mongo的依赖,我用的Shiro版本是

阅读全文 »

Centos下搭建MariaDB集群

发表于 2017-07-12 | 阅读次数
字数统计 1,628 字 | 阅读时长 7 分钟

 最近公司测试库改建,之前测试库上面装的是老的MySql,我顺手就把它换成了MariaDB,后来因为连的人太多就爆了Too Many Connections,本来很简单的事情,就让技术部一小伙子上去把连接数调大了一点,很简单,但是后来我发现他居然直接写在了My.cnf下面,显然他是不知道MariaDB早就从My.cnf下面扩展到了my.cnf.d文件夹下面,于是就跟他一番讲解,然后就引出了配置集群的话题,所以觉得有必要写一下MariaDB的一些配置和集群的配置方法。

 MariaDB本身就是MySql的一个分支,所以很多东西都是MySql延展下来的,既然要说的话就先从安装说起吧,在CentOS下安装还是很简单的,官网有很明确的说明以及各种安装方法,我个人比较喜欢yum源的安装方法,下面我们开始。

第一步、安装MariaDB

 我们以最小集群来说,两台服务器先做主从配置,然后再做互为主从的配置,两台主机的IP分别为:192.168.70.135,192.168.70.137。

 先去官网上复制一下源的配置:

https://downloads.mariadb.org/mariadb/repositories/#mirror=neusoft&distro=CentOS&distro_release=centos7-amd64--centos7&version=10.2
阅读全文 »

Centos下docker搭建Hadoop集群

发表于 2017-06-13 | 阅读次数
字数统计 1,719 字 | 阅读时长 8 分钟

 随着业务发展需要,数据量的逐步提升,需要用到Hadoop来处理一些数据,所以搭建一个Hadoop集群,搭建Hadoop集群需要多台主机,但是由于资源有限,所以刚好可以利用近些年比较火的docker来搭建,用docker搭建也有一个好处,就是一次构建多节点重复利用。在上服务器之前,现在自己的电脑里用虚拟机模拟一下,顺便可以做个记录,把可能遇到的坑先趟过去(谁叫我笔记本16G内存呢)。

第一步、安装Centos,部署docker

 先从Centos官网载一个最小版的Centos7镜像,用VMWare安装,由于是最小版镜像所以装完之后有很多组件需要手动yum安装,(什么?为什么不装完全版的?我要是有几台刀片我也装啊!)

 完成之后的第一步当然是换yum源:

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
阅读全文 »

获取我附近的商店方法(二):GeoHash算法

发表于 2017-05-04 | 阅读次数
字数统计 1,033 字 | 阅读时长 4 分钟

 上一篇提到根据坐标获取附近的商店根据半径计算的方法,这一篇说一下目前比较常用的GeoHash方法,先简单介绍一下GeoHash算法:

认识GeoHash

 GeoHash算法将二维经纬度坐标直接转换成字符串,每一个字符串代表一个矩形区域,也就是说,这个矩形区域内所有的点(经纬度坐标)都共享相同的GeoHash字符串,字符串的长度越大,矩形的区域就越小,经度也就越高。字符串相似的表示距离相近,这样可以利用字符串的前缀匹配来查询附近的POI信息

GeoHash算法的步骤

 地球纬度区间是[-90,90],经度区间是[-180,180],通过区间法对经度和纬度分别进行计算,假如我们获取到的当前坐标为经度-0.12866, 纬度38.534413,以纬度为例:

阅读全文 »

获取我附近的商店方法(一):根据坐标计算半径

发表于 2017-05-04 | 阅读次数
字数统计 645 字 | 阅读时长 3 分钟

 现在所有的电商类APP都会有根据我的位置获取我附近的商户、离我最近的商户的筛选排序功能,那么这个功能是怎么实现的呢?显然单纯的数据库查询很难做到,一般数据库中只会存储商户的经度和纬度的坐标,那么根据这两个坐标获,再根据用户手机端定位到的经纬度坐标获经过计算得出离我最近的商户,这种实现方式可以有两种:第一种根据坐标及需要的距离计算出半径获取;第二种是通过geoHash算法进行转换。

 咱们并不讨论这两种方式的优缺点及具体的可行性问题,但从理论上说明一下两种方式的实现过程,这篇文章先说一下根据半径获取的方式:

 假定我们数据库中每个商户都有一个自己的地理位置坐标(经度:longitude;纬度:latitude),这两个参数可以精确到一个点,然后以这个点为圆心再根据需要的距离计算出最大的半径,代码如下:

阅读全文 »

转:奥瑞旅行是什么鬼?

发表于 2017-04-26 | 阅读次数
字数统计 715 字 | 阅读时长 2 分钟

以下文章截取自与奥瑞旅行CEO对其产品的一次不成熟的描述:

奥瑞旅行:你出过国吗?从你起心动念到踏上异国他乡的土地再到回来,都需要花钱对吗?
假装用户:是的,所有动作全部伴随着花钱。无论买旅游产品还是在境外消费(买东西或者吃顿饭)都得花钱。
奥瑞旅行:但是你在境外花钱爽吗?花的值吗?
假装用户:不爽是肯定的,国内啥都手机在线支付,习惯了;国外花钱太原始了,至于值不值的不好说。
奥瑞旅行:没错,如果你在国外本来就要买这个东西,恰好现在有个软件,能让你买的时候打折,付款的时候手机快捷支付,你用不用?不仅如此,奥瑞旅行这个怪物除了给你提供最细致的旅游服务外,还要让你清楚、明白、实惠、便捷的在境外花好每一笔钱。
假装用户:还有这么好的软件?请问哪里能下载?什么时候可以用?
奥瑞旅行:别着急,今年6月以后去英国玩耍的小伙伴就可以率先用到啦!年底去欧洲玩耍的小伙伴也可以用啦。有没用很期待,心痒痒的?另外,奥瑞旅行的1.0版本海外中文接机、送机和包车定制服务也依然为你守候,专人专车从机场接你送到酒店,再从酒店送你去shopping,之后满载而归送回酒店。好土豪的样子有木有?!

  如文中描述,奥瑞旅行这款产品实际上是打破了中国人出境消费的很多弊端问题,比如目前中国人出境消费,要么使用现金,要么使用VISA、master card或银联卡等银行卡;使用现金的方式出境是收到金融管制的,就是你一次性可以带的货币数量是有限的,而使用银行卡要么换算成当地货币,要么转换成美金支付,很不方便,且毫无任何折扣可言,信用卡的话回来还钱也是个问题,经常会有人忘记还其他货币的钱而被银行纳入信用不良的人群之中。

  之前我也说过中国的互联网发展速度是相当的快的,目前中国人直接跳过了信用卡时代步入了移动支付的时代,但仅限于中国,现在有这么一款产品直接将中国人的消费习惯带入国外,让中国人不管身处何处都可以享受到国内的移动支付便捷,这无疑是一个很不错的想法。

  

angularJS创建一个上传照片的指令

发表于 2017-04-20 | 阅读次数
字数统计 557 字 | 阅读时长 2 分钟

 angularJS在近几年发展火热,也无疑是目前市面上来说比较牛逼且成熟的框架,在单页面前端应用当中应该可以说是王者,双向绑定省去了大量的前端代码,控制器在其作用于方面的控制也是相当腻害,今天我们要说的是另外一个比较牛逼的功能,就是angularJS的指令directive,之前没听说过angularJS指令的朋友请自行度娘,随便搜一条文章都比我说的详细,这次用一个我自己写的图片上传的指令来做为案例,详细说明一下实际操作过程中的指令。

阅读全文 »
12
天狼武士

天狼武士

天狼武士的个人博客

14 日志
35 标签
新浪微博
© 2019 天狼武士
天狼武士 专属博客
苏ICP备 17021575