惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
人人都是产品经理
人人都是产品经理
Martin Fowler
Martin Fowler
D
Docker
F
Full Disclosure
Recent Announcements
Recent Announcements
MyScale Blog
MyScale Blog
美团技术团队
Microsoft Azure Blog
Microsoft Azure Blog
B
Blog
A
About on SuperTechFans
IT之家
IT之家
P
Proofpoint News Feed
有赞技术团队
有赞技术团队
V
V2EX
阮一峰的网络日志
阮一峰的网络日志
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
雷峰网
雷峰网
WordPress大学
WordPress大学
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 【当耐特】
V
Visual Studio Blog
Hugging Face - Blog
Hugging Face - Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
Microsoft Security Blog
Microsoft Security Blog
U
Unit 42
腾讯CDC
Stack Overflow Blog
Stack Overflow Blog
B
Blog RSS Feed
I
InfoQ
N
Netflix TechBlog - Medium
博客园 - 三生石上(FineUI控件)
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Vercel News
Vercel News
月光博客
月光博客
F
Fortinet All Blogs
Google DeepMind News
Google DeepMind News
小众软件
小众软件
Recorded Future
Recorded Future
博客园 - Franky
Blog — PlanetScale
Blog — PlanetScale
云风的 BLOG
云风的 BLOG
C
Check Point Blog
博客园 - 叶小钗
GbyAI
GbyAI
M
MIT News - Artificial intelligence
博客园 - 司徒正美

博客园 - Roy Zhang

让文档和Demo生成更加简单和强大 - SmartDoc 0.1.1 说明 SmartDoc(YUIDoc) 注释编写 JS文档和Demo自动化生成工具 - SmartDoc发布 smartjs - DataManager 场景示例分析 - 数据懒加载 smartjs - DataManager API smartjs 0.3 DataManager 发布&介绍 smartjs 0.2 OOP讲解 - factory smartjs 0.2 OOP讲解 - Klass 类继承 smartjs 0.2发布 - 新增oop模块&AOP增强 smartJS 0.1 API 讲解 - FlowController smartJS 0.1 API 讲解 - Trigger smartJS 0.1 API 讲解 - PromiseEvent SmartJS 第一期(0.1)发布 - AOP三剑客 SmartUI2.0后续声明 JQuery SmartUI 2.0 方案启动 JQuery Smart UI 开发规范&API文档发布 JQuery Smart UI与Moss结合演示 JQuery Smart UI 快捷开发实例应用(二)— 开发模式【从项目开发流程说起】 告别aspx,高性能快捷开发 — JQuery Smart UI 快捷开发实例应用(一)入门【后篇】
SmartJS 系列规划分享和背景介绍
Roy Zhang · 2014-06-21 · via 博客园 - Roy Zhang

发布了smartjs后,有朋友问:“没看懂究竟是干嘛的”。唉,打击了,每次我都想高唱其实你不懂我的心。

今天把相关的东西都整理了一遍,给大家介绍一下。里面绝大多数都已经实现过,有些则是有新的思路重做或者是加强。哈哈,应该也算不上重新造轮子,


这几年一直在以前端顾问的身份外包给国内某大型h公司做企业级的框架,然后提供给h公司内部项目使用。前后经历过三个这样项目,都是担任前端架构师,其中一个是移动web类,是支援过去的,没有深入,搭了个架子子就被拉回原来项目。只可惜该公司没有开源的文化,所以很多东西都无法分享出来。

同时,我自己的smartui2.0的内容也筹备的差不多了,所以顺势就在框架上面引入了不少smartui2.0思想和实现。而因为项目的忙碌,我自己的smartui2.0却进度缓慢。

今年,以前做的框架在h公司使用率非常搞,得到很多好评,同时很有意思的东西也搞的差不多了,然后…………,就没有然后了。h公司结构调整,框架与另外一个合体,又要重新搞出一个高大上的cloud app engine.

借此机会,我刚好把一些新的思路和以往做的东西都梳理了一遍,这就有了smartjs。

什么是SmartJS


是一个js库,提供了一些前端开发支持,做的事情与jquery,zepto这些基础库不重合,而是补充. 主要提供了一些(aop,promise,oop,lifecycle)编程方式的辅助和一些数据的管理控制,提倡以松耦合,注入,插件式开发。目前版本基于Jquery,后续会提供独立版本。

