2018.1.1

2017已过去,做成了几个事情,熬过了一些时间,普普通通慢慢开窍的一年。
新的一年,定几个小目标。

工作

  • 简单来说,就是上一个台阶,量变到质变。工作6年多,项目、经验、技术、技巧、沟通、认识都有了一定的积累,18年不能再简单局限于项目架构设计和功能开发,技术深度和广度,都要提升。对于产品的功能、技术创新带来的价值,要有新的认识。
  • 以前都只简单关注了Java相关的技术,对整个技术生态了解不多。现在环境氛围不错,有这样的机会就要多主动找其他技术同事聊聊。
  • 现有的项目持续的不断完善。完善各个环节的业务数据记录,建立异常数据监控模型,提升平台审核效率,输出有效有参考有指导的结果报告。要相信,技术永远可以不断升级,让系统做得更好。

财富

  • 关于房产。17年最重要的事情,是了解了水库,刷新了一遍财富三观。对房产的认识,终于从一个三不知小白,进阶到一只脚跨入门槛。18年会持续关注房产,有合适的机会就买个房,一直在准备。
  • 关于股票。17年大行情不错,7月份的时候做了点股票投资,虽然前面谨慎导致赚得不多,但也算是一点成功经验。赚了钱的好处很多,比较重要的一个就是不会再对一点小钱耿耿于怀。还有就是能承担的风险大了点,敢于投资,大不了赢的输回去。但是控制风险,不激进依然是第一原则。
  • 关于比特币。发展太快了,要花很多时间去学习和跟进才能避免做最惨的韭菜。风险很大,但是里面的机会确实很多,而且我也相信区块链的技术,未来大有可为。因为相信所以看见,因为相信所以敢投资,因为相信所以坚守,最后才能获得比较不错的收益。18年的一个思路是,投资一小部分钱,跟随群里面的大神操作。亏了也无所谓,可以认识一群土豪朋友,而且他们的财富观念、投资方式、操作手法,有很多可以学习的地方。

健康

  • 把早睡早起的习惯找回来。17年的状态之差,堪比16年,连续几个月的失眠,真的是要了亲命。导致工作中这最关键的两年没有把握好,错过了很多机会。
  • 睡眠习惯,慢慢改善。健身习惯,逐渐养成。18年,依然定一个有四块腹肌的目标。

专注

  • 昨天晚上跨年,朋友说我有个优点也是缺点,就是兴趣太广泛不够专注,导致最终产出少。细想一下是有这个问题,虽然我已经放弃了很多东西,但是花心思的地方还是有不少。
  • 一生做好一件事就已经足够,精于此道,以此为生。18年要花更多的时间和精力提升技术实力。

Git实践

分支

git branch 查看所有分支
git branch v4.4 创建v4.4分支
git checkout v4.4 切换到v4.4分支

主干合并分支代码
git checkout master
git merge branch_name
主干合并分支某个commit代码
git checkout master
git cherry-pick commit_code

分支合并主干代码
git checkout branch_name
git merge master

获取远程分支
git checkout -b v2.0 origin/2.0

删除分支
git branch -d branch_name
删除远程分支
git push origin --delete branch_name
本地分支关联远程分支:
git branch --set-upstream-to=origin/newconfigcenter newconfigcenter

提交

git commit
git commit -m "提交注释"
重新提交
git commit --amend
增补提交
git commit -C head -a --amend

撤销回退

撤销commit
git reset --hard <commit_id>
撤销文件add
git reset HEAD <file>

reset命令有3种方式:
1:git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
2:git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
3:git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容

跟踪

取消对已纳入git版本管理的文件跟踪
注:该命令只能取消提交到暂存区之前的文件,可以先用git reset <文件名>将暂存区的文件回退到暂存区之前,然后再取消跟踪。或者使用git checkout恢复到git最近一个版本。
git update-index --assume-unchanged <取消跟踪的文件>
git update-index --no-assume-unchanged <撤销取消跟踪的文件>

FAQ

【FAQ】git merge 后 push 到 Gerrit 失败,提示 no new changes ?
需求:Git 分支合并
问题:使用 git merge 在本地执行分支合并操作,然后想 push 到 gerrit 上评审入库,可是在提交时,提示:
! [remote rejected] HEAD -> refs/for/dev (no new changes)
分析:no new changes 的意思,是说,这个合并,是个线性的合并。而合并的那些历史的 commit 节点,在 gerrit 上都已经评审过了,都是已有的 change 单,所以 gerrit 认为没有新的提交,就不让你提交评审。
方法1: 在 git merge 的时候,加上 --no-ff 参数,是为了让它生成一个新的 commit,这样就可以提交了~(不过生成的 gerrit change 是看不到改动信息的):git merge --no-ff v4.5  或者 git merge branch_name -m "分支合并"
方法2:不经过 gerrit,直接 push 入远程库。(不推荐)

