from:  http://m.blog.csdn.net/article/details?id=45797155

前言

这是一份针对新手的服务端开发入门与进阶指南。遇到问题及时问你的 mentor 。 建议:

  • 尽量用google查找技术资料。
  • 有问题在stackoverflow找找,大部分都已经有人回答。
  • 多看官方的技术文档。
  • ibm developerworkers的文章质量整体上有保障。
  • 平时花一些时间在github上阅读优秀项目源码。

入门(1-2 个月)

  • 目标:参与简单的项目开发。
  • 技能:
    • 掌握 Java。经典的《Java 核心技术:卷1 基础知识》(或者《Java 编程思想》)必看,跳过其中的图形和 applet 章节。习惯通过 Java API Doc。为了保证代码的质量,《Effective Java》、《Clean Code》和《重构》也需要至少通读一遍。
    • 熟悉 Linux 开发环境和 bash shell。Linux 是我们的开发和部署环境,你最好尽快熟练它。Linux 的基本使用可以通过《鸟哥的Linux私房菜:基础学习篇(第三版)》学习,开发 bash shell 脚本可以参考《Linux Shell脚本攻略》。
    • 掌握开发工具
      • 熟练使用一种 IDE。Intellij IDEA或者 Eclipse 都可以,推荐使用前者。至少熟悉常用的快捷键,会 debug(包括远程 debug)项目。
      • 熟悉一种编辑器。比如 Vim/Emacs,至少学会搜索/替换/代码补全。
    • 掌握 JDK 以外的常用类库和工具包。JDK 原生 API 在很多场景下使用并不方便。你需要掌握社区贡献的优秀类库和工具包,比如 apache commons、google guava 等,具体可以翻阅《技术选型手册》的Utility 篇。
    • 掌握 Web 开发框架。我们使用 Spring(或Rose) + Ibatis(或Jade) 开发 web 服务,你需要熟练掌握它们。
    • 学习代码规范。我们大致上遵循 oracle 的 Java 语言编码规范,你可以先阅读并熟悉它。Code Formatting 文件在 git@git.n.xiaomi.com:xiaomi-commons/coding-standard.git,在编写代码之前,请把它导入到 IDE 中。另外,确认 IDE 已经安装 Findbugs 和 CheckStyle 插件。
    • 熟悉开发流程。我们的开发流程大致如下:功能开发->单元测试->功能测试->Code Review->集成测试->发布。确保你熟悉其中的每个环节。
    • 其他。需要熟练使用版本控制工具 Git(阅读:《Git 权威指南》),以及项目构建工具 Maven(阅读:《Maven实战》)。另外,在这个阶段可以尝试 TDD 开发。

进阶(2-6 个月)

  • 目标:独立负责某个服务端项目。
  • 技能:
    • 掌握 web 开发最佳实践,掌握 Restful API 设计,理解 Spring 原理。推荐阅读《Spring 揭秘》。掌握项目分层、子模块划分。推荐阅读:《J2EE 核心模式》。
    • 掌握 web 架构设计。包括 Http 反向代理,数据缓存,负载均衡,水平扩展和垂直扩展。推荐阅读:《分布式Java应用:基础与实践》。
    • 掌握关系型数据库。包括设计 MySQL 表结构,根据业务特点分表分库,基于执行计划的 SQL 分析优化,以及数据库容量规划。推荐阅读:《MySQL 必知必会》、《高性能 MySQL》。
    • 了解 NoSQL。我们大规模使用 Hadoop、HBase、Hive,同时部分项目使用 Redis、Storm。你需要学会这些工具最基本的使用。
    • 学习 web 安全知识。了解 web 前端安全问题。设计安全 web 服务,包括加解密、防伪造、防重放攻击等。
    • 掌握 Http(推荐阅读:《图解 Http》、《Http 权威指南》)、Thrift 等协议。
    • 掌握服务容量规划,性能调优,可靠性保证,以及故障处理。学习容量规划和性能调优知识,梳理业务监控点,熟练使用我们的监控报警系统。推荐阅读:《深入理解 Java 虚拟机》。
    • 其他。设计模式:从项目中学习,有时间可以看看《深入浅出设计模式》、《JDK 里的设计模式》。学习Java Socket 编程与多线程知识,可以看看《Java 并发编程实战》,并翻翻并发编程网的文章。

深入(6 个月-)

  • 目标:分布式系统和中间件开发。
  • 构建知识体系:《大型网站系统与 Java 中间件实践》、《大型网站技术架构:核心原理与案例分析》。
  • 原理与设计:《大规模存储式系统》、《UNIX 网络编程 卷1:套接字联网 API》、《How Tomcat Works》。
  • 学习开源项目:Apache Thrift、Zipkin、Netty、Rose、Jade、淘宝 RPC 系统 Dubbo 等。分析项目中的设计思路。比如,同样是RPC框架,Finagle 和 Dubbo 有什么异同。
  • 其他。根据参与的项目加深学习吧。比如,如果需要写 DSL,可以读一下《领域特定语言》,对 Redis 感兴趣推荐读一下:《Redis 设计与实现》。有两本书,无论做什么项目,都推荐读:《Unix 编程艺术》、《UNIX 环境高级编程(第3版)》。

