1. 开始设计阶段尽可能进行接口设计,面向接口设计的系统会事半功倍。
2. 尽可能迟缓考虑切面 AOP拦截器,那是对懒人、或者对已有的系统进行有效快速地实现需求。
3. 使用AOP拦截器对系统的理解、设计思想有大打折扣。新人很难快速入门。
4. 本质理解,使用 AOP对 jvm 来说自己的类都是不可见的。被Spring 或者 其它一些执行框架进行了proxy,所有看到有时候出错是某个类的 proxy 出错了。
5. AOP中 执行机构生成的对应的 proxy 只能对外部调用本类方法进行拦截,如果本类方法调用本类方法则不会拦截,this 指针是不会被代理的。
6. SDK有三种:一是仅仅提供 functionality, 功能性的提供,你需要写自己执行器,如 WinAPI SDK, JNA等;
二是框架形式的,框架已有,在框架基础上实现业务,执行器不好含在内,如spring mvc,tomcat 是执行器;
三是本身可执行的,SDK内有执行器、线程池,业务中是向 SDK 注册一些监听器,再就是调用一些 SDK API ,比如 Kaa SDK。
7. 现在项目开源巨多,在考虑业务需求,首先参考一些开源项目;
8. 想起 C++ 的编译过程,对于编译器来说,尽量将C++语法如何巧妙地转化成 C 语言,比如成员函数最终都会变成全局函数,函数第一个参数是 this 指针。
9. RDMA 是很不错的技术,将数据直接从硬件拷贝给应用程序,绕过OS。
10. Add additional indirections for flexibility. 典型的设计模式: 线程池、Manager、interface listener、watchdog、bootstrap server、business server、zookeeper;
底层通信 RPC 如,netty, thrift 等
11. Web 脚手架项目: MQ,Redis Cache, Mysql, Activity, zookeeper, shiro, quartz, zookeeper, UI(nodejs)