天天写业务代码,如何成为Java架构师?

架构师是一个充满挑战的职业,知识面的宽窄往往决定着一个架构师的架构能力

因为现今是一个信息时代,大量的信息都是需要存储并检索的,数据库设计的不好,将会严重影响系统的性能,而这一点往往会被我们的设计人员忽略,他们只知道遵守那些范式而不会结合数据的特性去设计数据库。

从一个程序员到架构师是一个很大的变化,架构师需要从大的方面考虑,而不只是考虑这个模块该用哪种设计模式去开发。

总之,想要成为架构师,需要有耐心,不断学习,拓宽自己的视野,不仅仅局限于自己眼前的项目

下面我详细介绍成为架构师必须要学习的知识点:

一、分布式架构

分布式架构是 分布式计算技术的应用和工具,目前成熟的技术包括J2EE, CORBA和.NET(DCOM),这些技术牵扯的内容非常广:

二、工程化

1、Maven

在如今的互联网项目开发当中,特别是Java领域,可以说Maven随处可见。Maven的仓库管理、依赖管理、继承和聚合等特性为项目的构建提供了一整套完善的解决方案,可以说如果你搞不懂Maven,那么一个多模块的项目足以让你头疼,依赖冲突就会让你不知所措,甚至搞不清楚项目是如何运行起来的

2、一个专业的程序员,怎么能不掌握Git呢?版本控制领域,已经发展了一段时间,从古老的CVS,到SVN集中式管理,再到现在的Git。由于Git的分布式、everything is local、分支等诸多特性,让越来越多的项目开始从SVN迁移到Git进行管理。

3、Jenkins

Jenkins是一个开源的持续集成工具,应用Jenkins搭建持续集成环境,可以进行自动构建、自动编译和部署,非常方便。

在服务器比较少的情况下,Jenkins的优势并不明显,但是随着项目发展,服务器数量的增加,Jenkins的优势就会凸显出来,可以很好的提高效率,减少很多人工操作。

公司的项目自动自动化部署是采用 Jenkins,并且编写自动构建的shell脚本。

由于项目是前后端分离,前端和后端都是单独部署的, 后端 采用 JAVA编写,使用Maven管理多模块和项目依赖, 前段使用 npm 管理项目组件依赖, webpack进行打包。

4、Sonar

Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质量。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。

同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。

此外,Sonar 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。

三、微服务架构

微框架

微服务架构(MSA)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。你可以将其看作是在架构层次而非获取服务的类上应用很多SOLID原则。 用通俗的话来讲,就是为了高度解耦软件之间的依赖性,使每个独立的模块都能够单独测试,单独运维,最大限度的提高软件的开发流程。

Docker虚拟化

Docker有着小巧、迁移部署快速、运行高效等特点,但隔离性比服务器虚拟化差:不同的集装箱属于不同的运单(Docker上运行不同的应用实例),相互独立(隔离)。但由同一个库管人员管理(主机操作系统内核),因此通过库管人员可以看到所有集装箱的相关信息(因为共享操作系统内核,因此相关信息会共享)。

四、性能优化

性能优化,简而言之,就是在不影响系统运行正确性的前提下,使之运行地更快,完成特定功能所需的时间更短。性能问题永远是永恒的主题之一,而优化则更需要技巧。

五、源码分析

源码主要功用有如下2种作用:

生成目标代码,即计算机可以识别的代码。

对软件进行说明,即对软件的编写进行说明。为数不少的初学者,甚至少数有经验的程序员都忽视软件说明的编写,因为这部分虽然不会在生成的程序中直接显示,也不参与编译。但是说明对软件的学习、分享、维护和软件复用都有巨大的好处

我们在写程式时,有不少时间都是在看别人的代码。

例如看小组的代码,看小组整合的守则,若一开始没规划怎么看,不管是参考也好,从开源抓下来研究也好,为了了解箇中含意,在有限的时间下,不免会对庞大的源代码解读感到压力。

六、双十一项目实战

无需赘述,如果没有实战经验,如何成为一名架构师?

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏跨界架构师

分布式系统关注点——初识「高可用」

        咳咳,从这篇开始,正式拉开分布式系统关注点中,我认为第二重要的内容 —— 「高可用」。

9820
来自专栏java一日一条

软件开发中最顶级的 17 个平台和工具

当你在决定使用哪些软件或平台来完成日常工作时,会存在很多选择。所以,我决定写一个我们在开发部门常用的软件开发工具列表,希望能对其他所有人都有所帮助。

30030
来自专栏大数据和云计算技术

大数据和云计算技术周报(第59期)

“大数据” 三个字其实是个marketing语言,从技术角度看,包含范围很广,计算、存储、网络都涉及,知识点广、学习难度高。

13820
来自专栏java一日一条

Java 程序员不容错过的开发趋势

当涉及到代码时,有很多热门话题,并且与时俱进总是潮流所向。如果你想知道如何分离糟粕和精华,那么我们已经准备就绪,只欠各位阅读下文的东风。

12220
来自专栏无原型不设计

更巧妙的表单设计与登陆访问

以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具 你觉得一个普通人每天会使用多少次登陆功能呢?数据显示至少1...

32640
来自专栏SDNLAB

边缘计算工作负载:虚拟机,容器还是裸机?

我们生活在一个连接和智能设备的时代。随着智能设备数量的增长,数据的增长迅速达到了新的高度。这些数据从终端用户到达云或数据中心后再进行处理、存储和其他分析操作,因...

15140
来自专栏CSDN技术头条

小故事:架构师需要做什么?

作者:Robert C. Martin 原文:A Little Architecture 译者:孙薇 责编:钱曙光 本文是一篇模仿问答的小故事,作者用幽默的风格...

24660
来自专栏技术翻译

数据映射工具

当您正在集成所有数据以存储在数据仓库中以进行最终用户分析时,必须映射数据。数据映射在一个信息源和另一个信息源之间进行转换,基本上将数据源字段与数据仓库中的目标字...

55350
来自专栏Java职业技术分享

分布式系统关注点——初识「高可用」

咳咳,从这篇开始,正式拉开分布式系统关注点中,我认为第二重要的内容 —— 「高可用」。

7900
来自专栏屈定‘s Blog

如何学习一门新技术

最简单的是找一个上手视频,因为视频是非常直观的展示了技术的使用.先学会用是最根本的,对于没有视频的技术的话,就可以搜索XX上手教程,XX学习记录之类的关键词,很...

25030

扫码关注云+社区

领取腾讯云代金券