技术目录

内容纲要

语言

Java

https://docs.oracle.com/en/java/
https://docs.oracle.com/en/java/javase/19/

Overview

Tools

Language and Libraries

Specifications

Security

HotSpot Virtual Machine

Manage and Troubleshoot

Client Technologies

JavaScript

JavaScript 教程 | 菜鸟教程

JavaScript - 学习 Web 开发 | MDN

JavaScript教程 - 廖雪峰的官方网站

JavaScript学习指南:JS入门教程(非常详细)

Python

RUNOOB - Python 基础教程

官方文档 - doc

Python 3.x Resources

GoLang

https://golang.google.cn/
https://golang.google.cn/learn/
https://golang.google.cn/doc/install
https://golang.google.cn/doc/

RUNOOB - Go 语言教程

C

https://learn.microsoft.com/zh-cn/cpp/c-language/?view=msvc-170

RUNOOB - C 语言教程

C++

https://learn.microsoft.com/zh-cn/cpp/?view=msvc-170
https://cplusplus.com/doc/
https://visualstudio.microsoft.com/zh-hans/vs/features/cplusplus/
RUNOOB - C++ 教程

框架

java web开发框架的变迁
SSH ——Struts、Spring、Hibernate
Spring +SpringMVC + Hibernate/ibatis
SSM —— Spring+SpringMVC+Mybatis—— 主流
Springboot+Mybatis——兴起
微服务框架——springboot+dubbo、springcloud—— 前沿

Spring

Spring是 Java 后端框架家族里面最强大的一个框架,其拥有 IOC(控制反转) 和 AOP(面向切面) 两大利器,大大简化了软件开发复杂性。并且,Spring 现在能与所有主流开发框架集成,可谓是一个万能框架,Spring 让 JAVA 开发变得更多简单。

https://spring.io/guides
https://spring.io/projects/spring-framework

Spring MVC

API层,处理|响应请求,获取表单参数,表单校验等。HTTP协议中的请求/响应特性,在该框架中,用户的每一个请求都声明了一个需要执行的动作。而这主要是通过将每个请求URI映射到一个可执行的方法来实现。同时,也将请求参数映射到对应方法的参数。

Spring Web MVC是基于Servlet API构建的原始Web框架,从一开始就包含在Spring框架中。正式名称“Spring Web MVC”来自其源模块(spring-webmvc)的名称,但更常见的名称是“Spring MVC”

Spring Boot

Spring Boot是Spring 组件一站式解决方案,简化使用 Spring 框架的难度,简省繁重的配置。

Spring Cloud

微服务框架首选,它利用Spring Boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。

Struts

https://struts.apache.org/getting-started/
https://struts.apache.org/security/
https://struts.apache.org/core-developers/
https://struts.apache.org/tag-developers/
https://struts.apache.org/maven-archetypes/
https://struts.apache.org/maven-archetypes/
https://struts.apache.org/plugins/
https://struts.apache.org/maven/struts2-core/apidocs/index.html
https://struts.apache.org/tag-developers/tag-reference.html
https://struts.apache.org/download.cgi#struts603

Hibernate

https://hibernate.org
https://hibernate.org/orm/
https://hibernate.org/orm/documentation/6.1/
https://hibernate.org/orm/tooling/
https://hibernate.org/orm/books/

Mybatis

MyBatis是一种轻量级的对象关系映射持久层(ORM)框架,数据层,数据库相关,连接、处理、映射。
https://mybatis.org/mybatis-3/zh/getting-started.html
https://mybatis.org/mybatis-3/zh/configuration.html
https://mybatis.org/mybatis-3/zh/sqlmap-xml.html
https://mybatis.org/mybatis-3/zh/dynamic-sql.html
https://mybatis.org/mybatis-3/zh/java-api.html
https://mybatis.org/mybatis-3/zh/statement-builders.html
https://mybatis.org/mybatis-3/zh/logging.html

