zoukankan      html  css  js  c++  java
  • 研发技能列表

    一 代码风格

    代码风格要求使用的Google Style Guides, 无论是C++还是Pyhton。

    二 工具语言

    需要掌握以下基本语言的使用:

    1. Git:
      1. git doc 有中文版
      2. 常用的git命令,分支开发,回滚(三个存储区的不同回滚方式),暂存stash

    2. Shell:
      1. Advanced Bash-Scripting Guide
      2. awk
      3. sed

    3. C++:
      1. C++ 标准文案
      2. STL的线程安全保证,六大组件的基本使用
      3. C++11:我们现在使用的gcc版本是4.9.2,C++11的全部特性已经全部支持。我们现在的在线服务推荐使用c++11的新特性,请自己学习。

    4. Pyhton:
      1. python2.7 documentation
      2. python3 是未来5年内会在生产环境普及的,可以提前了解并应用了
      3. 如果只是把python当成shell的替代脚本来用,未免有点杀鸡用牛刀了,python是一个完整的语言,不只是一个工具粘合剂
        1. 闭包和装饰器
        2. 匿名函数
        3. 偏函数
        4. map/reduce
        5. 迭代器和生成器
        6. 判断python掌握的程度,可以看看pb的python实现,如果看不懂,那说明你还是把python当成脚本来使用

    5. Go:
      1. Go Doc
      2. 新一代并发编程的server型语言
      3. 新的包管理方式
      4. 代码风格一致性工具
      5. 协程的概念和Go并发的实现
      6. Go的并发和并行

    6. Vim:
      1. http://coolshell.cn/articles/5426.html  这个要练习三遍
      2.  vimrc的配置,了解我们项目目前使用的快捷键和常用操作

    7. Log:
      1. 掌握syslog,包括本机日志配置和远程日志配置,系统日志的查看和分析。
      2. 掌握logrotate,通用的日志切割配置,使用系统默认工具。

    8. 项目构建系统Bazel:
      1. https://bazel.build/

    三 开源中间件

    项目中使用的开源中间件比较多,选型中主要以开源和集团内的中间件服务为主,在看源码前,优先过一遍文档。

    1. Redis: 
      1. 掌握所有redis支持的数据类型和命令
      2. 了解redis服务的主从方式配置,持久化的两种方式
      3. redis proxy(twitter/twemproxy)的实现方式,和redis server的异同。

    2. Aerospike:
      1. 掌握支持的数据类型,我们项目用到的数据类型
      2. 数据一致性保证策略
      3. 线上集群使用的存储方式和原因

    3. GTest 和 GMock:
      1. gtest的基本使用,注入原理。
      2. gmock的使用方式,和gtest配合使用。

    4. Kafka:
      1. kafka 0.10 版本的文档要看一遍,设计和实现原理
      2. 我们服务的镜像消费和互斥消费模式是如何做到的
      3. kafka消息的结构体和各个参数的含义
      4. kafka partition的含义,如何指定,group内如何做的消费平衡

    5. HBase:
      1. python和c++访问hbase的方式
      2. hbase基本结构的含义,列和列族的使用,版本的概念

    6. gRPC:
      1. protocol-buffers官网
      2. grpc 官网
      3. protocol buffer的主要数据类型和API的使用
      4. grpc的原理,和pb的结合方式,C++和Python的rpc使用方式。

    7. Zookeeper:这个一定要掌握,开源中间件的中间件。
      1. 发布与订阅
      2. 分布式命名
      3. 分布式锁
      4. 分布式集群管理,选举和监控

    四 好书推荐

      1. C++程序设计语言 4th
      2. Effective Modern C++ && Effective C++

      3. Advanced Programming in the UNIX Environment, 3rd
      4. Unix Network Programming, Volume 1 & 2

      5. 程序员的自我修养:链接、装载与库
      6. Code Complete 2nd
      7. Man Pages: 这个真的太重要了,对于一个系统程序原来说,系统手册是最精华。即使没有看过一遍,但是也至少知道如何查找和man命令如何使用。比如需要查signal对应所有类型,你知道如何使用man命令吗?
      8. Linux多线程开发:
        1. POSIX Threads Programming
        2. perfbook.2016.07.31a.pdf
        3. C++ Concurrency in Action
  • 相关阅读:
    Redis源码分析(二十一)--- anet网络通信的封装
    leetcode 总结part1
    leetcode String to Integer (atoi)
    leetcode 165. Compare Version Numbers
    leetcode 189. Rotate Array
    leetcode 168. Excel Sheet Column Title
    leetcode 155. Min Stack
    leetcode 228. Summary Ranges
    leetcode 204. Count Primes
    leetcode 6. ZigZag Conversion
  • 原文地址:https://www.cnblogs.com/brainstorm/p/7975857.html
Copyright © 2011-2022 走看看