看了欧美的项目源代码，给我的一大感觉就是混乱不堪, 难道国外不注重编程规范？
避免被被喷，先列举下看过的国外源码 存储：MySQL（在在看中），redis，clickhouse，cehp（看了一点点），hbase，hdfs，minio，es等 框架：mybatis，spring，spring mvc，stust2，spring cloud生态，okhttp，netty，mina，grpc等等 中间件∶kafka，Prometheus，EKF，kubernetes以及生态，flink等等 避免争吵，对外国的创新是认可的，这点不必讨论。 可能要反驳了。 不，他们非常注重编码规范 不，他们非常注重编码规范 不，他们非常注重编码规范 仅仅注重编码规范有什么用，一个好质量的源码更多是需要：设计，编码能力，重构，基础功能，耦合，高质量的抽象，把控，友好，扩展。 编码规范仅仅是让代码样式好看点而已。而且他们都喜欢拯救宇宙，每次只负责吹与搭个架子。而不负责完善。 不仅仅代码难看，还有设计难以理解，还那官方文档真tm的看不懂。国内的书籍是照搬官方文档，博客搬书籍，我去，看来看去命都没有了。 本来一个简简单单的功能，那是怎么简单怎么来，不管他人死活。整得很难理解，很笨重，很沉重，绕来绕去。 举例： hbase：号称“列族数据库”，说什么压缩，说什么高性能，让好多人以为是列数据库。找了一个星期的列，硬是没找到。来是“列族”，对整个表或则一个表分几块存储，尼玛。hbase仅仅是在hdfs进行一次封装，对hdfs进行表的抽象与管理。把hbase吹上天，看完源码发现仅仅如此。 flink：内部使用akka，我去，使用idea查看调用链，那是一个死循环。12核CPU，64G内存都抗不住。那文档是人看的呀，说支持本地，yaml，kubernetes部署。硬是没看懂他们的区别。jobmanage，taskmanage，resourcemanager干嘛，也没看懂。最后是把源码看了才每个部署方式不用，才知道每个manager是干什么的。 kubernetes：个个组建的定义真的很奇葩，仅仅是为了解决高可用，但更加不高可用了。所有组建强制使用https通讯，尼玛，学这鬼东西的意义不大又浪费时间，不学kubernetes又强依赖，而且client与service的关系又不同。学与不学之间犹豫很久，实在环境搭建不起来，只能学了，那套鬼东西细节又多，又不好测试。浪费十多天的时间。skywalking，clone下来，直接。启动了 spring cloud rpc：由feign（网络调用），ribbon（负载），hystix（限流）三大块组成。为了在里面集成一个功能，没找到资料，只能看了源码，wc，集成不进去。dubbo集成轻轻松松 .......还有更多...无法理解行为的。