dubbo

Apache Dubbo 是一款 RPC 微服务框架,提供了包括 Java、Golang 等在内的多种语言 SDK 实现。

https://dubbo.apache.org/zh/overview/mannual/
https://dubbo.apache.org/zh/docs3-v2/java-sdk/
https://dubbo.apache.org/zh/docs3-v2/golang-sdk/
https://dubbo.apache.org/zh/docs3-v2/rust-sdk/

Swagger-UI

前后端协作的利器,解析代码里的注解生成JSON文件,通过Swagger UI生成网页版的接口文档,可以在上面做简单的接口调试 。
Swagger UI allows anyone — be it your development team or your end consumers — to visualize and interact with the API’s resources without having any of the implementation logic in place. It’s automatically generated from your OpenAPI (formerly known as Swagger) Specification, with the visual documentation making it easy for back end implementation and client side consumption.

https://github.com/swagger-api/swagger-ui
https://swagger.io/tools/swagger-ui/download/
https://swagger.io/docs/
https://swagger.io/tools/swagger-ui/download/
https://swagger.io/docs/specification/about/
https://swagger.io/docs/specification/2-0/basic-structure/
https://swagger.io/resources/open-api/
https://swagger.io/docs/open-source-tools/swagger-editor/

Specification

Swagger Open Source

Swagger Inspector

SwaggerHub

ApachePOI

POI提供API给Java程序对Microsoft Office格式档案读和写的功能。
Apache POI - Javadocs

NoSQL

Redis

内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件,配合关系型数据库做高速缓存,一个key-value型的数据库,解决应用服务器的cpu和内存压力、减少io的读操作、减轻io的压力,适用于数据高并发的读写、海量数据的读写、对扩展性要求高的数据等场景。

https://redis.io/docs/
https://redis.io/docs/getting-started/
https://redis.io/docs/data-types/
https://redis.io/docs/libraries/
https://redis.io/docs/tools/

MongoDB

更类似 MySQL,支持字段索引、游标操作,其优势在于查询功能比较强大,擅长查询 JSON 数据,能存储海量数据,但是不支持事务。

https://www.mongodb.com/docs/
https://www.mongodb.com/docs/develop-applications
https://www.mongodb.com/docs/launch-manage
https://www.mongodb.com/docs/view-analyze
https://www.mongodb.com/docs/guides
https://www.mongodb.com/docs/atlas
https://www.mongodb.com/docs/manual
https://www.mongodb.com/docs/drivers

消息中间件

解决分布式系统之间消息的传递,异步处理(放入消息队列,提高吞吐量)、应用解耦(写入-订阅)、流量削峰(秒数或者团抢活动),大型电子商务类网站消除高并发访问高峰,加快网站的响应速度

ActiveMQ

中小型公司,万级,非常成熟,功能强大,在早些年业内大量的公司以及项目中都有应用,主要是基于解耦和异步来用的,较少在大规模吞吐的场景中使用。

ActiveMQ 5 Download

https://activemq.apache.org/components/classic/download/

ActiveMQ 5 Documentation

https://activemq.apache.org/components/classic/documentation

Download ActiveMQ Artemis

https://activemq.apache.org/components/artemis/download/

Apache ActiveMQ Artemis Documentation

https://activemq.apache.org/components/artemis/documentation

RabbitMQ

万级,延时很低,是erlang语言本身带来的问题。很难读源码,很难定制和掌控。

RabbitMQ is the most widely deployed open source message broker.
With tens of thousands of users, RabbitMQ is one of the most popular open source message brokers. From
T-Mobile to Runtastic, RabbitMQ is used worldwide at small startups and large enterprises.
RabbitMQ is lightweight and easy to deploy on premises and in the cloud. It supports multiple messaging protocols. RabbitMQ can be deployed in distributed and federated configurations to meet high-scale, high-availability requirements.
RabbitMQ runs on many operating systems and cloud environments, and provides a wide range of developer tools for most popular languages.

