但愿每一位2017殚精竭力的“Java程序猿”在2018宏图大业

殚精竭力

2017年,作得越多以为本身不会得越多,有种殚精竭力的感受。这一年在技术上的思考和实践的比较多,也大胆的尝试作了跨角色跨职能的架构。也有点什么都想作的冲动,因此反而有些事情没作好、没作精。前端

初悟编程java

这一年并无花多少时间在写代码上面,却是CodeReview的代码很多,有种跳出“不识庐山真面目,只缘身在此山中”,反而更注重代码的质量、可阅读性、可维护性。以前一直写Java,今年也写了两个月Vue,后面又写了段时间React Native ,有跨语言的对比后,对编程有种驾轻就熟的感受。git

规范程序员

命名即思想,每每是想明白需求后命名会很天然,反过来看着不舒服的命名至少说明可能存在不少问题:github

  • 职责不清楚web

  • 职责不单一面试

  • 需求理解不正确redis

  • 思想或者算法不够简洁直接算法

规范是实际上是用来解决问题的手段,而不是约束。spring

  • 增长可维护性。不须要额外再作翻译。几我的写出来的代码是同样的。虽说没有永远是对的,可是总有相对正确的写法。

  • 减小写代码的成本。不用一直在思考重复的内容。

  • 避免一些低级的debug。

  • 提高性能。

有规范的前提下,能够经过自动化的方式来解决重复的劳动。

  • IDE 的代码片断插件

  • 标准的Demo的场景

  • 代码生成器

JAVA开发规范

推荐

  • 《阿里巴巴Java开发手册》

  • 《重构》

树状编程

不少小伙伴是线性的编程方式,写一个方法,要把全部的细节放在里面。这种方式的弊端

  • 关注点过高。必须知道全部的关注点才能完成这个方法。

  • 回来不断的切换思惟

  • 若是改动一个地方,须要从头索引定位

  • 不方便协做

若是把编程方式换成树状。写一个方法,考虑同一个层次的需求点,而后在进一步细化需求点。这里比较难的是怎么判断是同一个层次的抽象。

推荐

  • 《代码整洁之道》

防护式编程

不少小伙伴是线性的编程方式,在正常的逻辑里会有各类特殊状况判断。这种弊端:

  • 在一开始写程序的时候很容易只考虑正常,而后后面随着发现问题,不断的添加各类if处理或者代码,破坏原来的结构。而后就有代码坏味道。

  • 正常的逻辑和异常、特殊的逻辑耦合在一块,思考关注点高。

防护式编程:把全部异常、特殊的状况都处理完,代码最后只考虑正常的逻辑。并且要永远认为程序是不安全的,不要人为的假设是正常的。

推荐

  • 《代码大全》

用天然的语言写代码

一直发现一个很奇怪的问题:不少人会把一个天然的需求,经过本身的加工,而后加上本身理解的算法,最后会很复杂的代码把本身弄晕了。在写复杂算法代码和复杂sql的时候特别明显。

其实需求明确后,用天然的语言转为伪代码,最后的伪代码,只是根据不一样的语言特性,纯翻译一下。

进阶Java

之前只停留在会使用Java语法的阶段。后来发如今高性能、高并发或者架构设计上的时候,只是了解语法是力不从心的。

java虚拟机

  • 内存。跟踪内存泄露,调优应用。

  • 类加载。解决类冲突。

  • 字节码。不入侵业务的添加监控。远程调试。

多线程

  • 锁。

  • 线程。

  • 异步。

力荐

  • 《深刻理解Java虚拟机》

深刻面向对象

面向对象是一种抽象简化问题思想方式。同时它经过经典的特性:封装、继承、多态来解决在面向对象抽象简化过程当中常见的问题。

漫淡面向对象——POJO对象

漫淡面向对象——算法|设计模式

漫淡面向对象——抽象问题域分析

提高面向对象的方式,多想!多想!多想!快捷提高的方法

  • 领域驱动设计

  • UML

  • 设计模式

力荐

  • 《Thinking in UML》

  • 《UML基础、应用和案例》

  • 《领域驱动设计》

  • 《Head First设计模式》

  • 《大话设计模式》

使用面向切面

是一种减小重复代码,减小关注度,下降复杂度的不入侵业务的思想方式。可让业务更简单、更专一,可以下降复杂度。好比下面的应用场景:

  • 权限判断

  • 数据聚合

  • 数据格式

  • 自定义标签引擎

  • 事务

  • 日志

  • 统计

  • 监控

  • 数据收集等

  • 缓存

这里指的并非springMVC或者应用级别。指的是整个系统的各个环节或者解决问题的思考方式。好比:有的缓存,可能会放在代理的节点再加一中间层。监控可能会放到容器级别经过代理去实现。