【FAQ】$ gitdir=$(git rev-parse --git-dir); scp -p -P 12345 longchaoqun@smartgit:hooks/commit-msg ${gitdir}/hooks/    返回结果:Either -f or -t option should be set
解决:直接从服务器上下载http://smartgit/gerrit/tools/hooks/commit-msg, 把commit-msg文件放到.git/hooks目录吧

【FAQ】git pull之后,merge了最新一个commit版本,但是没有changeId。
解决:重新提交后再push。git commit --amend  ; git push

程序员的时间都去哪儿了?

三年的、五年的、八年的程序员,他们的时间都去哪儿了。
初级工程师、高级工程师、架构师,他们的时间都去哪儿了。
技术总监、CTO,他们的时间都去哪儿了。

一个项目的开发流程大体如下:

  1. 需求收集,自研,竞品分析;
  2. 策划评审,需求讲解,业务答疑;策划修改,策划评审;
  3. 产品UI设计,出图;UI评审;UI修改,UI审评;
  4. 和3并行,前端框架搭建,基础组建研发,基础模块编写;后端数据模型设计,前端接口定义;
  5. 前端业务页面开发,后端接口测试;前后端接口联调;
  6. 和3、4、5并行,后台框架搭建,基础功能研发,通用模块编写;后台业务功能开发;
  7. 优化:接口性能优化、数据库优化、框架优化(统一标准化)、功能完善化,是系统具备更强大的能力。

一个普通开发程序员,日常的主要工作内容:

  • 写业务代码;
  • 解决线上问题:没有测试出来的隐藏bug、线上异常数据问题、运营后台使用疑问、接口性能问题;
  • 解决测试中问题:转测时解决测试人员提出来的bug;
  • 会议:参加策划评审会议、参加测试用例评审会议、参加项目例会、参加小组例会、参加部门会议;
  • 沟通:和产品、运营确定不明确的需求;和开发协作,如接口联调,公用代码等;
  • 百度、Google问题解决方法;
  • 查看IT科技新闻;
  • QQ群聊技术、扯犊子;
  • 刷朋友圈、公众号、即刻热门;
  • Linkedin好友申请处理和申请加好友;
  • 写总结:项目总结、技术总结;
  • 处理公司OA日常邮件,跟进项目进度;

不重要的事项,可优化的地方:

  1. 查看IT科技新闻;——每天半个小时左右
  2. QQ群不间断的撤犊子;——每天半个小时左右
  3. 多项执行事项切换,投入不能连续,导致效果不够理想;——每天半个小时左右

需要优化的地方:

  1. 强化总结输出结果,为后续写公众号、写技术博客文章;
  2. 每天早上确定当天要做的最重要的三件事情;

记忆中的下午

window.jpg

记忆中总有几个这样悠闲的下午,轻松愉悦,脑子特别清晰和活跃,想事情非常快。

依然还记得九年前大一那个熟睡的下午,被电话吵醒后,坐在宿舍床上看着窗外的阳光,美好,憧憬未来还带点小忐忑。一如现在。

是的。依然相信未来会是美好的。

2015总结

Happy New Year

2015飞快的就过去了,忙忙碌碌不停歇,做了一些事情,认识了一些人,总的来说,还算满意。

在走秀呆的这一年,接手了几个项目,负责了秀客社区的后台开发,个人技术和经验提升不少,重要的是了解了互联网产品的开发模式和流程。

认识了不少靠谱的小伙伴,还是蛮开心的,重要的是认识了茜茜,以后不再有后顾之忧和其他烦恼,只需一往无前。未来还是很有希望的嘛~

2015买了几本书,看得差不多了,收获不少,希望2016年继续保持。
书单:《三体》、《把时间当作朋友》、《京东技术解密》、《大型网站技术架构》、《构建高性能Web站点》


2016年的计划:

  • 工作:上一个新的台阶,加深对互联网行业的理解,自己要有对未来趋势的看法。
  • 技术:熟悉一些大数据及爬虫相关技术,Java相关的技术持续精进。
  • 书籍:《必然》必看,其他技术类的书籍三本。
  • 锻炼:公司有健身房,以后每天晚上锻炼45分钟,每天九点多下班。
  • 家人:多联系多关心多打电话,和老爸再去旅游一次。

下载老版本JDK

JDK的不同版本,很容易导致工程编译和启动报错,特别是项目里面没有统一使用某一类的第三方包,版本冲突等导致工程启动时各种异常。

