技术心得 有人认为编程是一门技术活,要有一定的天赋,非天资聪慧者不能及也。其实不然,笔者虽是计算机专业出身,但工作年限并不长,对于技术这碗饭有一些心得体会,大多数人成为某领域专家可能会有些难度,但应对日常工作、成长为研发工程师、甚至成为小团队的TeamLeader,其实并不难。 多读书、多看报,多研究常用开源框架的源码,比如:github.com,这里汇集了全球工程师的智慧! 言归正传,下文会列举工作中常用的一些技术,以及如何锻炼提升自己的架构能力。 由于每块技术市场上基本都有对应的网络资料或书籍,所以本文只是少篇幅列举工作中用到的核心知识点,抛砖引玉,属于进阶型,不适用初学者。 基础知识 java spring springboot ibatis 设计模式 Log4j 数据库 目前使用多还是mysql,虽然单机性能比不上oracle,但免费开源,单机成本低且借助于分布式集群,可以有强大的输出能力。 连接池 事务 乐观锁&悲观锁 分库分表 id生成器 DAO层接口性能监控 读写分离 sql技巧 其它 web容器/协议/网络 负载均衡之LVS Nginx tomcat http协议 CDN 常用三方工具包 GoogleGuava fastJson log4J commons-codec commons-lang3 commons-io Quartz HttpClient Javassist 系统架构 架构经验 经典案例 编码前3000问 性能优化之Qps cache相关 分布式锁 中间件 RPC框架 dubbo dubbox Thrift RPC框架性能比较 MQ消息 ActiveMQ kafka RocketMQ 缓存 redis memcache 搜索 Elasticsearch 分布式数据框架 cobar tsharding tddl 大数据 Hbase MogonDB Storm Spark Hadoop Hive 配置管理 super-diamond disconf 其它 zookeeper FastDFS(分布式文件系统) mysql数据库binlog的增量订阅&消费组件 分布式数据库同步系统 项目管理 论需求调研的重要性 项目生命周期 代码规范 git常用命令 项目管理案例 运维 快速排查线上问题 linux常用命令 本地代码调试 个人成长 个人成长与职业规划 学习网站 infoQ 云栖社区 并发编程网 开源中国 stackoverflow 网易云课堂 程序员素养 Tom的读书单 其它 HTTPS抓包工具(charles) 一致性hash算法 Lombok安装 java面试题 回车与换行的区别