最近稍微有一点空闲时间,可以用来维护一下自己的小框架 Hasor 在设计框架时自己有了一点想法,特此专门将其中一个比较重要的组件单独拿出来独立设计。
一方面可以进行更佳明确方向性的发展,另方面可以实践一下对于框架开发上的一点个人感触。
开发这个框架不敢想,会对国内开源软件产生多么深远的影响。能做出一点点贡献也就算可以了。同时通过这个框架的开发希望能吸引到志同道合的朋友共同讨论、分享,将来或许有机会可以共同做一番事情。
这个框架是一个Web相关的开发框架。之所以选择Web框架做为入手点有这么两方面考虑。
1.web框架有着广大的受众面。
2.web框架有着极其明确的应用场景。
3.实用性比较强。
关于文章中的“我”
文章中的“我”也可以是读者自己,用第一人称,希望可以让读者有更多的参与感在里面。
下面正式开始框架的设计旅程
首先我先抛出几个开放性的问题,希望在文章之后大家可以得到自己的答案。同时也希望大家可以发表自己的观点。这里抛出这几个问题,全当是抛砖引玉吧。
我如何开始一个框架的设计?我的框架究竟需要那些功能?
上面这些问题先按下不表,我们来继续旅程。在开始我们伟大的登月工程之前现为它起一个好听的名字吧。因为这个框架是在Hasor之后开始的,那么就叫它“haweb”吧。
嗯,就是这个名字了接下来在让我们加上一些噱头和定语让它高大上起来。->《Haweb轻量化Web开发框架》。
好了现在正是开始我们的伟大工程吧。
Haweb应该具有什么功能或者特性呢?这个问题很重要,我先自己脑洞一下。
- 它是一个Web开发框架,自然要支持web开发上的一些通用解决方案,例如:mvc、restful。
- 这个框架要提供安全上的保障,比方说常见的cxrf,xss这些东西,框架至少要提供一些web安全上的支持。
- 它要方便扩展,总有一些功能是没有想到的,当我想到的时候我想可以随时加入到框架中。
- 它要有一些实用的工具,我可不想在写业务的时候还要写一大堆工具,我要的是可以全身心投入在业务上。
- 它还要能帮我解决单点登录的问题,让我可以在写程序时完成一次登录到处登录。
- 它必须要能在分布式环境下良好的部署运行。
- 它要支持多种渲染引擎,以备将来所需。
- 它要能做到静态化的支持,用来管理程序中的静态文件,例如js、css、图片。
- 它要支持国际化,天知道那天我的应用会响彻宇宙。
- 它要有请求访问日志,将来要方便我的问题排查。
- ....
要列出的可能还很多,但是今天就先列出这么多。一个理想的Web框架应该具备哪些功能?也欢迎大家一起讨论。
在下一篇blog文我将考虑将这些需求进行分类归纳整理,形成计划。