后端开发工程师,前端工程师的未来发展方向,后端开发工程师,前端工程师的未来前景

  后端开发工程师,前端工程师的未来发展方向,后端开发工程师,前端工程师的未来前景

  之前在美团工作了快3年,本文来自美团wiki。

  ================================

  基础(项目所需)

  成为系统/服务/模块的所有者

  其他/高级

  基本(项目必备)有扎实的理解。

  知识点需要学习方法/相关链接/书籍推荐高级开发工具IDE

  健全的

  熟练运用发展理念;

  熟练使用快捷键;

  将进行本地和远程调试。

  Intellidia教程Git

  健全的

  了解git的分布

  了解git的临时存储区域和对象

  熟练使用push、fetch、rebase、reset等命令。

  会用到一个Git可视化工具:SourceTree,GitUp,ToriseGit等。

  Git教程

  Git权威指南

  专家

  健全的

  精通配置和使用;

  了解Maven的依赖机制,会解决jar冲突问题;

  掌握mvn清理、编译、测试、安装、解部署等命令。

  Maven教程actionCS基础操作系统中的maven/

  Linux操作系统

  抓住

  Linux/OS基础知识:中断/异常、地址空间、系统调用、进程调度、文件系统等。

  Linux系统管理:文件、权限、vim使用、shell脚本、启动过程、crtontab、syslog等。

  常用命令:less、grep、cut、sed等。Top、netstat、tcpdump、vmstat、iostat等。

  越了解Linux的使用和原理越好。

  Linux简介

  每天一个Linux命令

  波导linux私房菜

  对linux内核的深刻理解

  UNIX环境高级编程

  对计算机系统有深刻的理解

  网络

  抓住

  TCP/IP基础知识:IP、子网、路由、TCP

  HTTP、HTTPS等协议的基本原理

  掌握cookie的由来和处理方法,会话原理和跨域问题;

  了解前端页面加载流程和常用的网络优化技术;

  会使用常用的抓袋工具查尔斯等。

  熟练使用点评、美团APP抓取包和模仿工具:蜘蛛使用模仿工具的说明

  TCP/IP的详细解释(第1卷)

  HTTP权威指南

  TCP/IP的详细解释(第2卷)

  TCP/IP的详细解释(第3卷)

  资料库

  健全的

  了解Mysql;

  基本操作:sql、数据导出/导入、备份/恢复;

  掌握常用的mysql存储引擎和索引方法;

  查看sql执行计划,掌握常用的sql调优方法;

  基本功能原理:拷贝、文件、日志、事务、锁;

  了解至少一个NoSql (mongo)的原理和用法。掌握

  MySQL的技术内幕:SQL编程

  数据资源手册(第1卷)(修订版)

  高性能MySQL Java相关

  Java基础(要扎实)

  健全的

  基本语法:JAVA核心技术,如继承、异常、引用和泛型(第1卷)

  在java中思考

  有效的java中文版(第2版)类库:集合、序列化等Jdk源代码;

  字符串、整数、长整型、枚举、BigDecimal

  ArrayList、java.util.LinkedList、

  哈希映射、链接哈希映射、树形映射、并发哈希映射

  HashSet、LinkedHashSet、TreeSet

  AtomicInteger、ThreadLocal

  IO(网络IO,文件IO),NIO主机

  055-79000 Java网络编程Netty/Mina/Grizzly多线程与并发实践中的Java并发JVM: Classcode、Reflection、ClassLoader、GC;

  常见的java监控命令:jstack、jmap、jstat等。

  常见的java启动参数:gc相关;常见的环境变量;

  深入了解Java虚拟机

  JVM内存管理和调优

  深入Java虚拟机(Java虚拟机内部)Java安全Java安全反射,动态代理,jmx,jms Java Web。

  抓住

  Servlet/JSP

  支柱2/弹簧MVC

  春天

  米巴蒂斯

  迈巴蒂斯泉

  码头

  单元测试

  JDBCMybatisC3p0

  客户端

  Servlet规范文本

  春季公文

  MyBatis官方文件

  MyBatis-Spring正式文档

  春天在行动

  Spring的技术内幕:Spring架构和设计原理的深度分析;

  2 struts2技术内幕;

  源代码

  第三方类库

  抓住

  阿帕奇公地。*

  fastjson、hcdbbt、gson

  番石榴

  源代码;

  番石榴维基

  系统部署

  明白;理解

  负载均衡:F5、SLB、LVS、Nginx

  反向代理:Nginx,Tengine

  Web容器:Tomcat、Jetty

  容灾:数据库冷/热备,异地居住,服务降级。

  工程质量

  抓住

  Api设计Restful/MVCRESTful Web服务编码OO;业务建模:如何将产品需求转化为合理的软件模型设计模式。

  头部优先设计模式

  有效的java中文版(第二版)

  重构:改进现有代码的设计。

  实现模式实现模式

  开发代码规范

  数据库规范

  日志规范

  美团(Java)编码规范-第一版_v1

  DP JAVA代码开发规范_v0

  谷歌编码风格

  数据库开发规范

  Log4j问题和用法

  安全规范符合XSS、CSRF、SQL注入和其他常见安全问题的相关规范。常见的网站攻击方法和防御

  XSS反射攻击原理及规避修复措施

  XSS:http://yw.dp/docs/view/143

  测试一些基本概念:黑盒/白盒、烟雾、回归、单元测试、集成测试、性能测试。

  项目中测试的实践:单元测试(JUnit,JMockit),集成测试(测试环境清单?)

  http://junit.org/朱尼特

  https://code.google.com/p/jmockit/jmockit

  http://works.dgic.co.jp/djunit/朱尼特

  建筑RPC

  明白;理解

  了解rpc框架的基本原理和使用;

  了解rpc框架的核心模块:服务注册和发现、序列化、网络通信、服务治理等。

  服务框架鸽子

  MTthrift的设计与实现

  躲藏

  抓住

  了解本地缓存ehcache和guava缓存的区别;

  了解本地缓存和分布式缓存的区别和使用场景;

  了解分布式缓存memcache和redis的区别;

  了解Redis的基本原理和常见操作

  信息排队

  明白;理解

  activemq、rabbitmq、kafka、zeromq

  燕子、玛芙卡

  官方网站

  源代码

  配置工具ZK

  明白;理解

  了解分布式一致性问题

  Paxos算法

  Zk使用

  Zk实现原则,多多益善

  搜索引擎

  明白;理解

  全文搜索引擎

  使用

  弹性搜索

  Elasticsearch权威指南

  成为一个系统/服务/模块的拥有者技术基础:了解计算机的工作原理;算法/数据结构;各种应用技术:Java,Mysql等。专精兼盖;

  沟通:态度、理解和表达

  工程能力:

  内容

  了解原始需求;可行性和成本的判断;

  业务建模:将产品需求完整准确地转换成合理的软件模型。

  系统设计和快速实施

  自我管理:多分支开发、进度控制、代码/资源/外部输出文档管理。

  质量功能:

  单元测试

  测试:清单

  性能:

  单点响应时间

  可扩展容量

  稳健性

  外部容错,常见问题:连接池(连接数,超时等。)

  回滚、数据恢复功能

  的功能具有可维护性和可扩展性。

  设计文件

  高质量的代码和注释

  合理的设计

  运行和维护监控/报警/故障排除和问题解决

  监控和显示各种业务和技术数据;关键数据必须有报警机制

  注意日志,检查问题的关键。

  监控数据、日志,使用各种命令/工具在线检查状态,基本上可以找出大部分问题的原因。

  注意降低运维成本:对等节点配置方式相同;统一部署模式

  一些琐事:机器应用,磁盘日志清理,自动重启等。

  其他/高级

  推荐书籍/相关链接

  合理的思维方式和个人管理,提高你的效率,学会提问。

  金字塔原理

  用图表说话

  番茄工作法图解

  高效人士的七个习惯

  提问的智慧

  把事情做完(无压力工作的艺术)

  思考——快与慢

  计算机如何工作的基本概念,从程序员的角度对计算机系统的深刻理解

  Unix环境中的高级编程

  对算法/数据结构算法的时间复杂度和空间复杂度的基本认识

  熟悉常用的数据结构:链表、队列、哈希表、树等。

  递归、分治、动态规划等基本思想;常用算法:排序、搜索、比较等。

  算法介绍其他语言python node.js erlang scala go软件工程/软件配置管理git=代码版本,jenkins=集成工具,发布工具,wiki=文档平台,jira=任务/问题跟踪

  Scrum=敏捷开发过程

  连续累计

  连续交货

  建筑《Java网路编程》

  《恰如其分的软件架构 - 风险驱动的设计方法》

  《软件系统架构:使用视点和视角与利益相关者合作 第2版》

  《程序员必读之软件架构 - Software Architecture for Developers》

  《大型网站技术架构:核心原理与案例分析》

  《大规模分布式存储系统》

  信息安全

  技术部门内的其他安全相关页面

  网络安全思维导图

  搜索和推荐的核心问题是排序。

  (未完待续)

  055-79000,lucene源代码

  许多方法和概念太抽象了,它们是关于使服务实用和基础的。

  搜索wiki soa

  SOA的知识地图

  虚拟化/云docker

  paas saas iaas

  大数据hadppo、hbase、hive

  流式计算:风暴、火花、samza

  作战傀儡

  机房和网络架设

  系统

  Linux _性能_监控. chm

  兄弟的linux私人厨房-服务器设置

  AndroidiOShtml5/JS数据挖掘数据存储flume、hdfs、hive和hbase;http://news.dbanotes.net/news ETL技术新闻

  https://news.ycombinator.com/

  stackoverflow.com

  github.com

  google.com

后端开发工程师,前端工程师的未来发展方向,后端开发工程师,前端工程师的未来前景