近期都是在做一个项目,项目是一个大型的多节点部署的项目,做了好几个版本,中间用到了很多技术和框架,也用了一些管理工具和敏捷实践。我这里不是来说项目的,因为最近看了一些招聘信息,结合项目中用到的一些知识 ...
近期都是在做一个项目,项目是一个大型的多节点部署的项目,做了好几个版本,中间用到了很多技术和框架, 也用了一些管理工具和敏捷实践。我这里不是来说项目的,因为最近看了一些招聘信息,结合项目中用到的一些知识和 管理措施,作为一个程序员,需要去实时评估下自己当前的能力是否能跟上时代的步伐,所以,总结了下作为一个中高级Java开发人员或架构师,到底需要掌握哪些技能,当你掌握这些技能的时候你已经在BATJ或是在BATJ的路上了。 ![]() 1、对于Java基础技术体系(包括JVM、类装载机制、多线程并发、IO、网络)有一定的掌握和应用经验。 JVM内存分配、JVM垃圾回收; 类装载机制; 性能优化: 反射机制; 多线程; 网络编程; 常用数据结构和相关算法: 2、对面向对象的软件开发思想有清晰的认识、熟悉掌握常用的设计模式; 设计模式:单例模式;工厂模式;代理模式;模板方法模式;责任链模式等 3、熟练掌握目前流行开源框架(spring/springmvc/ibatis),并且对其核心思想、实现原理有一定认知; 开源框架:spring; 开源框架:hibernate; 4、熟悉Oracle、MySQL等数据库开发与设计以及缓存系统REDIS或 Memcached的设计和研发; 关系数据库:oracle 关系数据库:PostgreSQL 缓存系统:Redis(Nosql) 缓存系统:Memcached 5、熟悉底层中间件、分布式技术(包括缓存、消息系统、热部署、JMX等) 底层中间件: 应用服务器:Jetty(Tomcat) 消息中间件:ActiveMQ、RabbitMQ 事务处理中间件: 数据访问中间件:ODBC 工作流中间件:JBPM 分布式技术: 缓存系统: 消息系统: Restful: 热部署: JMX: 6、至少一种Java 应用服务器如tomcat Jetty: 7、精通shell编程,熟练应用awk、sed、grep、strace、tcudump、gdb等常用命令; 8、有大型分布式、高并发、高负载(大数据量)、高可用性系统设计开发经验 分布式:(多节点部署) 高并发: 高负载(大数据量): 高稳定: 高可用: 9、对配置管理和敏捷研发模式有所了解 配置管理工具: SVN: Github: 10、业务能力: 系统升级、双机、部署、容灾、备份恢复、DFX 加分技术: 脚本语言:python 远程调用: 精通Internet基本协议(如TCP/IP、HTTP等)内容及相关应用 有一定安全意识并了解常见的安全问题解决方案 熟悉常见的一些解决方案及其原理:单点登录、分布式缓存、SOA、全文检索、消息中间件,负载均衡、连接池、 nosql、流计算等; 开源框架源码专题 阅读源码 程序员每天都和代码打交道。经过数年的基础教育和职业培训,大部分程序员都会「写」代码,或者至少会抄代码和改代码。但是,会读代码的并不在多数,会读代码又真正读懂一些大项目的源码的,少之又少。这也造成了很多错误看源码的方式。 ![]() 关注我,后台回复“架构资料”即可免费获取架构学习资料。(转发后即可) 详细介绍源码中所用到的经典设计思想,看看大牛是如何写代码的,提升技术审美、提高核心竞争力。 帮助大家寻找分析源码的切入点,在思想上来一次巨大的升华。知其然,并知其所以然。把知识变成自己的 高性能架构专题 互联网时代,系统架构如何迎接高并发流量的挑战。而作为技术开发者,如何去应对技术变革带来的技能危机。基于传统架构到分布式架构演变过程所带来的技术变革进行全面深入讲解。 在技术深度和技术广度上得到飞跃的提升。成为互联网行业所需要的T型人才 ![]() 微服务架构专题 应对复杂的业务需求变更、用户膨胀,SOA已成为现在互联网公司标准的解决方案,微服务相关的框架正是为此而生。 ![]() 性能优化 深入浅出性能优化 理解性能优化 性能基准 性能优化到底是什么 衡量维度 ![]() 双十一电商项目实战 大型电商分布式系统应用实践,利用云服务器搭建真实的开发和部署环境,千人在线参与开发。 由浅入深的,带你从零到项目发布上线与运维,让你体验真实的企业级项目开发过程,掌握大牛的编码思维、经验与技巧。 ![]() 关注我,后台回复“架构资料”即可免费获取架构学习资料。(转发后即可) |
请发表评论