Java架构互联网科技程序员

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

2018-01-19  本文已影响74人  Java架构

殚精竭力

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

初悟编程

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

规范

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

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

有规范的前提下,可以通过自动化的方式来解决重复的劳动。

JAVA开发规范

推荐

树状编程

很多小伙伴是线性的编程方式,写一个方法,要把所有的细节放在里面。这种方式的弊端

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

推荐

防御式编程

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

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

推荐

用自然的语言写代码

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

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

进阶Java

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

java虚拟机

多线程

力荐

深入面向对象

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

漫淡面向对象——POJO对象

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

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

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

力荐

使用面向切面

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

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

推荐

形成架构原则

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

推荐

定位问题

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

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

规划

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

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

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

毕竟是商业,生产环境,所以要求稳。

设计

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

开源

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

自研

如果找不到适合的轮子。可以通过下面的方式去思考,分析,分解设计要做的事。

实施

验证

优化

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

落地跨职能架构

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

优化效率

多一个技能,能节省后面很多的时间,时间质量会越来越高。后面会专门花点时间做些这方面的专题。

办公

客户端

IDEA

开发辅助

网站

了解大数据

团队招聘

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

开放式问题

封闭的答案往往,不能体现一个人的能力而且容易是背出来的。

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

有价值的问题

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

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

往下深挖三级

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

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

相对多彩的生活

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

宏图大业

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

另外越来越觉得资源很重要,解决问题的途径并不仅限于自己,能解决问题就是本事,所以想扩大圈子,也想做些自己的事,虽然我也没太想明白要做什么,但是总归还是要开始做些。

有的时候感觉自己的激情越来越少,一回头发现原来是因为生活

实战微服务

image

实战大数据

推荐

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

image

完善应用架构

希望真实的落地到具体的应用和生产环境中,并且完善细节。现在比较尴尬,一说都知道,有的也在用,但是没有做到极致。

技术解决方案

企业解决方案

经典应用系统

扩大圈子

越做到后面,越发现如果想自己做事业,就越需要资源。

营销自我

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

出国旅游

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

健康身体

赚钱

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

上一篇 下一篇

猜你喜欢

热点阅读