成为java架构师需要具备哪些技能
发布网友
发布时间:2022-02-28 15:18
我来回答
共2个回答
热心网友
时间:2022-02-28 16:47
学习JAVA基础的知识。另外,学习目前主流架构技术。以及行业内技术的走向。MVC等等基础。Sping,hibernate,struts2等等,虽然大家都在用,其实大家都不知道底层是什么原理。架构师的任务,就是在此基础上,研究更优越性能的架构,使得其他程序员在遇到公用框架时的问题,能即使的解决。并且也根据自己企业的状况和业务逻辑。搭建自己企业的框架。这才是优秀的架构师。
热心网友
时间:2022-02-28 18:22
(1)数据层:重点在于集群方案的选择,比如MySQL集群,集群方案很多,需要选择符合业务的方案,比如多主,主备,读写分离等等,是否还需要做高可用,是用lvs,还是zookeeper,是否需要例如mycat类中间件来管理数据库或者做数据分片等等。
(2)服务层:时髦一点,选择bbo,微服务让团队开发耦合度没有那么高,各自关心各自的模块,都以服务方式发布出去。传统一点用springmvc+restful,在我看来,对于并发不高的系统,没有必要用bbo。缓存的选择,涉及到文件缓存、数据库缓存,可以用memcached、ehcache、redis。
(3)应用层:框架太多,ssh,ssm,jfinal等等,选择适合项目团队的框架;UI界面,h5很美观,但对于浏览器的兼容就把开发人员搞哭了,可以选择成熟的ext或者easyui。
(4)网络层:多数开发人员都不用涉及,能了解下f5之类的就好。
(5)部署:是否需要用docker来部署,开源docker容器让部署轻量化,很容易就可以扩展一个节点,对于高并发、伸缩性要求高的场景可以使用。docker的出现,完全可以实现一键部署。是否需要负载均衡,可以选择硬负载(就是前面说的f5),也可以用软负载(nginx)。软负载的方案简单一点可以是apache+tomcat,需要考虑session复制,复杂一点选择lvs+haproxy。打包发布,熟练使用maven,能建立自己的maven私服,能指导项目成员使用maven打包发布。
(6)安全:大多数安全在网络层就解决了,但应用的安全不容忽视,比如需要考虑SQL注入,授权认证,这些目前框架都能解决,重点的安全问题来自框架本身,大多数应用选择框架都是开源的,如果团队没有能力修复漏洞只能等更新。
(7)其它方面:测试(自动化测试),版本管理(git or svn),大数据(奇热无比),人工智能(高大上)等等。
有人问,架构师为什么还要写代码?我认为,需要一如既往的写,但写的目标不一样,理论水平和动手能力需要同时提高。深度方面,注重的设计思想和模式;广度方面,对于前沿技术,要不懈的追求和钻研,这样才能在未来技术架构选型做出合理的决策。