架构师是公司技术团队的核心,是职场金领,很少需要考虑生存问题,也不需要负责太多的编码工作,对于大部分程序员来说,架构师是一个令人向往的角色。如何才能从码农成为一名架构师呢,以下架构师需要掌握的7大基本知识技能,分享给大家。
1、数据层
重点在于集群方案的选择,比如MySQL集群,集群方案很多,需要选择符合业务的方案,比如多主,主备,读写分离等等,是否还需要做高可用,是用lvs,还是zookeeper,是否需要例如mycat类中间件来管理数据库或者做数据分片等等。
2、应用层
框架太多,ssh,ssm,jfinal等等,选择适合项目团队的框架;UI界面,h5很美观,但对于浏览器的兼容就把开发人员搞哭了,可以选择成熟的ext或者easyui,或者最近很流行的node.js。
3、服务层
时髦一点,选择dubbo,微服务让团队开发耦合度没有那么高,各自关心各自的模块,都以服务方式发布出去。传统一点用springmvc+restful,在我看来,对于并发不高的系统,没有必要用dubbo。 缓存的选择,涉及到文件缓存、数据库缓存,可以用memcached、ehcache、redis。
4、网络层
多数开发人员都不用涉及,能了解下f5之类的就好。
5、安全
大多数安全在网络层就解决了,但应用的安全不容忽视,比如需要考虑SQL注入,授权认证,这些目前框架都能解决,重点的安全问题来自框架本身,大多数应用选择框架都是开源的,如果团队没有能力修复漏洞只能等更新。
6、部署
是否需要用docker来部署,开源docker容器让部署轻量化,很容易就可以扩展一个节点,对于高并发、伸缩性要求高的场景可以使用。docker的出现,完全可以实现一键部署。是否需要负载均衡,可以选择硬负载(就是前面说的f5),也可以用软负载(nginx)。软负载的方案简单一点可以是apache+tomcat,需要考虑session复制,复杂一点选择lvs+haproxy。 打包发布,熟练使用maven,能建立自己的maven私服,能指导项目成员使用maven打包发布。
7、其它方面
测试(自动化测试),版本管理(git or svn),大数据(奇热无比),人工智能(高大上)、领导力、沟通能力等等等等。
总结下来,架构师也是从程序员成长起来的,其工作与实际项目经验密不可分,一个好的架构师同时也是一个出色的程序员,大家在工作之余,还应有意识去拓展自己的技术深度与广度,不怕过程太难,就怕从不开始,坚持不懈,终有一天会将架构师之梦变成现实。
优知学院:BAT总监经验分享平台,专注分享bat面试经验+架构师进阶干货~
都划到这儿了,点个赞吧。
都划到这儿了,点个赞吧。
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有