2016总结–2017规划

2016年总结

2016年在工作和生活上都有很大进步,积累得到了一定的回报。

简要概述

工作上:北京成立了新的公司去发展vr楼盘这块市场,成都研发部门从无到有,研发能力大大提升,但离预期还有很长的路要走,敏捷开发以及DevOps才是我们的目标。研发工作相对变少,管理工作相对增加,对技术型的自己提了更高的管理要求。

生活上:可谓是三喜临门,结婚,生子,买车。媳妇老家离我老家只隔几分钟路程(走路),近是绝对的优势:踏破铁鞋无觅处,得来全不费工夫。缘分如此,挡也挡不住。顺产了一个小boy,东拼西凑买了一个车,可怜我媳妇住月子时,车已被我刮,媳妇坐车时已是维修车。

 

工作总结

管理工作总结:太过放任对刚毕业的学生不太适合,还是得有一些强硬的规章制度来引导他们习惯被管理的心。但我坚信好的程序员,好的员工都应该是自管理的,不应该是别人说什么,做什么,应该是主动完成任务,超额完成任务。不过在当前IT市场环境以及社会状态下,再加之创业公司,招这样的人,留这样的人,实在不容易,也只能暂时且管之。

 

技术总结:在新技术上,对docker更有实践过程,优点缺点更加了解,在绝大数创业公司docker实用性暂时不大,但在做实验和调研时很是方便。对c#有了实践经验,写了一些unity通讯代码。公司项目基本转到spring boot,rest api,前后端分离开发有了实践过程,主要解决的难点有session保持,以及不同开发环境参数配置,CI集成等。

 

生活总结

老一辈已经悄悄老去,长辈的头上也添了不少白发,我们这一代渐渐成为主力,下一代也急急来到。在思想上有了一定的升华,更加淡定,喜怒不在那么明显。因为陪媳妇怀孕以及产假,几乎没有暴走,导致体重上升10来斤。

 

2017计划

 

工作上:管理要更加细化,更加主动,计划要全,要细,任务完成结果要更加可测量化,努力提高成都团队激情,让所有人员得到更多的机会提高自己和实现自己。技术上对新的技术保持激情,对go语言争取实践,对unity要加强主程工作,要更加熟悉unity软件,试着编写vr、ar程序。

 

生活上:保持良好的生活习惯,减少体重,照顾好媳妇和孩子,争取带她们出国旅游一下下。同时加强英语学习,为未来三年考研究生做准备。

 

 

 

 

 

 

 

 

 

spring boot swagger–springfox 集成

swagger 官方网站  http://swagger.io/ ,demo示例  http://petstore.swagger.io/

swagger简单来说就是统一定义了api的语义描述(json,yaml),并提供ui显示,代码自动生成等等,即建立了rest api生态系统。如何生成这些api数据描述文件,大部分语言都有相关实现。

 

java方面比较好的实现就是springfox。github地址:https://github.com/springfox/springfox 。

springfox通过annotation来实现api描述,生成api   json描述文件。再交由swagger-ui实现展示。

 

spring-boot集成:

添加依赖gradle依赖:compile(‘io.springfox:springfox-swagger2:2.3.1’)

@Configuration
@EnableWebMvc
@EnableSwagger2
@ComponentScan(basePackages = {“…….”})
public class WebAppConfig extends WebMvcConfigurerAdapter{

}

swagger默认会把所有的controller生成api描述文件,可以@ApiIgnore参类或者方法进行忽略。

需要显示指定访问方式:get,post,put,delete等。通过save(@RequestBody Country country),@RequestBody来自动绑定提交的json数据。

domain类通过@ApiModelProperty(hidden = true)忽略不需要提交的属性。

 

默认swagger集成后会带ui,可以不使用它自带的ui,因为ui的相关静态文件是打包到jar文件,更改不方便。可以下载ui的相关代码进行集成

地址为: https://github.com/swagger-api/swagger-ui。加入相关js后可以进行汉化。swagger-ui提供api文档html描述以及在线测试。

json文件获取地址格式为: http://domain:port/v2/api-docs 。

 

 

 

 

 

 

golang Mattermost开发环境搭建

当前是一个互联网高速发展时代 ,为了提高程序员开发效率,各种开发环境,模块仓库满天飞,鉴于国内的网络以及对于一个新手golang来说,搭建mattermost开发环境还是得折腾一下。

首先如果按官方文档来,必定会卡壳,官方不得不说开发环境的搭建是一个坑。官方开发环境搭建链接

官方得安装docker,然后用docker 安装mysql镜像,postgres。nodejs,ruby,compass,接着npm install,npm run build-libs。详情可以查看Makefile。

 

针对国内的网络,调整步骤如下:

  1. 忽略Download Docker
    1. Follow the instructions at https://docs.docker.com/installation/ubuntulinux/ or use the summary below:
      sudo apt-get update
      sudo apt-get install wget
      wget -qO- https://get.docker.com/ | sh
      sudo usermod -aG docker <username>
      sudo service docker start
      newgrp docker
  2. 忽略Set up your dockerhost address
    1. Edit your /etc/hosts file to include the following line
      127.0.0.1 dockerhost
  3. 忽略Install build essentials
    1. apt-get install build-essential
  4. 增加  做为开发人员,以上步骤最后你会发现,就是为了用docker启动一个mysql,而且坑的是启动的mysql还使用的3306端口,如果以前安装了mysql,最后的make run肯定是不成功的。create db ddl:

 

