2019年9月技术栈情况汇总

java初级程序员一枚,回顾技术掌握情况,记录成长蜕变过程.

基础概况

熟悉基本数据结构及算法,关系数据库原理,互联网协议等.
熟练面向对象编程,熟悉常见设计模式,UML设计及ORM建表等.
熟练函数式编程,掌握链式及AOP编程,了解响应式编程.
掌握基于java和js的web应用开发主流技术.了解C,python,php等语言.
能使用java解决服务端常见业务场景,开发基础爬虫,使用第三方应用接口,了解大数据开发,人工智能,区块链及各云计算平台服务以及SaaS开发等流行技术.
乐于探索原理,源码,关注新技术,能够高效学习.代码规范,自我要求严格,追求高效简洁优雅,崇尚开源.

具体应用技能

一.掌握javaEE开发常用类库,组件,框架,中间件等使用.

1.基础

熟练使用javaSE8语法及常用类库,熟悉javaSE9.10及11等新特性.
了解juc及NIO,了解常用apache-commons工具包等.
了解jvm与GC.熟悉主要javaEE规范及实现,Tomcat使用及原理.	

2.数据库

熟练使用MySQL,ORACLE,Redis,ElasticSearch,MongoDB等
了解FastDFS,GirdFS及第三方云存储,了解Lucene及solar.
熟练使用SQL,了解PL/SQL开发.了解MySQL原理及SQL优化.

3.常用框架及技术

核心技术:
	熟练使用Spring框架(IOC,AOP,JDBC及事务,MVC等组件),Spring Boot,Mybatis(Generator及常用插件,通用mappper),Lombok插件等,并了解原理.
持久层:
	熟悉JPA规范及JPQL,熟练使用Spring DATA(JPA,JDBC,MongoDB,Redis,Elasticsearch),熟悉MybatisPlus,了解Hibernate.
视图层及接口:
	熟悉servlet规范,JSP及JSTL、Thymeleaf,了解Freemarker、Velocity等
	熟悉Restful接口,OpenAPI规范及Swagger2使用,能够开发GraphQL接口及websocket服务,了解SSE开发		

4.分布式,SOA及微服务技术

熟悉Spring Cloud Netflix(Eureka,Ribbon,Hystrix,Feign,Zuul),Config与Bus等组件,
熟悉Dubbo,了解web service,Apache CXF开发等
了解Ngnix,Zookeeper,了解HAProxy,MyCat与PXC集群及主从集群,其他NoSQL集群等系统架构.
熟悉JMS与ActiveMQ,AMQP与RabbitMQ基本使用.Spring JMS及AMQP使用.
事务框架Seata(2PC与TCC),Hmily.RocketMQ事务消息等使用
了解ServiceCombo及CSE,Spring Cloud Alibaba(Dubbo,Sentinel,Nacos,Seata)及Service Mesh等新技术.

5.其他框架及技术

权限及会话控制:
单点登录CAS,无状态登录JWT及Hibernate Validator验证,RBAC技术,
了解Shiro及Spring Security及Oauth2使用,Spring Session应用
日志管理:
	SLF4j规范,log4j及logback框架使用,了解Elastic Stack.
任务及异步:
	熟悉Quartz及Spring Task,基于Spring的多线程异步方法及事件监听,方法缓存,了解WebFlux等
应用业务技术:
	了解Activiti工作流引擎,POI,Jasper Report等开发,爬虫框架WebMagic等

二.了解主流web前端开发技术

1.掌握js,熟悉HTML5,AJAX,jQuery库,DOM及BOM基础编程.了解CSS3开发及BootStrap,AdminLTE,ECharts.
2.了解基于ES6,SPA开发流行框架.
	了解框架Vue(vue-router,VueX,ElementUI与Vuetify),axios,
	了解基于Rective,Umi(jsx,DVA),Antd的模板Ant Design Pro开发.