转载于:https://www.cnblogs.com/jhj117/p/5827459.html

转: java服务器端成长指南相关推荐

  1. 数据科学家成长指南(下)

    点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 本文是数据科学家学习路径的的完结篇,算上<数据科学家成长指南(上)>和&l ...

  2. java jsp学习指南_JSP教程–最终指南

    java jsp学习指南 编者注: JavaServer Pages(JSP)技术使您可以轻松创建同时包含静态和动态组件的Web内容. JSP技术提供了Java Servlet技术的所有动态功能,但提 ...

  3. Alibaba内部Java技术成长笔记,业界良心,程序员最爱

    前言 根据数据表明,阿里巴巴已经连续3年获评最受欢迎的中国互联网公司,实际上阿里巴巴无论在科技创新力还是社会创造价值这几个方面,都是具有一定代表里的.在行业内,很多互联网企业也将阿里作为自己的标杆,越 ...

  4. 太牛了!阿里内部曝出——Java技术成长笔记,业内又一里程碑

    **1.并发编程进阶:**线程共享和协作+并发工具类实战+站在巨人肩上操作CAS+阿里面试常问的显式锁和AQS+并发容器源码解析及应用实战+仅会用线程池是不够的+架构师应该知道的并发安全解决方案+性能 ...

  5. 阿里首推 Java 技术成长笔记,业内评级“钻石级”,还不来看?

    前言 根据数据表明,阿里巴巴已经连续3年获评最受欢迎的中国互联网公司,实际上阿里巴巴无论在科技创新力还是社会创造价值这几个方面,都是具有一定代表里的.在行业内,很多互联网企业也将阿里作为自己的标杆,越 ...

  6. 又一里程碑,阿里首推Java技术成长笔记,业内评级“钻石级”

    前言 根据数据表明,阿里巴巴已经连续3年获评最受欢迎的中国互联网公司,实际上阿里巴巴无论在科技创新力还是社会创造价值这几个方面,都是具有一定代表里的.在行业内,很多互联网企业也将阿里作为自己的标杆,越 ...

  7. Java自己文章只能自己修改_文章目录Java代码俯身指南,主要为Java开发人员提供代码复审参考,快捷有效提出修改意见。目的发现代码错误:一个人写的代码可能会有一些思想和设计盲点,多个人尽...

    文章目录 Java代码俯身指南,主要为Java开发人员提供代码复审参考,快捷有效提出修改意见. 目的发现代码错误:一个人写的代码可能会有一些思想和设计盲点,多个人尽早的发现BUG. 统一代码风格:统一 ...

  8. Java工程师学习指南(初级篇)

    Java工程师学习指南 初级篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都 ...

  9. 数据科学家成长指南(中)

    点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 大家新年好呀,在< 数据科学家成长指南(上) >中已经介绍了基础原理.统计 ...

最新文章

  1. 无法在证书存储区中找到清单签名证书的解决办法
  2. 百度编辑器(ueditor)@功能之获取坐标
  3. php stream 函数集
  4. 检索图书 FindMess.java
  5. Python正则表达式之扩展语法(5)
  6. android文件导出错误—— failed to pull a selection
  7. ZOJ - 3777 Problem Arrangement(状压dp)
  8. alert点击确定后跳转_公众号/h5 跳转到小程序填坑指南
  9. ubuntu20.04安装deepin qq
  10. jzoj4669-[NOIP2016提高A组模拟7.19]弄提纲【LCA,KMP,字符串】
  11. ubuntu linux 下 adb 连接andoid 设备
  12. vs2017使用GitHub插件发布项目到github
  13. DB9,DB25,USB-A,USB-B,USB-mini,USB-typeC 接口定义
  14. 使用微软官方工具MediaCreationTool2004重装win10笔记(链接转发)
  15. summit超级计算机gpu温度,揭秘Summit:加速计算赋力全球最快超级计算机
  16. 采用晶体管作为电子元器件的计算机属于,采用晶体管作为电子元器件的计算机属于(...
  17. java孙正英_JavaSE23-函数式接口Stream流
  18. 华为推送 简介 集成
  19. 短信发送接口(短信宝)
  20. Java实验6 --模拟物流快递系统程序设计

热门文章

  1. python创建实例会调用哪些魔术方法_Python最会变魔术的魔术方法,我觉得是它!...
  2. 也谈被严重高估的安全技术
  3. Hadoop Hive概念学习系列之HiveQL编译基础(十)
  4. #pragma pack (n) 惹的祸
  5. 页面的title为乱码的话需要修改jsp页面pageEncoding=UTF-8
  6. Object类中hashCode()和equals()方法详解(附图)
  7. 创建用于 iPad 的 iOS 幻灯片应用程序
  8. ADO.NET_05_OracleDataReader
  9. 忠言多少有些逆耳,创业的九条真经
  10. 问题 H: 编写函数:求数组中的最大值 (Append Code)