CREATE DATABASE IF NOT EXISTS `mattermost_test` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
GRANT ALL PRIVILEGES ON mattermost_test.* TO 'mmuser'@'localhost';
FLUSH PRIVILEGES;

 

  1. Download Go 1.5.1 from http://golang.org/dl/
  2. Set up your Go workspace and add Go to the PATH
    1. mkdir ~/go
    2. Add the following to your ~/.bashrc
      export GOPATH=$HOME/go
      export PATH=$PATH:$GOPATH/bin
      ulimit -n 8096
      If you don’t increase the file handle limit you may see some weird build issues with browserify or npm.
    3. Reload your bashrc
      source ~/.bashrc
  3. Install Node.js
    curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -
    sudo apt-get install -y nodejs
  4. Install Ruby and Compass
    apt-get install ruby
    apt-get install ruby-dev      #增加淘宝ruby镜像 https://ruby.taobao.org/ 要不会安装不成功
    gem install compass
  5. Download Mattermost
    cd ~/go
    mkdir -p src/github.com/mattermost
    cd src/github.com/mattermost
    git clone https://github.com/mattermost/platform.git
    cd platform
  6. Run unit tests on Mattermost using make test to make sure the installation was successful
  7. If tests passed, you can now run Mattermost using make run原因如下: 

第7步失败原因:

  • 因为go会去下载相关依赖,然而国内网络是下载不了的,还好,platform下面有相关依赖,把Godeps\_workspace\src下面的所有文件copy到GOPATH/src目录下面。
  • npm下载相关依赖,很慢,添加淘宝镜像 http://npm.taobao.org/

 

未完待续。。。。。。。

 

golang Mattermost源码解读 mattermost 介绍

mattermost主要是做什么的啦,概要描述一下痛点:

在信息化,互联网化的今天,企业的聊天记录是很重要的,里面有企业的发展方向,企业的联系信息,通讯录等,一些重要的、非重要的文件都会在企业聊天通讯中出现。

当然,企业小,一些信息可能不重要,当企业的价值足够大时,一些聊天信息完全可以影响市场,影响行业时,这些信息的价值就非常重要,如何保证这些信息安全,同时有享受聊天的乐趣?

PS: 360产品经理用qq聊天,结果发现产品上线怎么都比qq晚一点,这是为什么?

mattermost就是解决以上痛点。即mattermost提供一个内部的,方便的,可回溯的聊天交流程序。

mattermost后端采用golang语言编写,前端采用React编写。

主程序代码地址: https://github.com/mattermost/platform

功能特性:http://www.mattermost.org/features/

 

 

协同办公的思考

企业协同:为什么要采用协同办公,企业协同和传统协同,与OA之间的差别,或者说有什么优势。互联网化后的企业协同,是否能真的提高生产力,是否能让员工和企业            实现双赢。

协同的分类:主要分为业务协同和行政协同,很显然企业在行政上的协同更具有共性,业务上的协同,基本上都为会出现不一致的情况(应该交由erp去解决这些差异性)。目前协同平台主要解决的还是行政上的协同,业务上的协同只有知识库,项目管理(基本上等价定义为任务分类管理)。行政上的协同:工作日志,工作日历,签到,报销等。
签到是存在问题的一个功能,员工手机不支持签到怎么办,员工没有电脑怎么办,这是一个实际存在的问题,在未来也不一定也不可能消失。这种情况必须处理,可以借助智能硬件来实现。只要引入智能硬件,后面可以做的文章和想像空间会很大。
行政上的协同,企业其实一直都存在,只不过是搬到互联网上来,确实能带给企业一些便利,但传统OA或者没有OA系统的公司也已经具有这个功能。
目前行政上的协同忽略了两个重点:人事招聘和企业宣传,企业在人事招聘和宣传上是必须的,而且是迫切需要解决的,这些功能并不复杂,而且能成为很好的盈利点。协同上面企业可能不会掏钱,但在人才和宣传上企业是找不地方掏钱。
协同搬到互联网,员工和企业的角色应该发生变化,员工展示才华的机会增加,企业更能在市场竞争中加速成长。行政协同是一个基石,把员工和企业市场化才是重点,即把员工和企业放在更大的竞技场。
目前招聘网站也只是单纯的招聘,没有过多的去介绍公司,应聘者也只能到公司商谈后才能对企业有一个很片面的了解,实际上岗后发现这公司不是我想要到,对企业和员工是一个双向的损失。如果我们能做好企业宣传和员工才能展示,可以缩短双向选择的成本,提高员工的积极性,和企业的招聘效率和招聘质量。
怎么去处理这些问题,脉脉以及海丁名片,以前还有一个公司点评,甚至于阿里最开始做的企业黄页都是在解决企业宣传和个人宣传问题。我们可以引入一个积分系统,网游化,英雄有什么样的技能,多少级就在什么样的地方练级,什么地方打怪,这样可以快速的双向成长。
通过行政上的必要性推广产品,再来做企业和员工的双向积分系统,这在本质上可以改变自上而下,也确实能提高生产效率,从而使生产力得到提高。
员工的积分系统类似于linkIn,企业的宣传和积分,类似于企业黄页。
另外一个问题是文档的管理,文档应该以文件夹分权限管理,文档启用加密机制,des加解密,算法需要设计好,因为有些文档很大,不可能全部加密 ,提取部分,随机算法加密,文档丢失,没有正确的算法也没法打开。
引入智能硬件,采用二级架构,云服务加企业内网。硬件的引入,第一个可以解决文档本地共享和存储,第二可以解决网络慢的问题,智能硬件可以做成服务器,内部沟通也可以先走内网服务器,然后再同步到云服务器,第三实现现金流。