吹水

来源:互联网 发布:医用软件 编辑:程序博客网 时间:2024/05/15 16:42

作者:硫镓锌
链接:https://www.zhihu.com/question/35122053/answer/149715810
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

首先我们从网站的架构谈起。
一般来说,我们将网站分为前端和后端。前端主要负责页面的展示,后端则是业务逻辑的实现。由于html5的兴起,前端领域已经越来越火热,前端技术发展极快,今天我们不做过多介绍,因为现在的互联网公司,前端工程师和Java工程师是完全不同的两种技术岗位。所以我们还是以Java的角度去看待一个项目。在前端没有那么火的前几年,或者说在经典的Java Web的开发模式中,我们使用Jsp技术来作为展现层的实现,其实也就是所谓的前端。当然只懂得Jsp是不够的还需要懂html,css,js,ajax等一些前端的基础技术,Jsp技术在其中扮演外层包装的角色。
那么后端呢?后端是由于一些实现了业务逻辑Java代码和数据库组成。说到这,就可以推出Web开发中经典的MVC模式,Model-View-Controller。View,,就是指表现层,Model,是用来承载数据的抽象结构,而Controller则是View和Model的桥梁。View存在与前端代码中,Controller,Model存在与后端代码中。
在后端代码中,为了保证代码的整洁,易读性,一般会采用分层的办法,自顶向下分为controller层,service层,dao层,数据层或者叫持久层(直接与数据库打交道)。有时候,为了达到解耦的目的,会在上述基层中间加入响应的接口层,以使得接口与实现分离。在更加大型的网站中,会出现更加复杂的架构,比如dao层与数据层之间要有缓存层,或者访问压力增大后,需要使用集群,负载均衡等高级技术,但在这里,我们就不深入讨论复杂架构了

即将学习的知识点:
服务器技术:

  1. 熟练使用并理解一个应用服务器技术的原理(Tomcat)

  2. 熟练使用并理解一个Web服务器技术的原理(Nginx)

缓存技术:

  1. 熟练使用并理解一种缓存技术(Redis,Memcache,EhCache)
    非关系型数据库

  2. 熟练使用并理解一种非关系型数据库(MongoDB)

中间件技术:

  1. JMS:activeMQ和kafka

  2. RPC: Dubbo

设计模式:

  1. 了解并能够使用几种最主要的设计模式

网络:

  1. 熟练使用并理解一个网络开发技术(Netty)

  2. 熟悉http,TCP协议

Java虚拟机:

  1. 熟悉jvm运行原理,内存分布

  2. jvm参数调优