Java Web研发工程师新手入门指南

本文简要介绍了作为一名Java Web研发工程师,需要具备的一些主要技能和常用的工具,有志于从事该工作的新手可以做一个参考。

一、基础工具篇

  1. 常用IDE:IntelliJ IDEA、Eclipse或者MyEclipse
    这三种IDE都是比较常用的集成开发环境,本人也都使用过,其中Eclipse和MyEclipse之间差异很小。个人推荐IntelliJ IDEA,因为感觉在易用性和对第三方插件的支持等方面都略胜一筹。IntelliJ在业界也被公认为是最好的Java开发工具之一。使用过Eclipse或者MyEclipse的人在开始使用IntelliJ时会有些不习惯,建议百度搜索一些关于这两者差异对比的文章,有助于快速上手IntelliJ IDEA。IntelliJ教程:IntelliJ教程

  2. 版本控制系统:Git
    版本控制对于团队合作开发来说,其重要性不言而喻,但作为一个普通的研发人员,没有必要去深抠Git的详细技术原理,知道其常用的功能即可。这里强烈推荐这篇非常通俗易懂的教程:Git教程。能够熟练掌握这个教程中的技能,参与公司开发基本上就够用了。

  3. 项目构建管理系统:Maven
    Maven工具在java开发中的重要性也是无需多言,它使得我们可以方便统一地管理我们系统所依赖的各种jar包,简化我们开发、编译、测试和部署等工作。和Git类似,Maven工具的技术原理无需深抠,但常用的功能需要会用。

  4. Web应用服务器:Tomcat
    我们开发的Web应用需要部署到服务器上,才能被用户访问到,而Tomcat是一个常用的免费的轻量级应用服务器,其server.xml中的配置功能需要掌握。

  5. 本地Host切换工具:SwitchHosts
    SwitchHosts是一个免安装的绿色小工具,可以很方便地修改本地的host文件,以达到切换访问目的ip的作用,是研发人员常用的工具。

  6. Nginx/OpenResty
    Nginx/OpenResty在网站系统中常常作为反向代理工具,在本地进行系统开发的时候,常常和SwitchHosts配合使用,以达到调试代码的目的。

  7. Fiddler/Wireshark/charles
    做网站开发有时候难免需要抓取网络流量,查看请求参数,这时,这些网络抓包工具就派上用场了。本人只使用过Fiddler和Wireshark,其中Wireshark功能更强大,不过使用和对抓包结果的解读也相对复杂,个人觉得Fiddler已经完全够用了,而且Fiddler还可以作为代理服务器,抓取手机或者其他移动设备的流量,而wireshark却需要另外下载安装Connectify工具。另外,Fiddler的使用也是非常容易的。

  8. Google浏览器及PostMan
    不要惊讶,Google浏览器对于普通人来说,他只是一个浏览器,而对于研发人员来说,他不仅是一个浏览器,更是一个非常重要的研发工具。Google浏览器可以查看网页源码、查看请求及服务器响应数据、可以调试JavaScript代码、还可以模拟各种移动设备。而PostMan也是一个很重要的工具,可以用来模拟各种请求。

二、架构篇

  1. 经典SSH架构
    SSH就是指的Struts、Spring和Hibernate,当然Struts又分为Struts1和Struts2,这两者之间其实差异不小。当然,现在其实互联网企业完整地使用SSH作为系统架构的已经很少了,更多的情况是,只使用其中的部分框架,如只使用Spring。不过这个架构对于理解Java Web系统的架构还是非常有价值的。所以,不一定要去深究每种框架的具体细节,但至少要知道每个框架在SSH这个架构中扮演的角色。
  2. SpringMVC
    SpringMVC的作用和Struts在SSH中的作用是相似的,根据公司需要进行学习。
  3. ibatis/myBatis
    ibatis/myBatis的作用和Hibernate在SSH中的作用类似,不过两者的差异很大,根据公司需要进行学习。
  4. velocity/freemarker/jstl
    velocity/freemarker/jstl是Java模板引擎,笔者只接触过velocity和freemarker,不过这类模板引擎都差别不大,会一种其它的都比较容易学。

三、实战篇

  1. 数据库:Mysql/Oracle/Redis/Memcache/MongoDB
    Mysql和Oracle作为传统的关系型数据库,其基本的增删改查操作必须要会,Redis/Memcache是近些年流行起来的NoSQL数据库,两者都属于内存型的数据库,常用作数据库的缓存。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的数据库产品。这些数据库在很多互联网企业中都有使用,需要掌握。
  2. 虚拟机性能调优
    虚拟机性能调优是服务器开发的一个非常重要的工作。作为一名Java Web研发工程师,需要具备以下两方面的知识:第一,对Java虚拟机的内存结构要非常清楚;第二,熟练使用Java虚拟机自带的jstat、jmap和jstack等常用的性能调优工具,这些工具都在Java安装路径的/bin/下。其中jvisualvm.exe是一个可视化的工具。
  3. 网络通信协议:TCP/IP、Http和HTTPS
    TCP/IP协议的重要性不再强调,其中http和https协议看似简单,但实则包含了非常丰富的知识,需要花很长时间来慢慢积累。其中,个人觉得,http和https都涉及到的一个重点就是缓存,缓存包括浏览器缓存、CDN缓存等。另外,关于https的原理和实现相关的详细知识,本人写过一篇通俗易懂的博文,有兴趣的可以参考:RSA算法原理及其在HTTPS中的应用
  4. CDN
    CDN也是一个非常重要的内容,关于CDN的介绍,参见这篇博文:CDN网络原理
  5. 虚拟Ip:VIP
    vip技术也是互联网公司常用的技术,作为Java web研发工程师,需要有所了解。
  6. 远程调用RMI
    远程调用技术也是java Web研发人员必须要掌握的一个概念。具体参见以下博客:
    远程调用原理与示例
    RMI详解
    RMI框架
    stub和skeleton的简单实现
    尤其是最后一篇博文,非常浅显易懂地讲解了RMI的思想,一定要看。
  7. 负载均衡相关
    关于负载均衡相关知识,推荐以下博文:
    Nginx/LVS/HaProxy负载均衡对比
    lvs、haproxy、nginx负载均衡比较分析

原创不易,如果你觉得本文对你有帮助,希望你能支持一下~

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值