开源越来越流行,所接触的语言也越来越多,如何快速上手一门语言与能够工程化的解决问题是很有必要的。
1 基本语法
项目
包
类
函数
循环
IF/ELSE
基本运算
变量
2 常用特性
以资源视角看待这个问题:
CPU:并发与锁(同步协议)
内存:容器
磁盘:IO文件系统 / DB
网络:网络IO(同步与异步等)
集群:分布式系统问题 : HA-共识协议 / Partition - MapReduce
3 开发相关
注释与说明文档:
调试/Bug Fix:日志库,IDE debug方法
测试:单元测试库
依赖管理与打包编译:
API多语言接口:
Profiling/调优:
版本管理:Git
资源隔离:Docker
CI/CD: Jeckins/ travis
软件市场:如果为平台软件
社区管理与交流
4 具体问题的经典算法与数据结构
CPU: 并发问题模型
内存: 多级存储Caching,其他memory 容器与数据结构(queue, skiplist, tree, array等)
磁盘: 多种索引等
网络IO: 同步异步IO等
分布式: 事务协议:Paxos/ Raft等,同步模式: BSP / ASP等,Partition Desgin: MR, Graph, Matrix等
5 代码性质进化
程序/算法: 一次性,正确执行
作业: 批处理(可能开始要考虑容错性/ 资源消耗) / Streaming (附加latency等)
服务: 可用性/容错/鲁棒/HA,Resource占用,系统性能(Latency, 吞吐), Operation/ monitor(Dri), 用户接口(SLA等), 开发者CI/CD
友情推荐:ABC技术研习社
为技术人打造的专属A(AI),B(Big Data),C(Cloud)技术公众号和技术交流社群。