关于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:如果雇佣你,招聘方会得到什么好处 其次,写简历和写议论 ...
随机推荐
- c#窗体form的美化
- 用java连接RabbitMQ
pom.xml <dependencies> <dependency> <groupId>junit</groupId> <artifactId& ...
- redis -- python操作连接redis简单示例
1.先安装 redis,pyredis sudo pip install redis sudo pip install python-redis 2.示例: importredis >>& ...
- Ubuntu下常用指令
James最近因为需要尝试着编译Android源代码,系统环境变成了Ubuntu.和熟悉Windows操作系统环境一样,都有过渡的阶段.下面记录常用的操作指令. 分类目录如下: uname -a 查看 ...
- Leetcode 记录(1~100)
5.回文串 几种方法: 暴力:枚举每一个字串,判断是否为回文串,复杂度O(n^3),暴力月莫不可取 dp:区间dp思想,O(n^2) 中心扩展:找每一个字符,然后往两边扩展,O(n^2) manach ...
- 【Newtonsoft.Json】自己实现JsonConverter ,精简返回的数据结果
Newtonsoft.Json的Json数据转换很好用,也提供了很多直接使用的类型
- Django——分页
必要属性和方法 per_page: 每页显示条目数量 count: 数据总个数 num_pages:总页数 page_range:页面范围,从1开始,例如[1,2,3,4]. page: page对象 ...
- 3ds max学习笔记-- 灯光调节
8,软件内默认有两盏灯,在渲染时不产生投影和高光点.手动添加灯光时,系统灯光自动关闭: 1,标准灯光:聚光灯,平行光,泛光 ,天光: a,聚光灯:目标聚光灯和自由聚光灯,当目标聚光灯的[目标]取消勾选 ...
- servlet 表单加上multipart/form-data后request.getParameter获取NULL(已解决)
先上结论(可能不对,因为这是根据实践猜测而来,欢迎指正) 表单改为multipart/form-data传值后,数据就不能通过普通的request.getParameter获取. 文件和文件名通过Fi ...
- 关于EL表达式的学习总结
一.EL表达式简介 EL 全名为Expression Language.EL主要作用: 1.获取数据 EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数 ...
