Java程序员进阶指南:掌握分布式系统与RPC框架的关键知识

其他,包括通用框架、设计模式、面向对象

Java程序员进阶指南:掌握分布式系统与RPC框架的关键知识

初级程序员知道这些就可以写项目了。后面遇到的问题会复杂很多,取决于各种经验和知识的积累。

除了需要掌握的20%之外,还应该掌握哪些知识才能游刃有余。先说一下我接触过(用过)的东西。

Java以其丰富的分布式应用生态系统而闻名,它也无法逃脱分布式系统中的CAP决策。尽早了解一些分布式一致性协议paxos、raft等。学习zookeeper的原理和使用场景(元数据、分布式锁、leaderEletion...等)

RPC框架在SOA架构中扮演着重要的角色。仔细探索是有好处的。这里推荐阿里巴巴的dubbo框架,还有netty、mina等网络库。

Hadoop系列Storm Spark等离线实时计算框架

ElasticSearchSolrCloud分布式搜索ELK日志相关的东西对这些比较敏感。当然,在更多场景下使用ES还有很多种方式。

消息队列 kafkaMetaQ RabbitMQ 嗯,昨天ZeroMQ(不完全算MQ)的作者选择了安乐死。愿天堂没有痛苦。

然后就是各种基础知识,编程语言,网络方面,数据库,数据结构和算法。不要以为你精通其中任何一项。我敢说知乎上精通的也有几个。

我们来谈谈你的感受吧。当你第一次开始工作时,你不应该能够独立启动新项目,但他们应该能够跟踪正在开发的项目。

学会使用eclipse、svn等IDE和工具(不用说,主要看你工作的地方,比如你用eclipse就可以用IntelliJ IDEA,但是刚开始的时候肯定不会明白很多这个时候就别标新立异了,当然,你是IDE高手,请忽略。)

我刚入职,还没有接触到核心工作,所以就让我先改一下页面。作为 Web 开发人员,您不需要精通 HTML、CSS 和 JavaScript。您至少需要了解用法和语法。虽然有前端工程师,但你也必须明白这一点。 (我公司的每个小项目团队都被迫成为一个完整的堆栈)。 JavaScript其实很强大,但是一开始不需要写得很深。可以使用的轮子有很多,比如easyui。可以查看官方文档,知道如何嵌入到网页中,然后后台就可以按照格式将数据传输到前台。

然后我开始逐渐写后台,熟悉设计模式。如果太多,难以理解,可以先了解工厂模式,写一个接口,然后用一个或几个实现类来实现该接口。当需要使用时,根据自己的需要确定用途。哪个实现类。 (一开始不太明白这么复杂的做法有什么用,但是自从上一个项目的数据库从Oracle换成了MySQL之后,我知道其实还是很有用的。)一般都是用设计模式在项目开发中。如果你不明白,你可能就想不通。没有办法从整个项目的结构入手。

不同的公司使用的框架不同,但是Struts和Spring用的还是比较多的,所以熟悉这两个东西比较好。否则,你可能连整个项目的结构都不知道。别说是你自己写的,连修改都可以。很难上手。比如如何配置项目跳转以及哪个配置文件代表什么。 (我在本地开始运行该项目后,连主页在哪里、进入哪个文件都不知道,一直寻找index.jsp,才发现这个项目是用FreeMarker做的,是一个FTL文件)

对于web项目来说,操作数据库是必不可少的。我做的项目没有使用hibernate,主要是使用StringBuffer来拼接SQL。如果你从事Web开发,还是需要熟悉SQL。

我觉得那些做Web项目设计高级算法的人可能只有在做了更深入的工作后才会遇到它们。它们更多的是对字符串和数值格式的操作,比如如何从后台的数据库中提取数据显示在前台,以及如何存储用户输入的数据。入数据库,所以最好熟悉字符串的操作,拆分合并,String转换为float、int等,日期格式等。

如果公司有专业的运维,服务器部署就交给他们吧。如果不会,最好学习一下远程连接,Linux、tomcat等的一些简单命令。

20%我不知道怎么理解。接下来我会列出这些年来我工作中经常用到的技术。

html、CSS

java的工作原理(jvm)

Java语法、数据结构和算法

Java语言特性(封装、继承、多态、抽象)

Java设计模式(开发中经常使用)

Java反射机制(常见框架都会使用反射机制)

io(文件读写)

多线程

网络编程

javascript

jQuery

数据库(oracle、mysql等)

小服务程序

数据库连接

爪哇豆

WEB项目分层架构

前后交互

阿贾克斯

过滤器及过滤原理

常用框架(Struts、hibernate、spring、springMVC、i/mybatis)

框架整合

Workflow(流程引擎工作机制)

xml、属性、json

常用页面及后台插件(tree、time、poi等)

nosql数据库及应用场景(mongoDB)

缓存数据库及机制(redis、memcached)

第三方接口调用

软件开发工具包

Web 应用服务器(tomcat、weblogic)

操作系统

日志

数据库连接池

行家

SVN

建模工具的使用(powerdesiner、axure)

TCP/IP

你可能想看:
« 上一篇
下一篇 »

相关推荐

java中什么是冒泡,冒泡算法

2026年09月06日

27阅读

java中冒号,java双冒号

2026年09月06日

26阅读

java中的->,java中的是什么意思

2026年09月06日

24阅读

java中的super用法,Java中super的说明

2026年09月06日

28阅读

java中反射的应用,java中反射的应用场景

2026年09月06日

26阅读

java中开关的定义,Java关键字有哪些

2026年09月06日

26阅读