https://www.rabbitmq.com/#features
https://www.rabbitmq.com/#getstarted
https://www.rabbitmq.com/documentation.html

RocketMQ

大型公司,十万级,阿里,接口简单易用,可以做到大规模吞吐,性能也非常好,分布式扩展也很方便,社区维护还可以,可靠性和可用性都是ok的,还可以支撑大规模的topic数量,支持复杂MQ业务场景。

https://github.com/apache/rocketmq
https://rocketmq.apache.org/download/
https://rocketmq.apache.org/docs/
https://rocketmq.apache.org/docs/4.x/

Kafka

十万级,大数据领域的实时计算、日志采集,超高的吞吐量,ms级的延迟,极高的可用性以及可靠性,而且分布式可以任意扩展。

https://kafka.apache.org/intro
https://kafka.apache.org/quickstart
https://kafka.apache.org/uses
https://kafka.apache.org/books-and-papers
https://kafka.apache.org/documentation/
https://kafka.apache.org/documentation/#design
https://kafka.apache.org/documentation/#implementation
https://kafka.apache.org/documentation/#configuration
https://kafka.apache.org/documentation/#operations
https://cwiki.apache.org/confluence/display/KAFKA/Clients
https://kafka.apache.org/documentation/#connect
https://kafka.apache.org/documentation/streams/

SOA(面向服务)相关

系统集成—有序,系统的服务化—复用,业务的服务化—高效

SpringCloud.Dubbo

阿里,分布式、高性能、透明化的 RPC 服务框架,提供服务自动注册、自动发现等高效服务治理方案。RPC 指的是远程调用协议,也就是说两个服务器交互数据。透明化的远程方法调用,像调用本地方法一样调用远程方法,配置简单,无API侵入;软负载均衡以及容错机制,可在内网替代F5等硬件负载均衡器,降低成本;服务的自动注册与发现,不需要写死服务提供方的地址,注册中心基于接口名查询服务提供着的IP地址,并且可以平滑的添加或者删除服务提供者;采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需要Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。

Zookeeper

分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。zookeeper=文件系统+监听通知机制,客户端注册监听它关心的文件目录节点,当目录节点发生变化(数据改变、被删除、子目录节点增加删除)时,zookeeper会通知客户端。
假设我们的程序是分布式部署在多台机器上,如果我们要改变程序的配置文件,需要逐台机器去修改,非常麻烦,现在把这些配置全部放到zookeeper上去,保存在zookeeper 的某个目录节点中,然后所有相关应用程序对这个目录节点进行监听,一旦配置信息发生变化,每个应用程序就会收到zookeeper 的通知,然后从zookeeper 获取新的配置信息应用到系统中。

https://zookeeper.apache.org/doc/r3.8.0/index.html
https://zookeeper.apache.org/doc/r3.7.1/index.html
https://zookeeper.apache.org/doc/r3.6.3/index.html
https://zookeeper.apache.org/doc/r3.5.10/index.html
https://zookeeper.apache.org/doc/r3.4.14/
https://zookeeper.apache.org/documentation.html

搜索相关

全文搜索搜索引擎,计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。

Elasticsearch

一个基于Lucene的搜索服务器,它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。分布式、多租户、某些节点出现故障时会自动分配其他节点代替其进行工作、接近实时的搜索。自身带有分布式协调管理功能、仅支持json文件格式、在处理实时搜索应用时效率明显高于Solr、适用于新兴的实时搜索应用。

https://www.elastic.co/guide/index.html
https://www.elastic.co/guide/en/elastic-stack/current/index.html
https://www.elastic.co/guide/en/elastic-stack/current/installing-elastic-stack.html

Solr

