首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

框架设计:如何基于 Egg 设计 Node 的服务框架

Thinkjs[2] , 同样的约定大于配置,同样的基于 Koa2 进行包装完善,同样的采用多级分层的设计方式(Controller, Service 等等),让应用开发变得更加清晰明了,然而有趣的是...秉承怎样的设计理念 考虑授人以鱼不如授人以渔嘛,我们先分享下我们的设计理念,这是最简单却也最重要的开始部分,我们的目标是风格统一、上手容易、维护方便: ?...image.png 定完目标,设计好流程,就要准备具体的实施了,我们实施涉及到过程,主要从下面四个方面着手: 框架关系 通用 API 插件定制 工程管理 如何设计 Framework 框架关系 我们将所有通用的...衍生出其他框架如 GraphQL 相关的框架、微服务相关的框架,它相当于是一颗框架种子,可以往不同的方向定制: ?...image.png 工程管理 由于插件和插件之间,插件和框架之间,框架框架之间存在相互依赖的关系,代码管理就成为了比较头疼的问题,推荐使用目前比较火的 monorepo 来进行管理。

1.3K21
您找到你想要的搜索结果了吗?
是的
没有找到

框架设计原则

按照作者的说法,其实是说,框架只负责管理对象,对象的出生和死亡不由框架负责。即,用户应将实例注册到框架中。 但 Spring 似乎不是这么做的。同时,如果使用注册机制,那么就需要硬编码。...这是在框架设计中,是非常重要的。 PPT 中已经说的非常清楚,我就不再说明。其中,Invocation 一定要轻量。否则,对 GC 来说,将是很大的压力(使用对象池?性能不好。)...这个就比较爽了,我们知道 Dubbo 是管道式设计。一个 Invoker 贯通整个流程,事实上,web 服务器都是这么设计的。例如 Tomcat ,Netty。...今天说的框架设计和现在大部分人喜欢说的架构设计有所不同,现在似乎只需要再 processon 上放几个阿里云组件,再连几条线,就是架构设计了 :) 我个人认为,框架设计更能考验一个程序员对程序的抽象和管理能力...然后,再说说我的总结:关于一个系统的设计,这里应该指的是框架设计,首先要知道用户需求(废话)。根据需求抽象出模型,再变成代码,且是可扩展,可复用的代码。

1.1K31

RPC 框架设计

需要设计“应用层报文(协议)” “跨进程”“远程”调用的过程 ? RPC 框架的架构职责 上述跨进程调用远端的服务,存在的问题是没有将通用操作抽离出来。...RPC框架职责: 让调用端,像调用本地函数一样,便捷的调用远程的服务 让服务端,像提供本地函数一样,便捷的提供远程的服务 向调用方屏蔽各种复杂性,向服务方也屏蔽各种复杂性,让调用方感觉上就是在调用本地函数一样...方案二:序列化协议 序号 | key 长度 | key 值 | value 长度 | value 值 序列化协议设计,要考虑什么因素?...像调用本地函数一样,去调用一个远端服务 为什么需要 RPC 框架? 用来屏蔽 rpc 调用过程中,跟业务代码无关的底层技术细节 什么是序列化?为什么需要序列化?

2K20

.NET框架设计(常被忽视的框架设计技巧)

—常被忽视的C#设计技巧”一文来看,对于框架设计的技巧还是有很多人比较有兴趣的,那么框架设计思想对于我们日常开发来说其实并不是很重要,但是对于我们理解框架背后的运行原理至关重要;当我们使用着LINQ灵活的语法的同时我们是否能理解它的背后运行原理...、设计原理更深一点就是它的设计模式及复杂的对象模型; 从一开始学习.NET我就比较喜欢框架背后的设计模型,框架提供给我们的使用接口是及其简单的,单纯从使用上来看我们不会随着对框架的使用时间而增加我们对框架内部设计的理解...,反而会养成一样拿来即用的习惯,我们只有去了解、深挖它的内部设计原理才是我们长久学习的目标;因为框架的内部设计模式是可以提炼出来并被总结的; 这篇文章总结了几个我最近接触的框架设计思想,可以称他们为模式...;由于时间关系,这里只是介绍加一个简单的介绍和示例让我们能基本的了解它并且能在日后设计框架的时候想起来有这么一个模式、设计方式可以借鉴;当然,这每一节都是一个很大主题,用的时候在去细心的分析学习吧; 2...;(我们这里讨论的是你作为开发框架设计者!)

1.3K80

设计思维框架框架 :为现代企业重新设想的设计思维

