- 浏览: 317941 次
- 性别:
- 来自: 河南郑州
-
文章分类
最新评论
-
sillydong:
https://github.com/sillydong/CZ ...
PHP 框架 Yaf 学习笔记----默认行为 -
achun:
jocce 写道var data1={};里面放的是json数 ...
jCT 嵌入模板简化方案 -
jocce:
var data1={};里面放的是json数据吗?为什么我用 ...
jCT 嵌入模板简化方案 -
achun:
randomnany 写道hi:你说的那个所谓的bug不是bu ...
PHP 框架 Yaf 学习笔记----默认行为 -
randomnany:
hi:你说的那个所谓的bug不是bug~yaf默认的就是读取 ...
PHP 框架 Yaf 学习笔记----默认行为
题的提出 :
jCT模板属于前后台分离的设计.
对于前后台分离的设计.
S根据B提出的请求,发送原始数据,S不需要对表现层有任何控制,降低了B,S的耦合度.
这种降低了B,S的耦合度方法,本质上是降低了 数据内容 上的 耦合度 ,仅仅把表现层的控制数据分离出去了.
由于请求和数据直接影响到表现,表现 是 业务逻辑 的最直接体现,但是 这两个词不能画等号.因此我们用表现逻辑 这个词.暗示表现和业务逻辑是关联比较密切的.
当 表现逻辑 变化的时候,势必要 改变 后台数据内容 的组合结构,我们的问题就是
如何降低前后台 表现逻辑( 业务逻辑) 上的耦合度
附加举例 说明问题:
常见的页面上有多种访问(按日,月,年或分类)排名,如果我们要增加或减少一个排名规则的话,表现 是要改的,后台 数据内容 也要同期改,这就是耦合度高的问题.
当然,对于新增的表现,采取多次和后台通讯也是一种解决方法,不过这增加了通讯的次数.
我们要达到只需要 改 表现,不用改 后台 ,并且不增加通讯次数的目标.
问题分析 :
表现逻辑 最终体现在原始数据的变化上.
业务逻辑对数据的细粒度化是比较容易实现的,就是把数据的请求最小化,然后把多个请求 获得的数据组合输出就行了.这在设计中是常见的.最简单的就是按请求的次序 请求队列 ,输出关联数组结构 的数据就行了.
那要解决的问题就是,前台如何在一次通讯中发出 请求队列 ,后台如何正确解析 请求队列 的问题.
解决方案 :
这里我直接给出我的方案,
利用POST方法和GET参数的配合.
在实际使用POST和GET方法的时候我们通常是用参数名=值 ,这种值对 的形式提交,事实上http协议并没有限定死这种形式,我们这种形式对http协议来说只不过是一串字符串罢了.用ajax 方法提交数据的时候是可以直接传送以JSON形式 的数据的,这就是纯字符串了.JSON 对数据的表现能力是毋庸置疑的.经后台解析后才对象化的.
我们可以把 请求队列 以 JSON 形式与后台通讯,后台完成 请求队列 解析.当然对于ajax 来说使用POST 方法
无疑是很好的,因为POST 方法其实是兼容GET 的,ajax 请求中的url 参数就是GET 方法的实现.那GET参数 在这里有什么用途呢?共用参数 的传递(这个语言描述就到这里,做个应用的朋友应该已经明白了).
ajax POST的数据是JSON字符串格式,比如:
我一直用PHP编程,php获得POST过来的JSON数据是很容易的
$json=json_decode($json,true);
到此 请求队列 的数据通信解决了,后台获取解决了,解析呢?这恐怕要和你的应用有关了.解决起来类似于如下结构
foreach($requireQueue as $Q){
switch($Q['REQUIRE']){
case 'login':
$OUT['login']=login();break;
case 'onlineusers':
$OUT['onlineusers']=onlineusers();break;
}
}
switch..case 就是细粒度的实现了.可以看出,在业务逻辑确定的情况下,表现只需要改变请求的队列的组合 就可以一次通讯获取 数据 了.
==========ps============
很遗憾,由于人事变动,我不再参与www.91mh.net这个项目了,项目负责人又回到了古老的编程方法,这个网站已经不采用我的技术了,回头有新的站我再给出新的地址吧。
评论
http://www.91mh.net/js/jct3.js
因为一些名字我还觉得不合适,没有更新,你可以测试一下。
参见一下变更的文章
jCT更新计划:inline,entry,outlet
好的。
另外,你有没有一个比较大的demo可以让我看看,或者说用这种模式开发的样例站,我要亲身体验一下。
我的团队中,美工是不会代码的,只是作图,写html/css的必须会javascript,他们属于程序员,
至于action多,增加了沟通的问题,实际情况是这样的。
首先所有的action应该都是和应用业务需求有关的,应该是在业务分析阶段就确定的。
以后有没有变化,项目组的人都应该了解这个内容,这个成本是无法下降的。
后台可以先输出模拟数据,这个很容易吧,再说实际上是后台好写,前台工作量大,后台总能先完成的。
效率问题我的几个项目里已经证明过了。在客户不停的改业务需求,改表现的情况下,通常是1,2个小时内就实现了他的变更需求。
完美我到不奢望,首先要达到自由。
还有就是我作为我们团队的领导人,有责任想办法提高他们的收入,多干活和提高自身水平是关键。
我现在的这个模式,为达到这个目的提供了一个基础。
由于这个模式也是最近我才确定的,所以也要多实践,前面实践的几个项目,都是边思考边实现的,很不成熟,现在思路基本成型了。我准备再次实做一个站,测试一下效率问题,
现在正在落实一些此模式下细节的思路,落实后,就可以开工了。
再反过来,如果按你的思路来,我们写完细颗粒action,然后让美工去操作这些json,虽然愿望挺美好,但是好像不太现实,首先对前台程序员的要求就提高不少,还有,如果在小项目中,这样反而增加了沟通,因为后台必须说明哪些action输出什么,而且有时候前台需要什么但是现在还没有这些action,那么就要告诉后台我需要什么,你给我弄个action,这难道不是增加沟通吗?
你说设计的模式其实是很美好的,是很人性的,那个时候前台程序员也可以自由写程序,但是我们的老板不会这么想吧?老板要的是效率和成本。。。。
再肯定下,你这种模式应该是可行的,但是如你那样完全通过解耦合,我始终觉得不是完美的解决方法,思索中。。。。。
<div class='quote_div'><br/> 1.把模板解析放到的浏览器中,如果客户端不支持js,就比较惨了,虽然现代的浏览器几乎都支持,而且用户没事一般也是开的,但是对于天生最求完美的程序员,这始终会是一个心病。</div>
<p><br/>是的,客户端必须要有执行脚本的能力,其实我的最终目标里根本就是自己写一个客户端,他的意义就不说了。</p>
<div class='quote_title'>chanawudi 写道</div>
<div class='quote_div'><br/> 2.js开发比较繁琐,就算你解析引擎做到在好,还是需要写很多的js代码去读取json等操作,这对于一般的程序员是比较烦人的(也就是为什么google的GWT和 DWR 存在的理由,一般程序员喜欢在java中做事)。</div>
<p><br/>有什么是不麻烦的呢?熟悉的东西都不麻烦,不熟悉的才麻烦,作为程序员是要学习多门语言的。js只不过是其中一种罢了。java也只是一种,想要只用一种语言搞定所有的事情是不科学的,因为语言也在发展,都在变。因此我们要学习不同的东西。</p>
<div class='quote_title'>chanawudi 写道</div>
<div class='quote_div'><br/>我在设计的MVC框架,考虑如果集成js template 的话,要能够在服务器端自动或半自动生成模板解析的js代码,让程序员尽量的通过服务器端的方法来完成客户端js模板的解析工作,这听起来似乎有点矛盾。。。不知道你怎么看?或者说这里是不是存在一种新的web开发模式,但不仅仅是ajax+json+js template那么简单。</div>
<p><br/>在服务器端来做模板本来就是常规的做法,但是我反对这种方法,因为这种方法把数据和表现耦合的太紧了,<br/>解决耦合性问题是我做这些工作的基础。离开了这个基础我的方法就没有可取的地方了。</p>
<div class='quote_title'>chanawudi 写道</div>
<div class='quote_div'><br/>看了你这篇文章又让我吃惊了一下,确实,如果ajax中请求一个action队列,然后返回队列合并结果,这种模式可以有效的降低服务器action的颗粒度,也保证了action的重复运用,这就相当于把一个action到做一个组件或者一个方法,然后一个请求队列来了后调用分别的action在组合,返回给用户。这个实现在我现在的框架下可以很轻易地实现,更不不需要你说的那么麻烦的方法。在配合 json和js template。。我感觉似乎一种新的 模式即将出现。<br/>在考虑是否与你的jct整合,javaeye上我一般不来,喜欢和你深入的交流.</div>
<p><br/>呵呵你的文字也是渐进式的表达你思想的变化。如果你实做这个的话,你会发现,只有把表现完全在客户端做才能发挥这种模式的好处。<br/>因为我倡导jCT(应该说是前台模板)和细粒度action有一个原因就是:<br/>WEB的开发,对于大多项目(中小项目),主要的工作量和难度是在前台表现上,而这个任务目前是由后台完成的,<br/>而做后台的人大多都是项目中的领导,他们在工作的时候往往只是做很少的辅助工作(选择框架,制定规范,这是一种交叉的规范,涉及到B和S,反正都是在约束别人)来完成表现问题,而具体的实现还要靠前台html/css/javascript人员(我把html/css的开发者也叫做程序员,同样整理文档的文案人员也叫程序员,因为他们都写逻辑性很强的code),这种局面是不正确的。这些中方法只能给前台程序员更多的限制,不能随意写代码,不能提高他们的专业能力(因为受限)。所以我对这种开发模式的评价只有两个字:<br/>专制<br/><br/>这种限制导致程序员生态的不平衡,后台程序员地位高高在上,虽然主要的工作量还在前台程序员那里。而且前台程序员不能自由的写代码,无法很好的提高。这明显是专制体制下导致的程序员阶级。<br/><br/>用了jCT和细粒度action,会发现后台超级简单,<br/>好了前台程序员解放了,可以按自己的意愿写代码,提高自己的能力,待遇也要提高了。<br/>虽然我是做后台的,但是同样我也解放了自己,我可以做更多其他的工作了,不用总是为别人制定规范了。<br/><br/>畅想一下,如果这种专制继续下去,不管语言如何发展,框架如何高能,都摆脱不了交叉规范的问题,程序员阶级势必存在。<br/></p>
<p><strong>最重要的,其实我真的一直在讨论的是一种模式,我不关系是不是什么新的,只要有效就行,对于这种模式的实现,我也仅仅是提供了一个很小的简短的工具和一个数据通讯的方法,在这种模式下具体的细节实现有很多方法,大家都可以实做一个。</strong></p>
1.把模板解析放到的浏览器中,如果客户端不支持js,就比较惨了,虽然现代的浏览器几乎都支持,而且用户没事一般也是开的,但是对于天生最求完美的程序员,这始终会是一个心病。
2.js开发比较繁琐,就算你解析引擎做到在好,还是需要写很多的js代码去读取json等操作,这对于一般的程序员是比较烦人的(也就是为什么google的GWT和 DWR 存在的理由,一般程序员喜欢在java中做事)。
我在设计的MVC框架,考虑如果集成js template 的话,要能够在服务器端自动或半自动生成模板解析的js代码,让程序员尽量的通过服务器端的方法来完成客户端js模板的解析工作,这听起来似乎有点矛盾。。。不知道你怎么看?或者说这里是不是存在一种新的web开发模式,但不仅仅是ajax+json+js template那么简单。
看了你这篇文章又让我吃惊了一下,确实,如果ajax中请求一个action队列,然后返回队列合并结果,这种模式可以有效的降低服务器action的颗粒度,也保证了action的重复运用,这就相当于把一个action到做一个组件或者一个方法,然后一个请求队列来了后调用分别的action在组合,返回给用户。这个实现在我现在的框架下可以很轻易地实现,更不不需要你说的那么麻烦的方法。在配合 json和js template。。我感觉似乎一种新的 模式即将出现。
在考虑是否与你的jct整合,javaeye上我一般不来,喜欢和你深入的交流.
发表评论
-
前台模板 Element 属性渲染的思考
2010-03-27 11:03 0jCT 一直是在前台解 ... -
jCT的纠结,前台模板下Grid基础版
2009-12-20 03:04 1890SVN已经更新.最新下载:jCT最新版本 ... -
jCT的纠结,前台模板下的设计模式VS组件,通用组件已gone
2009-12-19 14:55 1902一直以来都想用jCT写 ... -
jCT 3.9.12.10 放出,大改变,文档重新发布
2009-12-10 23:35 3351SVN已经更新.最新下载:jCT最新版本 ... -
基于jCT前台模板设计要点备注
2009-04-19 16:54 0第一个通讯是获得用户角色,获取用户是否登录及相关信息,因 ... -
jCT3改如何改进,边想边发
2009-03-26 11:28 1646ps:新版已经发布,请看 新版文档 ============ ... -
2008中国开源软件竞赛揭晓jCT榜上有名
2008-12-30 21:07 1677今天查收的邮件发现的,获得了优秀技术创新奖 的最后一名--- ... -
jCT 3更新--为发展调整代码结构
2008-12-04 15:01 1689SVN已经更新.最新下载:jCT最新版本 更多信息请看 ... -
jCT 嵌入模板简化方案
2008-11-13 09:38 2789本文代码在线演示 http://jsct.googlecod ... -
无独有偶,另一个采用原生js语法的js template工具EJS
2008-11-10 10:14 4683EJS开源主页: http://code.google.c ... -
jCT 使用教程之[UI组件]Tree
2008-10-29 15:42 1804SVN已经更新.最新下载: ... -
jCT 3正则版测试,正则就是慢
2008-09-10 00:19 1760我在jCT的说明中提到,jCT为了保障速度,没有用正则。今天我 ... -
jCT与AJAX七宗罪
2008-09-08 20:33 2697jCT的更多信息请看我博 ... -
jCT 第三版简要文档
2008-09-07 14:26 5978SVN已经更新.最新下载:jCT最新版本 更多信息请看 ... -
jCT 在实战中洗礼,jCT要成为终极的javascript前台模板
2008-09-06 10:44 1630说在前面 : 由于目前正在用jCT的第三版实作项目,在项目中 ... -
jCT 使用教程之[嵌入模板]
2008-09-02 11:20 2531更多信息请看我博客里的jCT专题 ,或者jCT开源主页示例 ... -
js模板编译器jCT,推荐/问题贴
2008-08-27 09:58 1846jCT的更多信息请看我博客里的jCT专题 ,或者jCT开源主 ... -
javascript 模板编译器jCT----的梦想
2008-08-23 10:31 2617模板是什么 ? 模板是把数据和表现组装到一起的工具,是WEB开 ... -
jCT 第三版简要文档,此文档已经废弃,留作历史
2008-07-11 11:47 1411JavaScript Common Templates 第 ... -
都变了样!我这样用jCT模板.
2008-07-02 14:58 1676在写这篇文章的时候我相信很多朋友都不明白我在说什么,会奇怪我这 ...
相关推荐
基于arm64版本的docker-compose文件
台区终端电科院送检文档
埃夫特机器人Ethernet IP 通讯配置步骤
rv320e机器人重型关节行星摆线减速传动装置研发
气缸驱动爬杆机器人的设计().zip
56tgyhujikolp[
内容概要:本文档提供了基于OpenCV的数字身份验证系统的Python代码示例,涵盖人脸检测、训练和识别三个主要功能模块。首先,通过调用OpenCV的CascadeClassifier加载预训练模型,实现人脸检测并采集多张人脸图像用于后续训练。接着,利用LBPH(局部二值模式直方图)算法对面部特征进行训练,生成训练数据集。最后,在实际应用中,系统能够实时捕获视频流,对比已有的人脸数据库完成身份验证。此外,还介绍了必要的环境配置如依赖库安装、文件路径设置以及摄像头兼容性的处理。 适合人群:对计算机视觉感兴趣的研发人员,尤其是希望深入了解OpenCV库及其在人脸识别领域的应用者。 使用场景及目标:适用于构建安全认证系统的企业或机构,旨在提高出入管理的安全性和效率。具体应用场景包括但不限于门禁控制系统、考勤打卡机等。 其他说明:文中提供的代码片段仅为基本框架,可根据实际需求调整参数优化性能。同时提醒开发者注意隐私保护法规,合法合规地收集和使用个人生物识别信息。
内容概要:本文档详细介绍了Java并发编程的核心知识点,涵盖基础知识、并发理论、线程池、并发容器、并发队列及并发工具类等方面。主要内容包括但不限于:多线程应用场景及其优劣、线程与进程的区别、线程同步方法、线程池的工作原理及配置、常见并发容器的特点及使用场景、并发队列的分类及常用队列介绍、以及常用的并发工具类。文档旨在帮助开发者深入理解和掌握Java并发编程的关键技术和最佳实践。 适合人群:具备一定Java编程经验的研发人员,尤其是希望深入了解并发编程机制、提高多线程应用性能的中级及以上水平的Java开发者。 使用场景及目标:①帮助开发者理解并发编程的基本概念和技术细节;②指导开发者在实际项目中合理运用多线程和并发工具,提升应用程序的性能和可靠性;③为准备Java技术面试的候选人提供全面的知识参考。 其他说明:文档内容详尽,适合用作深度学习资料或面试复习指南。建议读者结合实际编码练习,逐步掌握并发编程技巧。文中提到的多种并发工具类和容器,均附有具体的应用场景和注意事项,有助于读者更好地应用于实际工作中。
这个数据集包含了日常步数统计、睡眠时长、活跃分钟数以及消耗的卡路里,是个人健康与健身追踪的一部分。 该数据集非常适合用于以下实践: 数据清洗:现实世界中的数据往往包含缺失值、异常值或不一致之处。例如,某些天的步数可能缺失,或者存在不切实际的数值(如10,000小时的睡眠或负数的卡路里消耗)。通过处理这些问题,可以学习如何清理和准备数据进行分析。 探索性分析(发现日常习惯中的模式):可以通过分析找出日常生活中的模式和趋势,比如一周中哪一天人们通常走得最多,或是睡眠时间与活跃程度之间的关系等。 构建可视化图表(步数趋势、睡眠与活动对比图):将数据转换成易于理解的图形形式,有助于更直观地看出数据的趋势和关联。例如,绘制步数随时间变化的趋势图,或是比较睡眠时间和活动量之间的关系图。 数据叙事(将个人风格的追踪转化为可操作的见解):通过讲述故事的方式,把从数据中得到的洞察变成具体的行动建议。例如,根据某人特定时间段内的活动水平和睡眠质量,提供改善健康状况的具体建议。
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
nginx
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
模拟知识付费小程序,可流量主运营模式
什么是普通上传 调用接口一次性完成一个文件的上传。 普通上传2个缺点 文件无法续传,比如上传了一个比较大的文件,中间突然断掉了,需要重来 大文件上传太慢 解决方案 分片上传
英二2010-2021阅读理解 Part A 题干单词(补).pdf
2023-04-06-项目笔记-第四百五十五阶段-课前小分享_小分享1.坚持提交gitee 小分享2.作业中提交代码 小分享3.写代码注意代码风格 4.3.1变量的使用 4.4变量的作用域与生命周期 4.4.1局部变量的作用域 4.4.2全局变量的作用域 4.4.2.1全局变量的作用域_1 4.4.2.453局变量的作用域_453- 2025-04-01
微信小程序项目课程设计,包含LW+ppt
GP300单缸液压圆锥破碎机CAD().zip
超实用telnet调试工具,支持重连,命令定时发送,日志存储等。