实战解析—论三年内快速成长为一名技术专家

本文首发于GitChat。2017年9月11日,周一晚上8点30分。支付宝架构师,《JAVA并发编程的艺术》作者,10年+软件开发和架构经验,并发编程网创始人清英带来了主题为《如何在三年内快速成长为一名技术专家》的交流。以下是主持人飘静整理的问答实录,记录了作者和读者问答的精彩时刻。

问:工作中,有时候实现一个功能,会去看有没有现成的轮子可用。对于重复造轮子与改造轮子有什么看法?

答:一定会的,其实这也是一个提高技术能力的方法,比如今天想做个日期转换的功能,JDK8有日期的新特性就会考虑直接使用LocalDate.now().format(DateTimeFormatter.BASICISODATE),以前都是自己写个DateUtils。

如果已有的轮子不满足需求,我觉得可以基于已有的轮子进行改造,提供更多的特性。

在写代码的过程中,永远要思考的是现在业界的技术方案是如何做的,

现在的方案有什么优点或缺点,我能不能直接使用,不能使用的话,是否优化后可用,当然用的时候要了解它的实现原理,做到知其然知其所以然。

阅读全文

软件架构模式-第二章事件驱动架构(上)

原文地址  译者:克里斯托刘

事件驱动架构模式是一个非常流行的异步分布模式,可生成高可扩展性应用。而且它也具有强适应能力,可被用于小程序或者大型复杂程序。事件驱动架构是由高耦合度、单一目的的事件处理模块构成,这些模块异步接收、处理事件。

事件驱动架构模式有两种主要拓扑结构,“调度员”(mediator)和“经纪人”(broker)拓扑结构。“调度员”拓扑结构通常用在一个事件中由多个步骤组成,而你需要通过中央“调度员”模块去调度这些步骤。然而“经纪人”结构是当需要执行一系列事件链,而不需要中央“调度员”模块。由于这两种结构的特征和执行策略不同,深入理解两者的用法能帮助你在自己的案例中做出正确的判断。

阅读全文

《阿里感悟》如何在三年内成长为一名技术专家

工作前三年是职业生涯中成长最快的几年,在这段时间里你会充满激情,做事专注,也容易养成良好的习惯。在我们公司有些同学在前三年中就快速成为某一个领域的技术专家,有些同学也可能止步不前。本文和大家一起探讨下如何在三年内快速成长为一名技术专家。

学习方法

  • 1:掌握良好的学习心态
  • 2:掌握系统化的学习方法
  • 3:知识如何内化成能力
  • 4:广度和深度的选择

实战技巧

  • 1:你需要学会的编码习惯
  • 2:在业务团队做开发如何成长

阅读全文

软件架构模式-第一章分层架构(下)

原文地址  译者:克里斯托刘

模式实例

为更好描述分层架构怎样工作,考虑一个业务从业人员获取特定目标用户信息的需求,如图1-4所示。黑色箭头标志一路下到数据库的获取用户数据的请求流向,而红色箭头显示从下往上直到显示数据的屏幕这一数据反馈流向。在这个例子中,客户信息包含客户数据及订单数据(用户下的订单)。“用户屏幕”负责接收查询请求和显示用户信息,它并不知道数据在哪里、如何获取它、有多少数据库表格需要查询才能满足查询请求。一旦“用户屏幕”接收到查询客户信息的请求,它接着传递请求到“用户代理”模块。这个模块知道业务层中哪个模块可以处理该请求,同时知道如何调用该模块、传递哪些参数给该模块。业务层中的“用户类”负责收集所有业务请求需要的信息。该模块调用持续层的“用户数据访问接口”(Dao data access object)模块获取用户数据;调用“订单数据访问接口”模块获取订单信息。这些模块接着执行SQL语句去获得相关数据,再传递回业务层的“用户类”模块。一旦“用户类”获得数据,它会收集订单和用户信息两块数据同时传递回“用户代理”模块,“用户代理”模块继而传递数据回“用户屏幕”呈现给使用者。

阅读全文

《Maven官方文档》配置默认Mojo扩展

原文链接 译者:carvendy

配置默认Mojo扩展

在这么多例子中,你需要配置一个插件,这里有两个选项生效:插件级别配置配置和执行级别配置。插件级别配置是很多公共方法配置的插件,将用于命令行,是定义作为默认的生命周期,或者使用一个公共配置在所有调用。事实上,为了指引从命令行调用,插件级别配置已经是历史上唯一的选择。

