我的前端程序搭建精要

前端程序搭建精要(六点)

 

一. 全局消息订阅/广播机制(被观察者),解耦的关键

二. 模块化设计

    1. 同级模块之间各行其道、互不干预、此不知彼

    2. 上级模块调用下级模块

    3. 下级模块以自身为被观察者向上级模块发送广播消息,

    4. 全局广播随处可发,但只有一级模块可以监听

    5. 不可以跨层级监听,但可以跨层级调用

 

三. 逻辑 / 视图相分离(为逻辑做准备)

    1. 不是严格意义的视图模块只负责UI界面刷新,UI层只处理跟本模块有关的内容。

    2. 功能组合、复杂数据分析等功能由上级模块或专用逻辑功能模块完成

 

四. 程序逻辑链条清晰、可见、可控

    1. 用户I/O操作,时间片函数-->修改本地数据-->向服务器端发消息

    2. 服务器接口异步返回等-->修改本地数据——>刷新本地UI

 

五. 数据/视图分离,数据推拉机制完善

    1. 拉:模块需要数据时可以从全局数据入口轻易获得所需的结构化数据

    2. 推:某重要程序行为发生或本地数据/状态变更时,进行全局消息广播

 

六. 开发软性约定

    1. 全局消息分为Action / Notice两种

            Action:本模块无法完成所需功能,需调用其他模块完成后续流程

            Notice:本模块的程序行为造成本地数据/程序状态发生变化,通知相关模块进行响应

    2. 视图/逻辑分离闭包原则、本体化模块划分原则等等...

 

 

 

附:前端程序初始化流程

    A. 初始设定和初始界面

        显示初始的Loading进度条,

        完成一些需要在软件运行之前的准备工作如:

                   软件版本检测

                   加载设置子功能模块

                   获取服务CDN地址等

                    这些信息多由本地缓存数据提供

    B. 加载各种配置表信息

    C. 从服务器获取必须的信息,如:用户基本信息、账户信息等

    D. 初始化程序框架和各个模块

    E. 初始化UI系统,如:

                    设置全局字体,音效等,

                   2D程序要设置笛卡尔坐标系和舞台整体缩放模式

                   3D程序则要初始化舞台,世界,摄像机,光源,以及纹理法线顶点的管理器...

    F. 开始渲染UI界面,进行首页绘制

    G. 程序开始运转起来,各子模块开各行其道

            一个前端程序,无论是BS的还是CS的,大体上都是这几个步骤,可能根据业务的不同,先后顺序或具体内容上会有差别,也可能要做的事情很多很杂。但千头万绪总有出处,或者可以根据时间上或空间上的共性划,归为几大步骤或几类。

            如果一个程序的初始化分为几步或几类事情,这几类应该是先完成第一步进行下一步,完成后再下一步......这样的程序是易于维护和理解的,如果我第一类事情做一点点,又去做一点第四类事情里的内容,然后再继续做第一类的事情.....那么我认为这个程序的初始化就是比较混乱并难于维护的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值