3.了解mock技术(easy Mock,mock.js及json-server),noBackend,BaaS和FaaS等开发.Nuxt.js与Next.js渲染.了解JHipster.了解node.js,npm、tyarn、webpack,live-server等使用.
4.熟悉cookie,Data URL,Websocket.了解浏览器本地存储,Web Workers等新技术.	

三.掌握常用工具软件

1.IDE:

熟练使用IDEA,Eclipse及SpringToolSuite,HBuilder.了解PyCharm,VS code.

2.DevOps开发相关工具

掌握linux,Maven,Git,SVN,了解Docker及Rancher,Jenkins等

3.其他设计办公软件等

postMan,StartUML,Xmind,Jaspersoft Studio,Excel,World,PPT等

参与项目情况

一.互联网租房平台项目

本项目中主要负责以下内容:

负责前台部分,即时通讯模块后端编码,主要结合MongoDB和WebSocket实现.RocketMQ实现分布式WebSocket.

1.1、项目介绍

Xx租房是直接促成房东与租户对接的生活服务平台,它包含房东发布房源,租户多维度寻找房源,智能匹配房源,近期行情查询等功能。减少中间环节产生的费用,提高房东与租户匹配的成功率。
项目归类ToC的租房产品.
项目后端采用SOA架构思想进行设计,采用SpringBoot、SpringMVC、Mybaits、Dubbo等技术框架实现.
融合了RPC、大数据等相技术,其他如React.js、GraphQL、RocketMQ、ELK等技术,实现了移动web应用、微信小程序应用、后台管理应用等功能。

1.2、项目结构及路线图

分前台APP,后台管理平台.
一期功能:房源搜索、地图找房、房屋筛选、分享房源、联系房东、预约看房、在线签约、支付、身份认证、资讯、推送消息、提醒账单、注册登录.
二期功能:顶层首页、计算器、问答模块.

1.3、技术架构

后端架构:SpringBoot+StringMVC+Dubbo+Mybatis+ELK+区块链
前端架构:React.js+html5+百度地图+微信小程序

1.4、后台系统

后台系统面向管理员及运营,采用的是前后端分离开发模式,
前端为SPA应用,使用基于Rective,Umi(jsx,DVA),Antd的模板Ant Design Pro进行改造.
后端采用的是SpringBoot+StringMVC+Dubbo+Mybatis的架构进行开发。阿里云OSS存储房源图片
一级模块二级模块功能描述
房源管理房源列表管理房东以及管理员上传的所有房源信息
查看图片查看某房源下所有的房屋图片信息
看房请求显示所有租客发起的看房请求列表
租房管理显示所有租客发起的租房请求列表
房东管理房东列表显示系统中注册的所有房东用户列表
用户管理用户列表显示系统中所有用户列表(包含房东以及租客)
合约管理合约列表显示租客与房东签订的所有合约
资讯管理资讯列表显示系统中所有的资讯信息
问答管理问答列表显示系统中所有的问答信息
系统管理房源接口对接三方房源基本信息接口
字典配置对房源的房屋配置、特色、签约期限、预定时间进行系统外的配置
合同模板对签约的合同进行更新
财务管理账单管理管理平台中发生的所有账务信息
提现审核审核房东发起的提现申请,审核通过后系统自动完成转账操作

1.5、前台系统

前台系统面向租户和房东,采用前后端分离开发模式,接口交互查询采用了GraphQL技术,WebSocket实现即时通讯.
前端使用React+semantic-ui实现移动端web展示,后期可以将web打包成app进行发布。
后端采用的是SpringBoot+StringMVC+Dubbo+Mybatis的架构进行开发。
一级模块二级模块功能描述
首页房源搜索根据条件进行搜索
地图找房地图找房在地图内显示各区域房源数量,能够根据小区进行分解
房屋列表房屋筛选根据条件进行筛选
房屋详情收藏房源用户可以收藏房源信息
分享房源用户可以将房源信息分享出去
举报房源用户可以举报虚假房源
联系房东租户可以直接通过虚拟号码联系房东
预约看房租户在电话联系房东后,填写预约时间,作为凭证
在线签约租户与房东达成协议后,签订电子合同,电子合同
支付租户通过自选支付方式将租金转至制定账户
个人中心身份认证用户填写姓名与证件号,并上传手持身份证照片
资讯爬取爬取各大租房网站相关资讯
资讯推送系统向用户推送最新资讯
消息消息提醒消息提醒
实时通信用户之间可以实时通讯
账单推送每月生成账单,便于房东查看收入情况
登录登录用户登录
注册注册用户注册

