关于Java 软件工程师应该知道或掌握的技术栈
鄙人星云,今天突然想写这么一篇需要持续更新的文章,主要目的用于总结当前最流行的技术和工具,方便自己也方便他人。
更新时间:2018-10-23 09:26:19
码农职业路径图

Java后端开发优势图

Java 软件工程师技术栈
JDK: 1.8+
Java 基础:I/O(NIO), 集合,多线程,网络编程,并发,JVM内存模型, 设计模式
Java Web 基础:Spring
Java Web框架: Spring Boot 2.0, Spring MVC ,Spring WebFlux, Hibernate ,MyBatis3
SQL: MySQL, SQL Server , Oracle
NoSQL: Redis
嵌入式数据库: Oracle Berkeley DataBase Java Editor
数据库连接池:HikariCP

其他框架: 高效敏捷开发 Ruby on Rails
微服务和分布式: Spring Boot + Spring Cloud
消息中间件:RabbitMQ, Kafka
部署容器:Apache HTTP Server , Tomcat, Jetty, Docker, WebPhere (IBM 的Java应用服务器软件,用来部署运行Web应用,号称WAS)
反向代理服务器+ 负载均衡: Nginx
JSON处理: Gson
HTML处理:jsoup解析HTML(将HTML解析成对象的API)
Java Android 工程师技术栈
作为Java 安卓开发工程师,面对各种不同的开发需求,我们要用各种不同的框架类库来帮助我们快速实现,因此鄙人持续更新项目地址如下:
https://github.com/geekxingyun/Android-Open-Source-Project
前端工程师技术栈
HTML5 + CSS3+ jQuery + Bootstrap 4+React JS + ajax +Pjax
Angular 6.x + Vue2 + React Native+ Nodejs
CSS预编译语言(Less+Sass)+Webpack(模块化打包工具) + Grunt/Gulp(自动化构建工具 )
TypeScript(游戏开发) +Cocos2d-JS
Google V8 浏览器引擎
在前后端分离的概念中,前端脱离与后端工作,在对好接口之后,以及后端没有假数据的情况下,可以先采用折衷的办法来请求假数据,这就有了Mock.js,可以随机生成数据,拦截ajax请求。
Easy Mock 是一个可视化,并且能快速生成 模拟数据 的持久化服务
学习资源与开发工具
关于IDE的选择:
学习研究推荐 Spring Tool Suite
快速开发单个应用推荐 Intellij Idea 旗舰版
| 对比 | Intellij Idea 旗舰版 | Spring Tool Suite |
| 成本 | 付费(个人可用破解版) | 免费 |
| 群体 | 个人 | 企业 |
| 优点 | 插件丰富,功能强大 | 稳定,适合维护 |
| 缺点 | 不支持多项目同窗口预览和管理 | 很好地支持多项目同窗口预览和管理 |
| 场景 | 高效快速开发单个应用 | 学习研究和项目维护管理 |
推荐阅读书籍:
Java 基础提高 《Java编程思想》(Think in java 第四版)
Android 必看书籍——《第一行代码 第二版》
Web 安全常识: 《白帽子谈网络安全》
Spring 学习:《Spring 揭秘》
Java 基础揭秘篇 《码农翻身》刘欣
其他:
浏览器导航:极客导航
Bug异常处理:stackoverflow Issue JIRA
代码质量检测分析:
findbugs是sonar的子集,在sonar平台中可以直接导入findbugs的规则集。sonar比findbugs高了一个层级,多出了sonar不仅关注了常规静态bug,还关注到了如代码质量、包与包,类与类之间的依赖情况、代码耦合情况、类,方法。文件的复杂度、代码中是否包含大量复制粘贴的代码是质量低下的,关注到了项目代码整体的健康情况。不过个人在使用过程中findbugs本身的规则比sonar的官方规则更加实用,high级别的bug都是较为实用的bug,且能覆盖到一些性能方面的问题,sonar的规则,50%bug都是主要级别,其实危害不大。前期轻量级的静态bugs扫描可以选用findbugs,当项目持续稳定后可以选用sonar进行更深层次的代码质量控制
findbugs+jenkins CI 集成
代码质量检测工具:SonarQube (包含Findbugs)
代码托管:
国外平台 : Github , Gitlab(支持无限的公有项目和私有项目,页面样式不喜欢) Bitbucket (免费支持5个开发成员的团队创建无限私有代码托管库)
国内平台:
阿里云Code 阿里出品的代码托管平台
码云(Gitee) (开源中国和CSDN合作平台,总容量是5G,单项目最大1G,可创建 1000 个项目,不限私有或公有。最大问题是只能有5个成员)

