关于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:如果雇佣你,招聘方会得到什么好处 其次,写简历和写议论 ...
随机推荐
- 附001.kubectl介绍及使用
一 kubectl介绍 1.1 kubectl概要 kubectl控制Kubernetes集群管理器,使用Kubernetes命令行工具kubectl在Kubernetes上部署和管理应用程序.使用k ...
- webpack搭建vue项目,实现脚手架功能
本文基于node.js开发环境,安装完node之后新建项目,通过webpack配置,实现vue-cli脚手架功能 对于刚刚接触编程的人来说,最难的可能并不是学习一种新语法或者框架,而是编程思维,这种思 ...
- linux 学习笔记五 查看文件篇章
1 diff -y test.txt test2.txt 输出源文件与目标文件的全部 分为左右两篮 如下 --------------------------------------------- ...
- [CC-SEAPERM2]Sereja and Permutations
[CC-SEAPERM2]Sereja and Permutations 题目大意: 有一个\(n(n\le300)\)排列\(p\),将其中一个元素\(p_i\)拿掉,然后将原来大于\(p_i\)的 ...
- 受欢迎的牛 [HAOI2006] [强连通] [传递闭包(划)]
Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛 A 认为牛 B受欢迎.这种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A ...
- HashMap源码分析和应用实例的介绍
1.HashMap介绍 HashMap 是一个散列表,它存储的内容是键值对(key-value)映射.HashMap 继承于AbstractMap,实现了Map.Cloneable.java.io.S ...
- WebApi路由解析增加版本控制
1.自定义路由解析类 public class VersionHttpControllerSelector : IHttpControllerSelector { private const stri ...
- Python基础-修改excel、redis、接口开发、组织代码
pymysql模块补充内容 1. 游标.description():显示表的字段属性 (什么是游标:游标用于交互式应用,就好比word里的光标一样,要修改某个地方,要先把光标移动到这里) 用好这个方法 ...
- Sublime_分屏显示
- 3、css初识
前端内容就分三部分html.css.javascript(js),对一个网页来说html相当于是一个裸体的人,css相当于给这个人穿上了衣服,javascript相当于给这个人赋予动作行为,今天我们要 ...