鄙人星云,今天突然想写这么一篇需要持续更新的文章,主要目的用于总结当前最流行的技术和工具,方便自己也方便他人。

更新时间:2018-10-23 09:26:19


码农职业路径图

码农入门职业路径图

Java后端开发优势图

Java 软件工程师技术栈

JDK: 1.8+

Java 基础:I/O(NIO),  集合,多线程,网络编程,并发,JVM内存模型, 设计模式

Java Web 基础:Spring

Java Web框架: Spring Boot 2.0Spring MVC ,Spring WebFlux, Hibernate ,MyBatis3

SQL: MySQLSQL Server  , Oracle

NoSQL: Redis

嵌入式数据库: Oracle Berkeley DataBase Java Editor

数据库连接池:HikariCP

其他框架: 高效敏捷开发 Ruby on Rails

微服务和分布式: Spring Boot +   Spring Cloud

消息中间件:RabbitMQ, Kafka

项目构建工具:Maven, Gradle

项目版本控制:SVN, Git

部署容器:Apache HTTP Server ,  Tomcat, Jetty, Docker,  WebPhere (IBM 的Java应用服务器软件,用来部署运行Web应用,号称WAS)

反向代理服务器+ 负载均衡: Nginx

JSON处理: Gson

HTML处理:jsoup解析HTML(将HTML解析成对象的API)

增强型Java语言:RXJava ,  Kotlin


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 浏览器引擎

EasyMock

在前后端分离的概念中,前端脱离与后端工作,在对好接口之后,以及后端没有假数据的情况下,可以先采用折衷的办法来请求假数据,这就有了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】)

编程在线培训学习:慕课网   极客学院    咕泡学院   优达学城   潭州学院

网络安全在线培训学习:看雪论坛   i春秋   FreeBuf

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 软件工程师应该知道或掌握的技术栈的更多相关文章

  1. JAVA软件工程师应该具备的技能有哪些?

    前言:有朋友问我:学历和能力哪个重要?我个人觉得能力大于学历,没有能力哪来的学历,学历只是证明能力的一方面.为此在能力方面畅谈java软件工程师必备的能力.作为一名合格的java工程师,不仅需要学历, ...

  2. Java软件工程师技能图谱

    原文链接:Java软件工程师技能图谱 最近在考虑"拥有怎样的技能才能算一名合格的java软件工程师呢?"这个问题.碰巧在github发现一个很棒的开源项目--程序员技能图谱.@Zh ...

  3. 软件工程师所需掌握的“终极技术”是什么?

    软件工程师所需掌握的"终极技术"是什么? http://yunli.blog.51cto.com/831344/1019990 最近,我在微博上看到@程序员邹欣老师发的一条微博 - ...

  4. JAVA软件工程师应该具备哪些基本素质?

    必知:软件企业要求基础软件工程师具备六大基本素质,即良好的编码能力.自觉的规范意识和团队精神.认识和运用数据库的能力.较强的英语阅读和写作能力.具有软件工程的概念和求知欲和进取心. 1.良好的编码能力 ...

  5. 没找到工作的Java软件工程师是屌丝中的屌丝啊

    Java软件开发的工作咋就那么难找呢?

  6. 都卷Java,你看看你得学多少技术栈才能工作!

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言:授业解惑 我知道,你不知道的还有很多! 你了解计算机要从哪里开始学习吗?你清楚为了能 ...

  7. Java开发之javaEE(java2EE)的介绍,java软件工程师初步阶段知识

    1. 为什么需要JavaEE 我们编写的JSP代码中,由于大量的显示代码和业务逻辑混淆在一起,彼此嵌套,不利于程序的维护和扩展.当业务需求发生变化的时候,对于程序员和美工都是一个很重的负担. 为了程序 ...

  8. Java软件工程师全栈技能

    1.前端基础技能,掌握html.js.css,会用jquery.bootstrap. 2.前端技能升级,会用echart.BMap等等. 3.前端高级技能,熟练使用angularjs等等. 4.服务端 ...

  9. [简历] JAVA 软件工程师

    首先,一份好的简历不光说明事实,更通过FAB模式来增强其说服力. Feature:是什么 Advantage:比别人好在哪些地方 Benefit:如果雇佣你,招聘方会得到什么好处 其次,写简历和写议论 ...

随机推荐

  1. Python实现的各种机器学习算法

    七种算法包括: 线性回归算法 Logistic 回归算法 感知器 K 最近邻算法 K 均值聚类算法 含单隐层的神经网络 多项式的 Logistic 回归算法 01 线性回归算法 在线性回归中,我们想要 ...

  2. 理解JSON对象:JSON.parse、 JSON.stringify

    何时是JSON,何时不是JSON? JSON就是一个有特殊规则的字符串,按照这个规则我们就可以把这个字符串解析成JS对象. JSON是设计成描述数据交换格式的,他也有自己的语法,这个语法是JavaSc ...

  3. BZOJ.4513.[SDOI2016]储能表(数位DP)

    BZOJ 洛谷 切了一道简单的数位DP,终于有些没白做题的感觉了...(然而mjt更强没做过这类的题也切了orz) 看部分分,如果\(k=0\),就是求\(\sum_{i=0}^n\sum_{j=0} ...

  4. php 将16进制数串转换为二进制数据的函数

    /**     * 将16进制数串转换为二进制数据的函数     * @param $hexdata     * @return string bindata     */     function ...

  5. Python-copy()与deepcopy()区别

    http://blog.csdn.net/qq_32907349/article/details/52190796 学习过程中发现copy()和deepcopy()这对好基友实在是有点过分,搞的博主就 ...

  6. UDP与TCP

    网络模型分为OSI参考模型和TCP/IP参考模型 两台主机之间传输联系 TCP和UDP就是传输层的东西.叫做传输控制协议和用户数据报协议两者的区别是 网络通信底层通过Socket实现. UDP:Soc ...

  7. 在npm上发布一个自己的包

    1.首先你要在npm上创建一个账号,这里需要输入邮箱的,注意激活邮箱否则无法publish自己的包 2.在本地创建一个文件夹,输入npm init初始化项目,这里是我使用npm init创建的pack ...

  8. Html链接标签:

    <a>标签可以在网页上定义一个链接地址,它的常用属性有: (1)href属性 定义跳转的地址 (2)title属性 定义鼠标悬停时弹出的提示文字框 (定义鼠标悬停时,弹出的提示框中的文字) ...

  9. python:什么是单例?一个简单的单例

    单例:即一个类只能生成唯一的一个实例,python中的类如果没有被实例化,则cls._instance为None 如下: class Singleton(object): def __new__(cl ...

  10. PAT基础6-12

    6-12 判断奇偶性 (10 分) 本题要求实现判断给定整数奇偶性的函数. 函数接口定义: int even( int n ); 其中n是用户传入的整型参数.当n为偶数时,函数返回1:n为奇数时返回0 ...