二.互联网在线学习平台项目

该项目为学习项目,大致介绍如下,Spring全家桶持续学习中,后续针对重要技术点,另外专门做一篇总结.

2.1、项目介绍

本项目借鉴了MOOC(大型开放式网络课程,即MOOC(massive open online courses))的设计思想,是一个提供IT职业课程在线学习的平台,它为即将和已经加入IT领域的技术人才提供在线学习服务,用户通过在线学习、在线练习、在线考试等学习内容,最终掌握所学的IT技能,并能在工作中熟练应用。

2.2、项目结构

当前市场的在线教育模式多种多样,包括:B2C、C2C、B2B2C等业务模式,本项目采用B2B2C业务模式,即向企业或个人提供在线教育平台提供教学服务,老师和学生通过平台完成整个教学和学习的过程,市场上类似的平台有:网易云课堂、腾讯课堂等,本项目的特点是IT职业课程在线教学。
项目包括门户、学习中心、教学管理中心、社交系统、系统管理等功能模块。
功能模块名称功能说明
门户在首页、活动页、专题页等页面提供课程学习入口。
学习中心学生登录学习中心在线学习课程。
社交系统为老师和学生交流搭建沟通的平台,包括:问答系统、评论系统、论坛等,学生和老师通过问答系统提问问题、回答问题,通过评论系统对老师授课进行评论。
教学管理中心教师登录教学管理中心进行课程管理、资源管理、考试管理等教学活动。
系统管理中心系统管理员登录系统管理中心进行分类管理、运维管理等功能。

2.3、技术情况

技术架构

采用当前流行的前后端分离架构开发,由用户层、UI层、微服务层、数据层等部分组成,为PC、App、H5等客户端用户提供服务。下图是系统的技术架构图:在这里插入图片描述

业务流程举例:

1、用户可以通过pc、手机等客户端访问系统进行在线学习。
2、系统应用CDN技术,对一些图片、CSS、视频等资源从CDN调度访问。
3、所有的请求全部经过负载均衡器。
4、对于PC、H5等客户端请求,首先请求UI层,渲染用户界面。
5、客户端UI请求服务层获取进行具体的业务操作。
6、服务层将数据持久化到数据库。