基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面。成熟、稳定;不考虑建索引的同时进行搜索,速度更快;建立索引时,搜索效率下降,实时索引搜索效率不高。用 Zookeeper 进行分布式管理、支持更多格式的数据、传统的搜索应用中表现好于 Elasticsearch、传统搜索应用的有力解决方案。互联网巨头,如Netflix,eBay,Instagram和亚马逊(CloudSearch)都使用Solr,因为它能够索引和搜索多个站点。

https://solr.apache.org/downloads.html
https://solr.apache.org/resources.html
https://solr.apache.org/resources.html#documentation

Lucene

一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。一个Java全文搜索引擎,完全用Java编写。Lucene不是一个完整的应用程序,而是一个代码库和API,可以很容易地用于向应用程序添加搜索功能。

The Apache Lucene™ project develops open-source search software. The project releases a core search library, named Lucene™ core, as well as PyLucene, a python binding for Lucene.
Lucene Core is a Java library providing powerful indexing and search features, as well as spellchecking, hit highlighting and advanced analysis/tokenization capabilities. The PyLucene sub project provides Python bindings for Lucene Core.

https://lucene.apache.org/core/downloads.html

通讯相关

Netty

异步高性能的通信框架,往往作为基础通信组件被 RPC 框架使用。典型的应用有:阿里分布式服务框架 Dubbo 的 RPC 框架使用 Dubbo 协议进行节点间通信,Dubbo 协议默认使用 Netty 作为基础通信组件,用于实现各进程节点之间的内部通信。淘宝的消息中间件 RocketMQ 的消息生产者和消息消费者之间,也采用 Netty 进行高性能、异步通信。大数据领域,经典的 Hadoop 的高性能通信和序列化组件 Avro 的 RPC 框架,默认采用 Netty 进行跨节点通信,它的 Netty Service 基于 Netty 框架二次封装实现。

文件存储

FastDFS

一个轻量级分布式文件系统,对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)。

FastDFS is an open source high performance distributed file system (DFS). It's major functions include: file storing, file syncing and file accessing, and design for high capacity and load balance. Wechat/Weixin public account (Chinese Language): fastdfs

项目构建类

Maven

主要功能主要分为5点,分别是依赖管理系统、多模块构建、一致的项目结构、一致的构建模型和插件机制。

https://maven.apache.org/what-is-maven.html
https://maven.apache.org/download.cgi
https://maven.apache.org/users/index.html

Gradle

构建包括编译主代码、处理资源、编译测试代码、执行测试、上传归档等,基于灵活的任务模型,因此很多事情包括覆盖现有任务,跳过任务都非常易于实现。

https://docs.gradle.org/current/userguide/userguide.html

Gradle作为一款基于Groovy语言的构建工具,已经吸引众多的ant,maven使用者转投gradle的怀抱,和Gradle相比,ant显得冗余复杂,maven显得有些死板落后,而gradle基于DSL语法,特点明显:简洁、灵活、可读性强。Gradle和maven有很多相似点,gradle充分考虑到maven库的价值,在jar包管理上完全支持mavenRepository,很多属性乍眼一看就能反应过来maven中对应的是什么标签,大大降低maven到gradle的迁移难度,并在构建方面改善了很多maven的不足,,同时,gradle对比maven更好的面向ant用户,使用maven时,虽然能通过plugin来跑ant的命令,但是maven在任务实现主要靠的是插件以及自身的固定框架,Gradle在定义任务方面思想与ant非常相似,做了很好的集成。

IDE

Intellij IDEA

更好的调试、更高的开发效率、更智能的重构、目录分层少而清。

https://www.jetbrains.com/help/
https://www.jetbrains.com/help/idea/getting-started.html

Ecplise

最大化控制台、项目结构支持更强大、插件编写更容易、免费。

https://www.eclipse.org/downloads/
https://help.eclipse.org/latest/index.jsp
https://www.eclipse.org/ide/

From List

https://javaforall.cn/128479.html

Leave a Comment

您的电子邮箱地址不会被公开。 必填项已用*标注

close
arrow_upward