Smart系列是指的基于Smartjs而实现的前端产品,有mvvm框架,web ide等等

Smart规划


 smart 思想

搭架子,封装一些特有的东西。引入有用的第三方库。

所有系列都是一套体系。但同时每块也都保持独立。每块也都是模块化的。

aop,promise,oop始终贯穿。

模型驱动,从建模 - ui - service - db

   (…………还有些高大上的词不记得了,就不咧了)

Smart 核心库

  就是目前发布的smartjs的内容。完成了aop,oop,dataManager的初版;util则是部分;

  • util :工具库,常用工具
  • aop : aop编程支持库
  • oop : oop编程支持库
  • dataManager : 基于策略的数据管理对象;简单来说就是管理数据冲那里来,到哪里去;如何来,怎么去;
  • dataManager-object :object结构的数据管理
  • dataManager-table :table结果的数据管理
  • dataManager-tree :tree结构的数据管理
  • exception : 异常处理
  • dataUtil :数据工具库,数据的转换和格式化
  • validator :验证器
  • i18n : 国际化

smart-mvvm

  基于模型驱动的mvvm引擎。以前是mvc现在实现为mvvm;

smart - ui

  ui库的封装策略是建立一个widget工厂,使用feature应用公共特性,使用plugin做扩展。因为ui的控件会比较多,前面都会以引入一些第三方的控件为主,然后统一出入口。

  • widget-factory : widget工厂,管理widget的注册,初始化,feature的应用,plugin的扩展
  • widget-plugin : 插件管理器;smartui内置widget开发的都是以插件形式开发;
  • ui-feature : ui特性,封装一些ui共有的特性;widget和dom元素都可以应用这些特性;
  • ui-compileEngine : ui的编译引擎;定义规则扫描dom,做自动初始化(widget)
  • layoutBuilder : 布局生成器
  • uiUtil : ui的工具库

smart - assist

  辅助开发的工具库,定位错误,日志注入,调试管理等;

  • logger : 使用aop的方式,将各个模块的日志进行注入;在编码过程中,必不可少的会产生大量的日志信息,而发布后,用户是不需要这些信息的,因此既增加了js的大小,绝大多数又没有用处;那么smartjs的做法是将正常库中的一部分日志提取出来(并不是所有的日志,不是所有的位置都可以注入),单独定义一个为改模块服务的日志js,当需要查看日志的时候,在加载日志js,注入日志;同时logger可以通过模块,日志类型来控制输出;
  • debugger : 调试管理;各位攻城师有没有碰到过,有时想调试的时候,跟踪起来很费劲,尤其是第三方,而且是压缩之后的js,是不是有种飞的感觉。debugger也是跟logger类似的策略,使用直接和注入的方式进行预设断点。在开启模块的debug模式后,进入调试。
  • assist-panel:在页面上面提供浮动的panel来设置debugger和和查看logger。上面logger和debugger只有使用了assist-panel才使用才会更加方便。另外还会针对其他模块提供一些通用接口来注册到panel上面使用,比如:结合mvvm会有模型和视图的一些信息查询和控制;datamanager的数据信息和流向等等。

smart-desinger

  一个Web IDE;

  • modal-desinger :模型设计器;
  • ui-desinger :web ide的基础引擎,提供通过拖拽,配置来生成页面;
  • behaivor-desinger:行为编辑器,通过拖拽来配置行为和动作,也可以看成是图形化的code编辑器。
  • theme-designer : 主题设计器

smartAS

  这个不属于smartjs的内容,是我一个同事(陈大师)力作。一个后台的开源项目。是通过前端图像配置来生成服务的引擎。到时会与smart的designer结合,提供完成的设计器功能。

——————————————————————————————————————————————————————————————————————————————————————————

  就介绍到这,还有一些细节和其他的模块不是特别重要就没列在里面。一不小心又画了个又圆又大的饼,不知道很年何月才能得偿所望。现在白天基本抽不出时间来弄,全部都是业余时间。按这个节奏是计划是在十一之前把smartjs核心库完成和初版smart-mvvm。

  另外文章的排版很烂,没时间详细整理,请各位见谅。