推荐

  • 《spirng in action》里对于AOP的描述

  • 《JavaEE互联网轻量级框架整合开发》里面对于AOP的描述

造成架构原则

其实架构自己就是一种思惟方式和能力。是对技术规划,选择,以最优的资源真实解决问题,同时又能在扩展和后续的一种平衡之术

推荐

  • 《软件构架设计——程序员向架构师转型必备》

  • 《软件架构师12项修炼》

定位问题

明确要架构的边界和要解决的问题,是架构的第一步也是很重要的一步。

能够从下面4个维护去思考,找到问题。

  • 重复。能够经过封装和自动化或者工具化来解决。

  • 关注高。经过封装和分层,流程和规范约定来解决。

  • 复杂高。经过封装工具和分层和规范约定来解决。

  • 耦合高。经过分层、分步骤和规范约定来解决。

规划

根据解决问题会有多少收益比。节约时间/花费时间:来明确作事的优先级。不要根据技术的好坏和牛逼与否。解决问题才是关键。

合理的拆分,会让后期落地更可控。

  • 水平拆分。分层

  • 垂直拆分。分步骤

迭代的思惟。一步到位和每次验证明践步伐太大,都容易形成夭折。

  • 先有再完美。

  • 伤其十指,不如断其一指。

毕竟是商业,生产环境,因此要求稳。

  • 小范围试验。通常来讲找用户容忍度高的,商业价值影响相对小的去试验。

  • 作好回退的方案或者备用方案。

设计

设计是为了把风险降到最低,对一些风险高的地方提早准备和集中解决,以避免后面落地的时候返工、甚至推翻重作。不是全部的内容都须要设计,这样就是过分设计。

开源

优先使用第三方,尽可能不要重复造轮子。直接使用开源的第三方,须要考虑下面的问题。

  • 生态(社区)

  • 先进性

  • 成功案例

  • 活跃性

  • 扩展性

  • 易用性

  • 合理性

  • 优缺点

自研

若是找不到适合的轮子。能够经过下面的方式去思考,分析,分解设计要作的事。

  • 分而治之

  • 分层

  • 分步骤

  • 职责清晰

  • 抽象、建模

  • 设计模式

  • 思想

  • 面向对象

  • 面向切面

  • 面向插件

  • 面向服务

实施

  • 质量

  • 代码质量

  • 软件质量

  • 需求质量

  • 研发

  • 核心代码

  • 算法

  • 关键节点的实现(复杂度高的)

  • 指导

  • 有现成的解决方案

验证

  • 演示是最好的办法。一来能show一下成果,二来群众的眼睛是雪亮的,发现问题的角度更不一样。

优化

在解决完问题后。还须要从易用性、扩展性去考虑。

  • 文档化

  • 文档

  • Demo

  • 易用性

  • 暴露出去须要使用者知道的参数越少越好。

  • 经常使用的一些场景对应的参数越天然赵好。不要让用户思考太多。

  • 扩展性

  • 在不须要知道太多细节的状况下,更方便的扩展

落地跨职能架构

今年一共落地前端Web(Vue),后台(SpringMVC+mybatis),混合(React Native)以及优化应用架构。每种架构对应的领域技术和须要的能力有所不一样。可是架构原则几乎是同样的。具体的后面再补充

  • 前端Web架构(Vue和React,其实抽象上是一致的,细节不太同样)。

  • 混合架构(React Native)。和前端的架构绝大数雷同,只是额外须要考虑和原生交互和移动端原生等问题。

  • 后台架构(Java和Nodejs,涉及到的领域也是同样的,细节和语法、工具、周边不太同样)

  • 应用架构。经过项目管理,版本管理,自动化持续集成等方式把一个产品以更快、最优方式转成互联网能够提供服务的服务。

  • 服务化架构。今年主要对分层职责定义,服务边界定义更明确了,数据聚合和设计,只是经过jar包的方式解决,下一步能够实践使用服务化和微服务相关的技术落地。

优化效率

多一个技能,能节省后面不少的时间,时间质量会愈来愈高。后面会专门花点时间作些这方面的专题。

办公

  • typora(markdown)

  • everything(找文件)

  • xmind(帮助思考、固化和解决问题的神器)

  • licecap(制做gif图的神器)

  • excel (在一些转数据的场景,帮了大忙,有的写sql或者程序要几个小时甚至几天的,用excel几乎几分钟内就完成)

  • ...

客户端

  • redis-desktop-manager

  • navicat

  • SecureCRT

  • ...

IDEA

  • Intellj idea

  • webstorm

  • Vim配置

  • notepad++

  • ...

开发辅助

  • jd-gui

  • fiddler

  • chorme控制台

  • beyond compare

  • ...