Coding 全中文支持,腾讯云合作 能创建5个项目,最多可以有20个成员;当绑定腾讯云账号可升级为 512M 10个项目)
码市是 Coding 推出的互联网软件外包服务平台

技术社区:博客园,CSDN, 开源中国 ,掘金 ,InfoQ , Segmentfault ,Spring For ALL 优知学院
外包:码市
后台管理UI框架: H-ui.admin , H+ , Admui ( 据说用了最先进的技术【HTML5 + CSS3+Less+ jQuery + Bootstrap + Pjax+ Nodejs + Gulp】)
编程在线培训学习:慕课网 极客学院 咕泡学院 优达学城 潭州学院
Office 处理:Apache POI, 永中软件(QQ邮箱据说用的这个)
文字识别: 百度文字识别(OCR)服务 科大讯飞文字识别服务 腾讯云文字识别OCR QR Code SDK PC端 .net 北京中安未来科技有限公司OCR服务
语音处理:科大讯飞
人脸识别:Face++
地图导航:高德地图
手册查询:手册网
截图软件: Snipaste
GiF录制:LiceCAP
招聘求职

牛人
Android 界
stormzhang 人人都喊他张哥,安卓开发入门指南文字的第一人,从开发转了产品
郭霖 《第一个行代码》 Android界最权威的入门书籍的作者
张鸿洋 开源了很多优秀安卓项目
Java 界
程序员小灰 风趣幽默的图片对话故事讲解知识点
码农翻身--刘欣 用故事的方式讲解软件编程的若干重要领域
纯洁的微笑 张强,各大技术社区的博客专家,同时运营着一个公众号:纯洁的微笑。目前一家第三方支付公司担任技术总监,负责微服务架构实践和大数据治理。
程序员DD 翟永超 Spring 中文社区创始人之一
阮一峰 经济学博士,技术文章写得最好的人
廖雪峰 著名讲师,JS, Git,Python 教程很出名
Linux 界
鸟哥 著名作品,鸟哥的Linux私房菜
羽翼 SQLMAP等渗透网络安全教程,渗透领域大亨
关于我
星云个人主页: http://www.520geek.cn/about/
星云CSDN博客:https://blog.csdn.net/hadues
星云博客园:http://www.cnblogs.com/xingyunblog
星云阿里云栖博客:https://yq.aliyun.com/u/xingyunsky
星云GitHub: https://github.com/geekxingyun
星云微博:https://weibo.com/xingyunsky
联系方式:fairy_xingyun@hotmail.com
有其他需要更新的或者分类有不对之处欢迎在评论区留言~
我的知识星球
公告:我的知识星球开通了
付费星球
星云视频教学

