红包项目总结---MVC版
起因: 针对传统版的明显缺陷做优化。主要是提升可维护性。
效果
线上: 未发布
线下:http://10.27.5.1/svn/FED/code/hongbao/year-end hb-fact-mvc项目。参照传统版运行方式。
亮点
观察领群红包首页代码
原因
采用了自研框架。
项目关键点
响应式 沿袭传统版
应用程序框架
特征: 框架约束业务渲染,MVC标配类显式分层。
架构: 自研框架wap.js实践
MVC标配:
service类: wap.js约束
模块化框架: sea.js。 选择sea.js,不选择require的原因是,它压缩后只有几K。require几十K。sea有很多中文文档,容易剖析源码。
DOM库: zepto
组件化:接口束缚流程。子类继承组件wap-cmp.js类。接口按顺序调用流程方法。
异常: dao层 zepto自带error。
日志:wap.js 访问模板链数据为空时抛出warn日志
适应场景 2人上。SuNing M站。小项目均可以使用,理解MVC。
优点 可维护性强。
缺陷 前期需做足对框架的优化,源码剖析。 性能瓶颈依赖自研框架的水准。(打包很痛苦,这个不算明显的缺陷吧,解决了,照着流程做就OK)
集成方案
spm
未打包成功,陷在合并那里。
fis无法合并seaJS。原因是,只有seaJS知道依赖了哪些类。spm支持合并,则通过require字面量去分析依赖,它不支持seaJS的别名,影响我的设计。至于张云龙提供的松鼠,基于fis封装的模块化框架+集成方案一整套东西,还未尝试。
性能 无
项目明显缺陷
1,未有堪比传统版的打包方案
2,引入seajs,自研wap.js 在提升可维护性的同时,均会对性能造成损伤。
缺陷处理
打包可以解决。
性能方面,针对WAP界面的内存下,网速下的实际情况。应对可维护性,代码管理采取’优雅降级‘的办法,来提升性能。推出实用版。
1,去掉模块依赖,采用JSON类来替代模块。在源码hb-fact-wapmvc项目里打开getgrouphb.html里可以看到
如果对性能仍不满意,还可以将MVC标配基类的继承改为组合,甚至去掉。
不采用模块化框架,又采用MVC设计,带来的明显问题就是,加载的JS,看上去10几个太多。实际上我们可以自研一种模块加载,对现有的集成方案fis,gulp等进行改造。达到开发时采用CMD模块化,打包后,去模块化。页面合并JS,合并CSS的效果。
seaJS+spm做不到。因为seaJS仍会打进包里。
源码
意义
MVC版红包虽然进行了强力解耦,对wap端来说,解耦却有点过了,可也并不是针对SPA推出。因为,Augalar是现在SPA的霸主。但是,MVC设计统治后台,前端。一旦涉及多人协作,它是不二之选。它只会因为使用语种(java php flex js),环境(浏览器、虚拟机)的不同,而变形。本质不会变。
此版是阐述我对MVC的理解。希望给大家有所帮助,并不是要推广它。
红包项目总结---MVC版的更多相关文章
- RDIFramework.NET-.NET快速信息化系统开发整合框架 【开发实例 EasyUI】之产品管理(MVC版)
RDIFramework.NET—.NET快速开发整合框架 [开发实例]之产品管理(MVC版) 接上篇:RDIFramework.NET (.NET快速信息化系统开发整合框架) [开发实例]之产品管理 ...
- .Net Core3.1 + EF Core + LayUI 封装的MVC版后台管理系统
项目名称:学生信息管理系统1.0 后台框架:.Net Core 3.1 + EF Core yrjw.ORM.Chimp 前端框架:ASP.NET Core MVC + LayUI + Bo ...
- 结对编程项目——四则运算vs版
结对编程项目--四则运算vs版 1)小伙伴信息: 学号:130201238 赵莹 博客地址:点我进入 小伙伴的博客 2)实现的功能: 实现带有用户界面的四则运算:将原只能在 ...
- Java飞机大战MVC版
PlaneWar Java飞机大战MVC版 //无聊时偷的雷霆战机素材写了一个飞机大战,本意是练习mvc,但写得还是不清晰 github下载:https://github.com/dejavudwh/ ...
- Idea 搭建Maven--web项目(MVC)
小编最近正在学习使用MVC框架,在搭建Maven的项目过程中,遇到了很多问题,上网搜了很多材料才找到答案,为了小编以后查起来方便,也为了向广大小伙伴分享,写了这部片博文,敬我昨天一天的学习结果! 步骤 ...
- 移动端自动化测试Appium 从入门到项目实战Python版☝☝☝
移动端自动化测试Appium 从入门到项目实战Python版 (一个人学习或许会很枯燥,但是寻找更多志同道合的朋友一起,学习将会变得更加有意义✌✌) 说到APP自动化测试,Appium可是说是非常流 ...
- 用maven创建web项目(spring Mvc)
用maven创建web项目(spring Mvc) 1.打开cmd进入到你要创建maven项目的目录下: 2.输入以下命令.然后根据提示输入相应的groupId.artifactId.version: ...
- 移动端自动化测试appium 从入门到项目实战Python版✍✍✍
移动端自动化测试appium 从入门到项目实战Python版 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程 ...
- 移动端自动化测试Appium 从入门到项目实战Python版
移动端自动化测试Appium 从入门到项目实战Python版 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课 ...
随机推荐
- 初识bd时的一些技能小贴士
既然小豆腐如此给力,而且充分的利用主动学习的优势,已经有了迅速脑补,压倒式的优势,不过这只是表面而已,一切才刚刚开始,究竟鹿死谁手,还有待验证. 以上可以看到,小豆腐为什么拼命的要teach我们了么, ...
- 第五章 HQL实用技术
第五章 HQL实用技术5.1 使用HQL查询语句(面向对象查询语句) 5.1.1 编写HQL语句 5.1.1.1 from子句 例:fr ...
- 【转】JDBC学习笔记(10)——调用函数&存储过程
转自:http://www.cnblogs.com/ysw-go/ 如何使用JDBC调用存储在数据库中的函数或存储过程: * 1.通过COnnection对象的prepareCall()方法创建一个C ...
- 纯css兼容个浏览器input[type='radio']不能自定义样式
各个浏览器对于表单input[type='radio'].input[type='checkbox']的样式总是各有差异 //html <div class="remember-a ...
- 【转载】stm32定时器-----珍藏版
今天看到一个讲解定时器特别细致入微的文章,真是难得... 原文地址:http://www.cnblogs.com/zjvskn/p/5751591.html 一.STM32通用定时器原理 STM32 ...
- MongoDB基础教程系列--第九篇 MongoDB 分片
1.分片介绍 分片(sharding)是将数据拆分,将其分散存到不同机器上的过程.MongoDB 支持自动分片,可以使数据库架构对应用程序不可见.对于应用程序来说,好像始终在使用一个单机的 Mongo ...
- CSS3 & SVG 制作钟表
在线演示 源码下载
- 【代码学习】GD库中图片缩印
bool imagecopyresampled ( resource $dst_image, resource $src_image, int $dst_x, int $dst_y, int $src ...
- Java中的集合与线程的Demo
一.简单线程同步问题 package com.ietree.multithread.sync; import java.util.Vector; public class Tickets { publ ...
- poj3061尺取法
A sequence of N positive integers (10 < N < 100 000), each of them less than or equal 10000, a ...