理解面向对象编程(Object-Oriented)的本质
大部分软件编程的本质是为了解决现实世界的问题,如企业库存管理,财务管理,通讯软件等。
所以,软件编 程的本质是程序员用代码的方式使现实世界的事务运行在计算机上,计算机软件是为了解决世界的问题而开发的。
大部分软件编程的本质是为了解决现实世界的问题,如企业库存管理,财务管理,通讯软件等。
所以,软件编 程的本质是程序员用代码的方式使现实世界的事务运行在计算机上,计算机软件是为了解决世界的问题而开发的。
开发中经常会碰到传父类id,查出其下所有子类需求。
实现思路:拿当前查到的 id 递归查询 parent_id = id,合并所有的 id 到一个字段 ids,然后查 id 在 ids 中的数据 。
实现方案:一种是在代码中递归查询实现;另一种是在 SQL语句递归查询实现。
本篇主要描述在 MySQL 中的递归查询SQL语句实现。
对后端开发来说,接口性能优化多少都是会碰到的事,没主动找上你也要思考整理优化的思路和可能的方案。
做技术的,一定要梳理思路,勤于总结,才是快速提升之道。
JVM 全称是 Java Virtual Machine,属于程序虚拟机。
JVM 封装了一组自定义的字节码指令集,有自己的程序计数器和执行引擎,内存管理机制,线程及栈管理机制,看起来就像一台完整的计算机,这就是JVM被称为机器的的原因。
领域驱动设计是一种思维方式,也是一组优先任务,它旨在加速那些必须处理复杂领域的软件项目的开发。
两个前提:
本系列文章主要是阅读《领域驱动设计–软件核心复杂性应对之道(修订版)》–Eric Evans 书笔记。
领域驱动设计是一种思维方式,也是一组优先任务,它旨在加速那些必须处理复杂领域的软件项目的开发。
两个前提:
本系列文章主要是阅读《领域驱动设计–软件核心复杂性应对之道(修订版)》–Eric Evans 书笔记。
事件驱动架构(Event Driven Architecture)是一种分布式异步架构模式,用于创建可伸缩的应用程序,可用于小规模或大规模的应用程序,是解耦复杂系统组件的一种处理手段。
事件驱动架构模式主要包含两种实现方式,分别是调停者拓扑(Mediator Topology),代理者拓扑(Broker Topology)。Mediator 拓扑结构需要在一个事件通过 Mediator 时精心安排好具体的步骤,而 Broker 拓扑结构无需 Mediator ,而是由你串联起几个事件。
本文主要参考:Software Architecture Patterns > Chapter 2. Event-Driven Architecture
分表分库的分布式应用通常需要用到 ID 生成器生成流水号(支付流水号,订单号等),又称为发号器,以标识数据的全局唯一,ID 全局不可重复。
需要特别注意的是发号器服务的高可用性和高性能。当业务严重依赖发号器服务时,发号器服务有可能成为整个系统的短板。
所以发号器服务需要高可用集群部署来保障高可用性,需要高性能以满足高并发的场景。
架构师职责、能力,良好架构设计。
Netflix Github 官方文档:https://github.com/Netflix/Hystrix/wiki
在分布式环境中,系统所依赖的服务的稳定性存在不可控因素,不可避免地会存在失败。
Hystrix 通过隔离服务之间的访问点、阻止它们之间的级联故障并提供回退选项来做到这一点,所有这些都可以提高系统的整体弹性。