网站

  • github:管理知识和资源

  • 百度网盘:管理资源和软件

  • 为知:管理网文

  • doit:时间管理

  • worktile|teambition:项目管理

  • ....

了解大数据

  • 是一种分布式计算的解决方案和生态圈。

  • 和传统的数据库的建模和理解是雷同的。

  • 了解了能解决的问题,以及企业对大数据的诉求有哪些。

团队招聘

明确要招过来的人职责是什么,具体工做和定位是什么。而后就是怎么验证他们是否符合这些能力。

开放式问题

封闭的答案每每,不能体现一我的的能力并且容易是背出来的。

  • 了解知道的知识面和关注度

  • 思惟是否清晰

  • 是否真实解决过问题。

好比:如今服务一个页面访问是404,其余都是正常的,怎么公定位问题。

有价值的问题

很容易知道关注度还有就是层次。

好比去年最有价值的事,去年作过最难的事。若是面试小伙伴上来讲最难的是写统计sql,或者画ui,或者写购物车的交互难等,其实很容易看出来他实际的定位以及处于的阶段。

往下深挖三级

往下继续问三级或者连环问三个以上的问题。不用关心答案是否正确,不用去验证它。特别是在跨职业面试的时候很是好用。也能知道面试者的知识体系和掌握水平。若是最后他的问题经过三级,他的话比较接近天然语言和细节,那就说明掌握得还不错。通常来讲,要么有明确的细节,要么有明确的衡量标准。

好比:你怎么预估一个项目?(求职者会说一堆,而后说一个风险系数)继续问,风险系数你怎么确认的,有什么衡量标准?(求职者又说了一堆,而后说考虑团队的稳定性的战斗力)继续问,怎么明确团队的战斗力?

相对多彩的生活

越努力越精彩。滑雪、高尔夫、泡温泉、张北草原、攀岩、承德避暑、键盘控、文具控........有点遗憾的是陪伴家人的时间仍是比较少。主要也是由于一些事限制本身,没有明确的目标,时间黑洞比较多,因此只能用加班的方式来完成了。

宏图大业

2017年事后,有种什么感受呢——尴尬!感受高不成,低不就,后面反思了一下,仍是由于没有很扎实的迈入高端的职业生涯里,因此计划2018年沉下心来,优先攻技术。

另外愈来愈以为资源很重要,解决问题的途径并不只限于本身,能解决问题就是本事,因此想扩大圈子,也想作些本身的事,虽然我也没太想明白要作什么,可是总归仍是要开始作些。

有的时候感受本身的激情愈来愈少,一回头发现原来是由于生活

实战微服务

  • 搭建环境,熟悉相关的技术栈。

  • 用于生产环境。整理出遇到的问题。

  • 整理系列的知识体系而且固化。

但愿每一位2017殚精竭力的“Java程序猿”在2018宏图大业

实战大数据

  • 搭建环境,熟悉相关的技术栈。不涉及到具体的大数据的分析算法。

  • 用于生产环境。整理出遇到的问题。

  • 明确大数据,大概能解决什么问题场景。

  • 整理系列的知识体系而且固化。

推荐

一个挺不错的Java架构交流学习群:454377428里面会分享一些资深架构师录制的体系包括Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多:

但愿每一位2017殚精竭力的“Java程序猿”在2018宏图大业

完善应用架构

但愿真实的落地到具体的应用和生产环境中,而且完善细节。如今比较尴尬,一说都知道,有的也在用,可是没有作到极致。

技术解决方案

  • 消息队列

  • 全文索引

  • 日志系统

企业解决方案

  • 工做流

  • 权限(数据级别)

经典应用系统

  • 企业后台系统。(系统功能,功能,CMS,工做流,以及一套完善的后台框架)

  • 代码生成器

扩大圈子

越作到后面,愈加现若是想本身作事业,就越须要资源。

  • 好友

  • 校友

  • 同事

  • 特定群体(同乡、同行等)

营销自我

一来对本身的知识和成长有一个持续性的积累,减小由于时间的折损。二来增长本身的影响力和资源。三来促进本身知识成体系,摆脱野生程序员的窘境。

  • 博客(网站)

  • github(知识管理和更新)

  • 平时的积累和总结,系统出视频。

出国旅游

世界这么大,想出去走走。须要更明确的预算和计划

健康身体

  • 减肥。也是今年的一个遗憾,都减下来了,又由于一些事情反弹上去了。主要仍是要保持一个良好的心情和合理的饮食和生活习惯。

  • 看病。拒绝安慰本身,有不舒服的都去看看,而且支持把小毛病看怎么处理下。好比原来的牙疼哈。

  • 锻炼身体。一周去二到三次健身房,二周到户外作的有氧运行。

赚钱

今年的目标是能存50W以上的大洋。以便明年能在北京安个家

相关文章
相关标签/搜索