18、反应式编程框架设计:如何使程序调用不阻塞等待,立即响应?我们在专栏[第1篇]就讨论了为什么在高并发的情况下,程序会崩溃。主要原因是,在高并发的情况下,有大量用户请求需要程序计算处理,而目前的处理方式是,为每个用户请求分配一个线程,当程序内部因为访问数据库等原因造成线程阻塞时,线程无法释放去处理其他请求,这...2025-11-02
17、设计模式应用:编程框架中的设计模式在绝大多数情况下,我们开发应用程序的时候,并不是从头开发的。比如,我们用Java开发一个Web应用,并不需要自己写代码监听HTTP 80端口;不需要处理网络传输的二进制HTTP数据包(参考[第4篇网络编程原理]);不需要亲自为每个用户请求分配一个处理...2025-11-02
16、设计模式基础:不会灵活应用设计模式,你就没有掌握面向对象编程我在面试的时候,喜欢问一个问题:“你比较熟悉哪些设计模式?”得到的回答很多时候是“单例”和“工厂”。老实说,这个回答不能让人满意。因为在我看来,单例和工厂固然是两种经典的设计模式,但是,这些创建类的设计模式并不能代表设计模式的精髓。 设计模式的精髓在...2025-11-02
15、软件设计的接口隔离原则:如何对类的调用者隐藏类的公有方法?我在阿里巴巴工作期间,曾经负责开发一个统一缓存服务。这个服务要求能够根据远程配置中心的配置信息,在运行期动态更改缓存的配置,可能是将本地缓存更改为远程缓存,也可能是更改远程缓存服务器集群的IP地址列表,进而改变应用程序使用的缓存服务。 这就要求缓存服...2025-11-02
14、软件设计的单一职责原则:为什么说一个类文件打开最好不要超过一屏?我在Intel工作期间,曾经接手过一个大数据SQL引擎的开发工作([如何自己开发一个大数据SQL引擎?])。我接手的时候,这个项目已经完成了早期的技术验证和架构设计,能够处理较为简单的标准SQL语句。后续公司打算成立一个专门的小组,开发支持完整的标准...2025-11-02