Nautil 是一个高效的企业应用前端框架,它可以帮助企业实现一套代码多端运行,让你的开放团队可以更快的一次性开发出手机端的 web 页面和 App 应用,它底层基于 React 作为渲染层,可直接复用 React 已有生态,为你的团队提高开发效率,招人更方便。Nautil 不是对 React 生态的简单封装,而是独立的全新框架,是 React 的超集,专门针对企业应用可能需要长期维护 5 年甚至 10 年而设计。
基于 DDD 的业务建模设计
企业应用的主要目标,是对业务进行处理。业务处理是企业应用的主体,Nautil 设计时完全基于这一点,将企业应用的前端开发分层为:领域层、服务层、控制层、视图层。其中,领域层和服务层为纯业务的层,可脱离具体的前端框架独立使用,是整个核心业务的代码载体。控制层则是对需求文档中关于用户交互部分的建模,通过领域层、服务层、控制层,我们就可以还原整个业务的全貌了。而由于基于 Nautil 可以实现跨端开发,因此,当我们实现全部的业务之后,只需要提供不同端的视图层,就可以快速移植。这种分层的设计,让我们的业务系统有更好的扩展性和适应性,帮助我们在持续的迭代中保持业务的稳定性。
我们将 DDD 的理念融入到 Nautil 框架的开发中,你可以基于面向对象的思想,运用 DDD 的理念,在基于 Nautil 的业务系统中,对业务实体进行建模,对业务的核心逻辑进行建模,按照 DDD 的分层理念对业务系统进行设计,从而获得更加健壮的系统代码。
React 的超集
你可以在 Nautil 的开发中,使用任意的 React 生态中的库来辅助你的开发,Nautil 基于最新的 React,你可以继续运用你在 React 开发中学到的知识。但同时,你会在 Nautil 中获得更多。作为一个应用层面的框架,Nautil 不是简单的把 React 生态整合在一起(虽然市面上有不少这样做的所谓框架),而是基于 React 衍生出自己的范式体系。
首先,Nautil 对 React 进行了扩展,使用 Nautil 的 Component 可以拥有比 React 更强的能力和更简洁的生命周期勾子函数。通过扩展,你可以在 Nautil 中使用类似 Vue 中一样的直接修改属性值来触发重新渲染的能力,还可以获得更丰富的样式传入能力。其次,Nautil 内置了丰富的逻辑组件、hooks、operators,这些内置的功能可以帮助开发者更方便的实现某些以前需要自己编写复杂逻辑的代码才能实现的功能。再次,Nautil 内置了全局状态管理器、路由管理器、I18n多语言管理等,这些看似在 React 生态中可以找到的内容,Nautil 基于自己的理念予以提供,从而让开发者省去选择恐惧的烦恼。最后,Nautil 基于 react 的特性,提供了跨端开发的能力,写一套代码,就可以在 web、native、微信小程序等多个平台上运行。
颠覆性的思维
虽然 Nautil 是基于 React 的,但是却不止于 React,它特立独行,简化写法,让系统开发更舒服。在 React 界,mutable 是异教徒,但在 Nautil 中,你可以使用 mutable 的便捷性,你有了更多的选择,选择,是你的权利。我们想要的,是更优雅的写法,我们不遵循教条,我们更倾向于提高效率。而且,nautil-cli 是可选的,市面上那些框架,强制要求你采用它们的 cli 工具,这就导致了你无法只使用它们的有效部分,你必须基于它们的工具,从头来过,这基本上是毁灭性的。而使用 nautil,你可以把它当作是一个库来使用,你不必须使用它的 cli,你仍然可以享受它强大的能力。
故事
我从 2018 年开始思考和实现 Nautil,2019 年发布它的第一个可用版本,期间经历了无数的痛苦和开心。当实现一个新奇的想法之后,我会为此高兴的睡不着,连夜写文章;当遇到一些几乎不可能实现的功能的时候,我又垂头丧气,想是不是自己的方向错了,不应该再继续下去。从 2018 年到 2021 年,Nautil 变的更强大,就像它的名字一样,它代表着神奇的鹦鹉螺,螺旋式的生长。现在,我已经在腾讯内的多款应用中使用它,相信它还会在更多的地方发挥它的潜力。
2021-11-20 2491
看了一下,总感觉结合 ts 用会有坑。。。魔法太多了
ts是结构类型,可以自己定义结构,所以不用太担心。不过你说魔法,确实是有的,难度是有点大。