免费星球:
技术交流分享讨论~
交流即分享,分享才能进步~
低调,自由,共享,免费是我们的宗旨~
如果你是一位爱代码如生命的的程序员,
如果你是一位网络安全渗透工程师,
如果你对计算机技术深感兴趣,
那么欢迎入圈交流学习~
极客技术宅因为有你更精彩~
关于Java 软件工程师应该知道或掌握的技术栈的更多相关文章
- JAVA软件工程师应该具备的技能有哪些?
前言:有朋友问我:学历和能力哪个重要?我个人觉得能力大于学历,没有能力哪来的学历,学历只是证明能力的一方面.为此在能力方面畅谈java软件工程师必备的能力.作为一名合格的java工程师,不仅需要学历, ...
- Java软件工程师技能图谱
原文链接:Java软件工程师技能图谱 最近在考虑"拥有怎样的技能才能算一名合格的java软件工程师呢?"这个问题.碰巧在github发现一个很棒的开源项目--程序员技能图谱.@Zh ...
- 软件工程师所需掌握的“终极技术”是什么?
软件工程师所需掌握的"终极技术"是什么? http://yunli.blog.51cto.com/831344/1019990 最近,我在微博上看到@程序员邹欣老师发的一条微博 - ...
- JAVA软件工程师应该具备哪些基本素质?
必知:软件企业要求基础软件工程师具备六大基本素质,即良好的编码能力.自觉的规范意识和团队精神.认识和运用数据库的能力.较强的英语阅读和写作能力.具有软件工程的概念和求知欲和进取心. 1.良好的编码能力 ...
- 没找到工作的Java软件工程师是屌丝中的屌丝啊
Java软件开发的工作咋就那么难找呢?
- 都卷Java,你看看你得学多少技术栈才能工作!
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言:授业解惑 我知道,你不知道的还有很多! 你了解计算机要从哪里开始学习吗?你清楚为了能 ...
- Java开发之javaEE(java2EE)的介绍,java软件工程师初步阶段知识
1. 为什么需要JavaEE 我们编写的JSP代码中,由于大量的显示代码和业务逻辑混淆在一起,彼此嵌套,不利于程序的维护和扩展.当业务需求发生变化的时候,对于程序员和美工都是一个很重的负担. 为了程序 ...
- Java软件工程师全栈技能
1.前端基础技能,掌握html.js.css,会用jquery.bootstrap. 2.前端技能升级,会用echart.BMap等等. 3.前端高级技能,熟练使用angularjs等等. 4.服务端 ...
- [简历] JAVA 软件工程师
首先,一份好的简历不光说明事实,更通过FAB模式来增强其说服力. Feature:是什么 Advantage:比别人好在哪些地方 Benefit:如果雇佣你,招聘方会得到什么好处 其次,写简历和写议论 ...
随机推荐
- python数据结构之队列(二)
书接上文,双端队列区别于单队列为:双端队列可以对队列头和尾部同时进行操作,单队列不行 #coding:utf-8 class DoubleQueue(object): def __init__(sel ...
- shell && and ||
2013-04-08 17:40:47 shell中&&和||的使用方法 &&运算符: command1 && command2 & ...
- BZOJ2821 作诗(Poetize) 分块
题意 算法 经验总结 代码 题意 不带修改,查询数列[1,n]中[l,r]内的出现正偶数次的数的个数, 数列中的数 <= 1e5, n <= 1e5, 强制在线 算法 查询的内容: 区 ...
- 【DWM1000】 code 解密9一 ANCHOR response poll message
根据上面TAG发送的代码,我直接找到如下代码 case RTLS_DEMO_MSG_TAG_POLL: { if(inst->mode == LISTENER) ...
- BZOJ3457 : Ring
根据Polya定理: \[ans=\frac{\sum_{d|n}\varphi(d)cal(\frac{n}{d})}{n}\] 其中$cal(n)$表示长度为$n$的无限循环后包含$S$的串的数量 ...
- C++程序设计方法3:禁止自动类型转换
禁止自动类型转换 explicit #include <iostream> using namespace std; class Src;//前置类型声明,因为在Dst中要用到Src的类 ...
- sklearn CART决策树分类
sklearn CART决策树分类 决策树是一种常用的机器学习方法,可以用于分类和回归.同时,决策树的训练结果非常容易理解,而且对于数据预处理的要求也不是很高. 理论部分 比较经典的决策树是ID3.C ...
- jmeter接口测试实例1-添加学生信息
jmeter实例1:添加学生信息 进入jmeter,添加线程组改名称为添加学生信息(为了好区分接口),添加http请求,输入IP,方法,路径,在body data中输入json串,同上面postman ...
- C#自动识别文件编码
以下代码源自:http://www.cnblogs.com/stulzq/p/6116627.html /// <summary> /// 用于取得一个文本文件的编码方式(Encoding ...
- js文档节点关系
这一节简单介绍一下文档节点方面的相关内容: 一:获得节点关系的属性 1.获得该元素父节点的引用:obj.parentNode: <div class="content"> ...