各模块说明如下:
序号名称功能描述
1用户层用户层描述了本系统所支持的用户类型包括:pc用户、app用户、h5用户。pc用户通过浏览器访问系统、app用户通过android、ios手机访问系统,H5用户通过h5页面访问系统。
2CDNCDN全称Content Delivery Network,即内容分发网络,本系统所有静态资源全部通过CDN加速来提高访问速度。系统静态资源包括:html页面、js文件、css文件、image图片、pdf和ppt及doc教学文档、video视频等。
3负载均衡系统的CDN层、UI层、服务层及数据层均设置了负载均衡服务,上图仅在UI层前边标注了负载均衡。 每一层的负载均衡会根据系统的需求来确定负载均衡器的类型,系统支持4层负载均衡+7层负载均衡结合的方式,4层负载均衡是指在网络传输层进行流程转发,根据IP和端口进行转发,7层负载均衡完成HTTP协议负载均衡及反向代理的功能,根据url进行请求转发。
4UI层UI层描述了系统向pc用户、app用户、h5用户提供的产品界面。根据系统功能模块特点确定了UI层包括如下产品界面类型: 1)面向pc用户的门户系统、学习中心系统、教学管理系统、系统管理中心。 2)面向h5用户的门户系统、学习中心系统。 3)面向app用户的门户系统、学习中心系统未在上图标注,在app项目中有详细说明。
5微服务层微服务层将系统服务分类三类:前端服务、后端服务及系统服务。 前端服务:主要为学习用户提供学习服务。 后端服务:主要为管理用户提供教学管理服务。 系统服务:公共服务,为系统的所有微服务提供公共服务功能。 服务网关:提供服务路由、负载均衡、认证授权等服务。
6数据层数据层描述了系统的数据存储的内容类型,持久化的业务数据使用MySQL和MongoDB保存,其中MongoDB中主要保存系统日志信息。 消息队列:存储系统服务间通信的消息,本身提供消息存取服务,与微服务层的系统服务连接。 索引库:存储课程信息的索引信息,本身提供索引维护及搜索的服务,与微服务层的系统服务连接。 缓存:作为系统的缓存服务,存储课程信息、分类信息、用户信息等,与微服务层的所有服务连接。文件存储:提供系统静态资源文件的分布式存储服务,文件存储服务器作为CDN服务器的数据来源,CDN上的静态资源将最终在文件存储服务器上保存多份。 流媒体服务:作为流媒体服务器,存储所有的流媒体文件。
7外部系统接口1)登录接口,本系统和微信、QQ、微博系统对接,用户输入微信、QQ、微博的账号和密码即可登录本系统。 2)分享接口,本系统和微信、QQ、微博系统对接,可直接将本系统的课程资源信息分享到微信、QQ、微博。3)支付宝、微信、网银支付接口,本系统提供支付宝、微信、网银三种支付接口。4)短信接口,本系统与第三方平台对接短信发送接口。 5)邮件接口,本系统需要连接第三方的smpt邮件服务器对外发送电子邮件。 6)微信公众号,本系统与微信公众号平台接口,用户通过微信公众号访问H5页面。 7)点播、直播,前期视频点播与直播采用第三方服务方式,本系统与第三方点、直播服务对接,对外提供视频点播与直播服务。 8)OSS存储 ,前期静态资源文件的存储采用第三方服务方式,本系统与第三方提供的OSS存储服务对接,将系统的静态资源文件存储到第三方提供的OSS存储服务器上。 9)CDN,本系统与第三方CDN服务对接,使用CDN加速服务来提高本系统的访问速度。
重点学习微服务技术栈:
  1. 服务端基于Spring Boot构建,采用Spring Cloud微服务框架。
  2. 持久层:MySQL、MongoDB、Redis、ElasticSearch.
  3. 数据访问层:使用Spring Data JPA 、Mybatis、Spring Data Mongodb等
  4. 业务层:Spring IOC、Aop事务控制、Spring Task任务调度、Feign、Ribbon、Spring AMQP、Spring Data Redis 等。
  5. 控制层:Spring MVC、FastJSON、RestTemplate、Spring Security Oauth2+JWT等
  6. 微服务治理:Eureka、Zuul、Hystrix、Spring Cloud Config等

2.4、项目CMS系统

本项目作为一个大型的在线教育平台,对CMS系统的定位是对各各网站(子站点)页面的管理,主要管理由于运营需要而经常变动的页面,从而实现根据运营需要快速进行页面开发、上线的需求。

2.4.1 SSI服务端包含技术

分析首页的管理方案。
1、页面内容多如何管理?
将页面拆分成一个一个的小页面,通过cms去管理这些小页面,当要更改部分页面内容时只需要更改具体某个小页面即可。
2、页面拆出来怎么样通过web服务浏览呢?
使用web服务(例如nginx)的SSI技术,将多个子页面合并渲染输出。
3、SSI是什么?
在这里插入图片描述
ssi包含类似于jsp页面中的incluce指令,ssi是在web服务端将include指定 的页面包含在网页中,渲染html网页响应给客户端 。nginx、apache等多数web容器都支持SSI指令。
ssi指令如下:

<!‐‐#include virtual="/…/…html"‐‐>

4、将首页拆分成

index.html:首页主体内容
include/header.html:头部区域
include/index_banner.html:轮播图
include/index_category.html:左侧列表导航
include/footer.html:页尾

5、在nginx虚拟主机中开通SSI

server{
listen 80;
server_name www.xuecheng.com;
ssi on;
ssi_silent_errors on;

ssi的配置参数如下:
ssi on: 开启ssi支持
ssi_silent_errors on:默认为off,设置为on则在处理SSI文件出错时不输出错误信息
ssi_types:默认为 ssi_types text/html,如果需要支持shtml(服务器执行脚本,类似于jsp)则需
要设置为ssi_types text/shtml

2.4.2 页面管理与静态化
  1. 为什么要进行页面管理?
  2. 如何修改页面的内容?
  3. 如何对页面进行静态化?
    1.本项目cms系统的功能就是根据运营需要,对门户等子系统的部分页面进行管理,从而实现快速根据用户需求修改页面内容并上线的需求。
    2.在开发中修改页面内容是需要人工编写html及JS文件,CMS系统是通过程序自动化的对页面内容进行修改,通过页面静态化技术生成html页面。
    3.一个页面等于模板加数据,在添加页面的时候我们选择了页面的模板。页面静态化就是将页面模板和数据通过技术手段将二者合二为一,生成一个html网页文件。

本项目学习中未完待续…

课程管理与分布式文件系统
媒资管理与在线学习系统
认证授权与Spring Security Oauth2深入开发

三.SaaS-Export项目

3.1、需求描述

​ 国际物流的业务闭环涉及到海关、船东、港区、仓库、拖车、报关行等多个关联方,交易周期长,支付结算体系受到限制——其复杂性决定了工具的必要性,需要通过工具来建立连接,完成信息的流转。Saas-Export服务于货代企业,通过提供SaaS工具,帮助中小企业简单便利的对国际物流全环节进行流程控制。项目重点围绕四个方面:

1、 权限管理:对登入系统的员工进行细粒度的权限控制
2、 货物管理:提供货物的全流程管理,包含商品详情,报价
3、 报运管理:包括购销合同,出口报运,装箱,委托,发票
4、 统计管理:以图形化界面的方式对销售,财务数据展示

3.2、项目技术架构简介

采用当前流行的前后端编程架构:

后端框架采用 Spring +SpringMVC+mybatis +Dubbox.
前端采用AdminLTE框架的前端解决方案.
项目架构

在本项目中主要开发职责:

开发webservice调用海关平台,使用CXF与Spring集成开发WebService,基于ActiveMQ的邮件发送功能.
学习使用shiro,设计RBAC权限框架.
参与开发poi及jaspser报表解决方案.

本人情况概况,近期求职中

男,1995年生人,正值coding黄金年龄.
四川大学本科2016级,三年工作经验.野生程序员,原专业轻化工程.

本科期间学生会科技部干事,竞选担任过一年班长,参加大创有一篇论文发表在行业期刊.
毕业进入业内头部企业,从事工厂技术管理及研发工作,有一篇论文发表.
曾经作为爱好自学coding,后因各种原因,响应时代号召,毅然转行,详细技术情况如前文所述.
重视基础,大量阅读源码,专业书籍,理解原理和概念,同时关注新技术,快速学习大量流行技术.

目前坐标成都.
基础能力:

英语CET4,目前通过阅读文档,源码等持续积累中.office办公软件已熟练,C1驾照.

目前求职中,成长积累阶段,期望参考8k-10k,视贵公司情况均可面议.
有意者请留言或联系如下:

Email: hucaihui@foxmail.com
微信号:Taylor_woods  (请备注:招聘)

期待能有机会和您共事,谢谢。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值