在另一方面,例子中一些先进的构建进程需要一些mojos的执行同样的mojos,也有不同一些来自于单个插件使用了不同的配置,执行级别配置是很常用的。这些例子通常涉及的插件是介绍作为一部分的标准构建进程,但是这里目前不是在默认生命周期的特别打包。在这些用例,通常配置分享不同执行,是依然指定在插件级别的配置。 阅读全文

《Hibernate快速开始 – 4 – 使用JAVA持久层 API (JPA)教程》

章节目标
  • 使用JPA EntityManagerFactory
  • 使用注解提供映射信息
  • 使用 JPA 接口

阅读全文

《Hibernate快速开始》翻译邀请

久违的Hibernate是一个耳熟能详的框架,本月并发网组织翻译《Hibernate快速开始》和《Hibernate用户指南》,为了鼓励和奖励译者翻译文章,并发网允许译者在文章末尾放赞赏。

阅读全文

Java面试题-基础知识

本文来源于清英的一篇文章:你应该知道的JAVA面试题,最近自己也在面试一些候选人,发现这篇文章中的有些点我也拿不准,因此按照自己的理解整理一份参考回答。

阅读全文

JDK8中新增原子性操作类LongAdder

LongAdder简单介绍

LongAdder类似于AtomicLong是原子性递增或者递减类,AtomicLong已经通过CAS提供了非阻塞的原子性操作,相比使用阻塞算法的同步器来说性能已经很好了,但是JDK开发组并不满足,因为在非常高的并发请求下AtomicLong的性能不能让他们接受,虽然AtomicLong使用CAS但是CAS失败后还是通过无限循环的自旋锁不断尝试的

阅读全文

《Maven官方文档》Maven 文档风格指南

原文链接 译者:carvendy

Maven 文档风格指南

哪里来的风格?

文档风格指南被创建与在我们很多的文档一致性和还应用最佳实践的文档。标准已经开始和将会随着时间不断扩大基于这个建议到Maven 开发邮箱列表。社区就默认应该写他们自己的文档。

不是每一个规则都只指南里,一个动机作为它存在的原因。引用扩展源码是被鼓励的。 阅读全文

《Maven官方文档》HttpClient HTTP提供者的先进配置

原文链接   译者:carvendy

HttpClient HTTP提供者的先进配置

  • HttpClient HTTP提供者的先进配置
    • 注意Maven版本和可用性
      • Maven 2.2.0
      • Maven 2.2.1
      • Maven 3.0.4
    • 介绍
    • 基础
    • 配置 GET,HEAD,PUT,或者全部。
    • 你的HTTP头的控制
    • 微调HttpClient参数
      • 非字符串值
      • 例子:使用先发制人的认证
      • 忽略Cookies
    • 支持通常提供者配置标准
      • HTTP头
      • 连接超时
      • 读超时
    • 资源

阅读全文

应届生JAVA技术面试题

应届生面试是一个非常困难的事,虽然我经历社招面试多年,但是当我第一次面对应届生面试时却是小白。首先,应届生简历非常多,如何能在这么多简历中找到合适的人,但是又不遗漏优秀的人呢。其次,应届生招聘不像社招,你无法通过技术深度和开发经验来判断一个人的能力和潜力。最后,如果你的提问,应届生有一部分能回答出来,有一部分不能回答出来,他是过还是不过呢?
我主要围绕着几点进行考核,扎实的基础能力,优秀的学习和思考能力,一定的实战能力。优秀学校的学生基础能力都不差,实战能力或多或少也都有,所以优异和普通的差距主要体现在思考能力和学习能力上。

阅读全文

JDK8中StampedLock原理探究

StampedLock是并发包里面jdk8版本新增的一个锁,该锁提供了三种模式的读写控制,三种模式分别如下:

阅读全文

你应该知道的JAVA面试题

经常面试一些候选人,整理了下我面试使用的题目,陆陆续续整理出来的题目很多,所以每次会抽一部分来问。答案会在后面的文章中逐渐发布出来。

阅读全文

《Apache Hive官方文档》首页

原文链接  译者:BJdaxiang

Apache Hive是一款数据仓库软件,通过SQL使得分布式存储系统中的大的数据集的读、写和管理变得容易。用户可以使用自带的命令行工具和JDBC驱动用来连接Hive。

阅读全文

return top