Java有时候竟变成了一处编译,到处调试的情况,所以最好是组里面所有人统一使用同一个版本的JDK和第三方包。有了maven之后好了很多,但如果管理不善还是会出现这样的问题的。

JDK的老版本如1.6 1.7的下载地址很难找,今天给组里面的人搭环境的时候,也遇到了这种问题,没有找他们要安装包是因为他们都是linux环境,现需要搭建一个新的windows开发环境。

下面是JDK 老版本的下载方式:

  1. 根据jdk版本,在google搜索关键字。如:jdk 1.7.0_65,搜索 JDK 7u65
  2. 点击 Java Archive Downloads 链接(一般是第一条结果),在新页面选择对应的版本 Java SE Development Kit 然后下载
  3. 注意下载版本:linux | windows、i586(32位) | x64(64位) | ia64(inter的一种,与x86-64不兼容)

刚发现百度经验上有一篇介绍,也很方便。地址:如何在官网下载java JDK的历史版本

《把时间当作朋友》

maketimetofriend-208x300.jpg

简评:
不同于一般的时间管理和励志的书,书中的例子很贴近我们这一代人的生活历程。关于坚持和积累,关于思辨,关于认清现实和    改变自我,都有深刻的领悟。
真的是值得多读几遍的。

《把时间当作朋友》部分内容摘录:

  • 所有高级特工都明白一个简单的原理:任何动作演练到一定次数,就能准确完成——甚至是在无意识的情况下,而他只不过是把这个原理应用到了极致而已。
  • 很多时候,人们的善良出自于软弱,而他们的残暴只不过来自于恐惧。
  • 不知道“政府”与“国家”之间区别的人,往往难于沟通——轻易不要与之交流,否则你可能会因此麻烦不断、祸患无穷……
  • 如果一个人是正确的,他的世界就会是正确的。
  • “强”与“弱”才是自然界中真正存在的本质,“善”与“恶”往往只是弱者一厢情愿的定义。
  • 即便是一只坏掉不走的表,一天之中起码还能对两次呢。
  • 为了让自己听得更有效率,我们要牢牢记住这个简单而又实用的原则:就算需要质疑,也一定要等到对方把话说完。
  • 既然坐在那里,“听而不闻”就是浪费自己的时间。
  • 通过努力、通过积累成为能说更多话的人。
  • 知无不言,言无不尽,百人誉之不加密,百人毁之不加疏。
  • 任何观念都是平等的。(All ideas are equal.)
  • 是要做快乐的猪,还是痛苦的苏格拉底?
  • 人生苦短,如果成功太慢,那么幸福必然减半。
  • 集中精力改变那些自己能够改变的事情,暂时忽略那些自己不能改变的事情。
  • 真正的关心最终只有一种表现:为某人某事心甘情愿地花费时间,哪怕“浪费”时间。
  • 凡是值得做的事情,都值得慢慢去做,做很久很久。
  • 亚伯拉罕·林肯曾经说过:“男人要为自己40岁之后的长相负责。”一个人过了一定的岁数之后,长相其实不那么重要了,甚至会被另外的东西完全代替——表情和神态。表情和神态是一个人内心的折射,几十年的积累足以使一个人的内心变得“不俗”,于是,表情也就跟着“从容”,神态也跟着“睿智”。

一些设计资源网站

博客:

设计资源

分享演讲PPT

每次听完别人的技术分享以后,总会想着去要一份PPT,绝大部分人都很乐意分享他们辛辛苦苦做的PPT。但要PPT的时候经常遇到这样的情况:留下自己的邮箱他把资料发过来,或者让你记录一个下载的网址,自己去下载。


可不可以做得更好一点呢?如果演讲者乐意分享自己的PPT,那么演讲之前或者演讲之后,PPT上展示一页:演讲主题,以及一个二维码和一个容易记的网址。

扫描二维码后手机浏览器会跳转到一个页面,输入自己的邮箱,点击确定,本次演讲的相关资料就会发到你的邮箱。
如果会场较大,距离较远的人扫不出屏幕上的二维码,可以通过直接输入网址进入页面,然后输入邮箱获取资料。
如果手机没有网络,也可以照一张照片,把演讲主题以及二维码和网址拍下来,会后再去获取资料。

这个功能或者工具,百度云可以做,资料上传上去,然后分享出去时候生成这个页面。
活动行可以做,活动举办者需要收集演讲的相关资料,可以把资料的链接地址放入活动介绍页面。


如果要再好一点呢?演讲者一般会有个相关的公众号,公司的或者活动举办方的,通过关注公众号获取演讲相关资料。
或者现场建个微信群,通过微信群发送资料,也方便与会人员交流和结识,扩大和延伸活动影响力,微信群里面抢红包等等。上次devstore2.0的活动便是如此,效果还是不错的。