设计思维框架框架 :为现代企业重新设想的设计思维 我们认为世界体系应该为人服务。 我们以人为本的使命的核心是企业设计思维:一个以现代企业的速度和规模解决用户问题的框架。...作为设计思想家,您可能不同意这一点,但它仍然是一个有效的策略。 但我们并没有通过我们发布的功能和功能来衡量。 我们衡量的是我们如何满足用户的需求。...项目管理框架可以帮助管理复杂性。我们可能将团队划分为“小队”或“工作流”,或者我们可能将时间划分为“冲刺”或“阶段”。我们甚至可以围绕团队遵循的共同流程进行标准化。...虽然它们不会完全取代正式的设计研究和可用性研究,但赞助商用户将帮助您打破移情障碍,并在整个项目中与实际需求保持联系。...与赞助商用户合作 如果您是产品团队,赞助商用户关系归产品管理和设计所有,但值得与您的销售和营销团队联系以提供候选人。

62550

WinForm企业应用框架设计【三】框架窗体设计;动态创建菜单;

要不是我的朋友乔乔==乔不死跟我聊到领域驱动设计~ 我也不会发现第一篇中关于“充血实体”的错误说法(至少~我写文章的时候~内心的想法是错的~) 我个人不是很喜欢领域驱动设计~感觉这种思路(我们暂且叫它思路...虽然它有一些既有的原则和模式) 重点要求架构师深入到业务领域中去~ 但是在国内往往很难真正的与领域专家做深入交流~ 架构师划分的领域模型和聚合往往与真实的情况差别较大~ 即使划分的较好~新的业务和变化的业务也另设计师非常头疼...~ 另外 设计师很难将庞大复杂的业务抽象成领域模型 往往需要引入更为复杂的模型以对真实业务进行建模 ----------- xuefly说多放点内容出来~好吧~这次多一些(多了吗?)...言归正传 一:框架窗体 先看图片  框架窗体分管布局的只有四个Panel; 上、下、左、右。(搞过EXTJS的人比较喜欢说成东、南、西、北)-_-!...(设计状态会执行一些代码~如果不进行处理~窗体就无法设计) 代码如下~ /// /// 判断是否为设计状态 /// </summary

87230

.NET可逆框架设计

前段时间一直在学习和研究.NET事务处理,慢慢的我发现可以使用事务处理来实现一种可逆的系统框架。这种框架在一些IT社区似乎还没有见过,但是在我们日常开发中确实有这个需求。...什么是可逆的程序框架 什么叫可逆的?程序的执行是可以被无限制回滚的。 什么叫可逆的框架?实现了对可逆功能的封装,并能通过简单的接口调用进行使用。...2可逆框架的实现原理 由于我们只能控制自定义事务资源管理器的内部实现,所以我们在构建自己的数据处理时问题变的简单多了。 实现可逆框架的核心技术就是使用依赖事务进行事务的克隆操作。...所以这里借鉴了Transaction Scope的设计思想。...总结: 这篇文章主要是想介绍一下事务的另一种使用方式,对可逆框架设计方向算是一个抛砖引玉吧,希望大家用的着。

86320

框架设计的想法

如何开发一个框架,或者如何搭建,如何设计一个框架,很难教会一个新人,本文记录一些能用文字写的方法 本文我写了很久但是我发现很难用文字来描述,如何搭建一个框架,有什么套路。...需要多去开发框架,同时看看框架的使用者是如何使用的,在大框架和细节取得平衡 方便扩展 如果一个框架里面涉及到扩展的功能,例如遇到数据 A 执行 FooA 功能,遇到数据 B 执行 FooB 功能,需要在框架设计的时候...这个原则是用来限制新框架开发者使用大量的抽象定义,进行过度设计。...如在框架里面没有特殊理由而公开字段,例如没有特殊理由公开了读写权限的委托,例如在里层方法大量使用 Thread 线程 统一性设计 统一性的含义是抽象的意思,指的是整个框架的整体是有统一的设计,属于比较难已描述的部分...维护好统一性设计的优势在于减少理解成本,无论是框架的维护者还是框架的使用者都可以使用更少的知识进行维护和使用框架 上一条 “遵守默认约定” 的实质其实也是为了统一性设计,默认的约定就是一个统一,所有的框架和系统等都遵守默认的约定

46520

框架设计杂谈(二)

框架中实现多应用级别的授权实践 在框架中实现多应用级别的授权通常分为以下几个步骤: 1....框架实现复杂可配置数据授权实践 复杂可配置数据授权实践通常需要一个灵活的框架来实现。...下面是一个基于RBAC模型实现的框架示例: 1.用户管理 在该框架中,用户是一个基本对象,其包含了基本信息、角色及权限信息等。...在该框架中,我们可以使用数据库来管理权限信息,使用ORM框架来管理权限实体对象。同时,我们需要实现一些常用的权限管理功能,如添加、删除、编辑权限等。...通过以上框架实现,我们可以构建一个灵活、易扩展的数据授权系统,满足复杂场景下的数据授权需求。

17620
领券