Edison's Studio.

Edison's Studio.

Thinking, writing and sharing

loading
nextjs-pagination
环境123node: v20.11.0npm: 10.2.4next: 14.1.0 初始化应用1npx create-next-app 客户端渲染 客户端渲染要求自身及子组件都是客户端渲染,即都需要上声明 'use client' state 触发整个 DOM 重新渲染,所以使用必须是客户端渲染 客户端重新渲染,页面内容也要更新,所以描述页面的 DOM 也被当作客户端渲染组件,也需要声明 'use client'; 所以该组件不能以 children 组件传入。 理解了客户端渲染的方式,就可以很容易的实现分页了。 实现123456789101112...
smart-contract-demo
构建一个DAPP的demo 参考How To Build A Blockchain App with Ethereum, Web3.js & Solidity Smart Contracts
多租户应用与架构设计关注点
本篇是关于多租户应用与架构设计关注点的一些自己的思考。本篇强调多租户本质是支持共享与隔离。同时提到应用架构可能的形式以及多租户集成的设计。核心的关注点强调了对业务未来长期的判断决定了隔离粒度,最终决定了业务应用的产品架构与技术架构设计。 本篇更多是提供一些启发,供商业规划、业务负责人、技术解决方案提供方在做多租户集成时,进行参考。本篇不作为多租户服务提供者的设计建议。 什么是多租户多租户是一种实现资源共享与隔离的架构。 一、共享用户不可直接触达的资源必然是共享。 共享是为降本增效,最重要还是为了增效。 计算资源有效运行时间 存储空间有效利用 降低应用维护、多集群维护、观测系统搭建、...
go-ddd
基于 internal 规划工程目录Go internal package design介绍了设计的原因 Go encourages structuring a program as a collection of packages interacting using exported APIs. However, all packages can be imported. This creates a tension when implementing a library or command: it may grow large enough to structure as mul...
使用 `git pull --rebase`
git-rebase使用 git pull 的时候,要加上 --rebase,减少merge,保持 log 整洁 参考git rebase
opnetelemetry-jaeger
在调研中,持续更新本篇 … 架构 Tracing核心概念此处只介绍使用中会遇到的概念,具体细节请查阅文档 API TracerProvider 提供访问 Tracer 的入口。作为一个池子放置和管理 Tracers Span Exporter 定义一系列接口,执行 telemetry data 的序列化与反序列化,以将数据提交到不同的 backend。 应用 Tracing根据其架构设计,所有的应用都可以实现为: 定义 Resource 创建 Provider 设置全局 Provider (option) 设置 Exporter (option) server 中使用 Traci...
ddd-thinking
DDD 关键概念Domain 中的概念Context一个Domain独占一个Context。在Context中完成下述的一系列逻辑。在应用DDD中,最难的一步是,划定Context。将不同Domain的边界准确的描述清楚,对于抽象能力、业务理解准确性与未来预期的判断能力要求极高。边界划定的不好,也将难以保障内聚与耦合的合理性。 Aggregate、Entity、Value Object将三者放在一起,是因为三者是一个包含关系,并对上层提供引用。在这些model中,会提供独占的attribute以及对应的对attribute的访问方法。 Service对于一些无法由一个model完成执行的...
mvc-and-ddd
MVC与DDD比较(2022.05.23)MVC与DDD其实并不是对立的。在MVC中,我们会在controller中执行一些校验逻辑,包含可能的鉴权、参数校验等。我们也会在view里面实现service,包含各种validator与serializer以及data transfer。 DDD拆解并丰富了MVC中的M,将一些在V中执行的逻辑迁移到M中,由domain model执行model内的业务处理,同时将DTO从M中剥离出来放到infrastructure中,借由其他的设计模式如repository或者CQRS等进行处理。 同时,DDD中依然会有一些业务操作无法在model中完成,这...
Git commit 规范
commit message format提交格式12345<type>(<scope>): <subject><BLANK LINE><body><BLANK LINE><footer> type build:对构建系统或者外部依赖项进行了修改 ci:对CI配置文件或脚本进行了修改 feature:增加新的特征,一般指的是大的变更 func: 增加新的功能,一般指小的功能 fix:修复bug impr: improvement,小的代码设计改进 conf: 仅配置变化,Spring配置、propert...
avatar
Edison
Romantic