`
apusiczhang
  • 浏览: 16933 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

IoVC,一种新的编程思想

阅读更多

IoVC——“Inversion of View-Control”,即“视图控制反转”,换言之:它能够把对“View(即 UI 视图)的控制力”注入到你的后台业务逻辑中。这样一来,你在编写业务逻辑的过程中,对 View 拥有足够的控制力,从而能够将展现层与业务逻辑完全的解耦。

 

举一个场景:页面中有一个文本输入框,它的值对应后台的一个JavaBean的属性。我们首先来看一下传统的编程模型:

 

页面:
<w:textField value="#{myBean.value}"/>
后台:
public class MyBean {
    private String value;
    public String getValue() {
        return value;
    }
    public void setValue(String value) {
        this.value = value;
    }
}

 

此时,假设用户需要发生变化,我们需要设置文本输入框的tooltip,并且,它的值来自于后台 JavaBean 的另一个属性,那么,程序需要做如下调整:

 

页面:
<w:textField  value="#{myBean.value}" tooltip="#{myBean.tooltip}"/>
后台:
public class MyBean {
    private String value;
    private String tooltip;
    public String getValue() {
        return value;
    }
    public void setValue(String value) {
        this.value = value;
    }    public String getTooltip() {
        return tooltip;
    }
    public void setTooltip(String tooltip) {
        this.tooltip = tooltip;
    }
}

 

我们可以观察:在传统的编程模型下,如果页面逻辑发生变化,我们首先需要修改UI展现层,加上 tooltip="#{myBean.tooltip}" 的语句,然后,再在后台Bean中设置此属性值。

那么,在IoVC编程模型下,情况又是怎样的呢?

 

页面:
<w:textField id="txt"/>
后台:
public class MyBean {
    @Bind(id="txt")
    private String value;
}

 

如果需要扩展文本编辑框的tooltip属性,只需要:

 

页面:
<w:textField id="txt"/>
后台:
public class MyBean {
    @Bind(id="txt")
    private String value;

        @Bind(id="txt" att="tooltip")
    private String tooltip;
}

 

在IoVC编程模型下,Web页面不需要发生任何变化,你只需要在后台 Java Bean 中写上这样一行属性声明即可@Bind(id="txt" att="tooltip") private String tooltip,甚至于你连传统的getter/setter都不需要。

 

换言之,在传统的编程模型下,页面美工通过网页设计工具“画”出来的页面,程序员看不懂; 而如果程序员对页面进行修改,则页面美工又无法理解; 并且,如果要更改业务逻辑,程序员需要不断的维护页面内容,最终造成页面美工与程序员无法协同工作。而在 IoVC 的编程思想下,页面美工只需要给每个组件设置一个ID,程序员在后台的业务逻辑中,便拥有对页面 UI 元素的完全控制力。Web页面在美工完成之后,程序员再也无需因为需求的变更或者逻辑的变化,而再重新维护 Web页面内容。

 

简而言之,IoVC是一种更好的MVC,是对MVC的一种高层次抽象。

 

设想一下:日后美工人员画出来的页面(只要设置了正确的ID),程序员可以拿过来直接用,并且, 如果要对页面做调整(只要不是页面元素的增加或删除),程序员可以在自己熟悉的代码中直接设置,这岂非是一种很享受的境界?

 

更多技术文章,请见:http://www.operamasks.org/

 

分享到:
评论
148 楼 xxjhappy 2008-04-03  
其实要一个属性绑多个id这种实现细节要做我想应该是不难的,只是目前这个版本没提供罢了。也许正如anakin1978兄所说,AOM2.0是IoVC的第一个实现,必然有不完善的地方。我跟踪过一下IoVC绑定的流程,事实上到最后它的实现是在restore view阶段恢复了组件树之后,根据绑定规则创建一个EL绑到组件对象上,因此在后续生命周期和标准JSF的流程是合二为一的,所以标准JSF能做的,原则上它都能做。只是目前它没有提供一种方便的语法让我们这样做而已。

事实上AOM2.0中有个标签叫@Validate,用来为组件绑定校验方法的,它就可以用
    @Validate(id={"first","second"})
    private void validate(FacesContext context, UIComponent component, Object value) {
    }

的形式把两个组件的校验行为绑到同一个方法上(以上代码来自AOM的示例rcdemo的CalcBean),只是目前@Bind没有提供这样的写法。希望下个版本可以完善吧。
147 楼 hax 2008-04-03  
anakin1978 写道
不管它是好猫还是坏猫,IoVC既然是新东西,就必然会有不完善的地方,比如前面讨论中提到的两个UIControl不能使用同一个id来绑定这个问题,也许目前不能绑定吧(俺还没试过,也不知道真伪,现在忙的很),但AOM团队就把它做成能用一个id来绑定又怎么了?这个设计不难吧?下面俺来越俎代庖一下,UIControlI是个接口,现在提供两个实现,一种是常规的,叫UIControlSimple,把它看成原来一个id只能绑一个时的实现,一个是新添加的,叫UIControlComposite,它持有一个view中所有该id对应的UIControlSimple实例,接下来,对UIControlComposite的所有操作,都被适配到真正的UIControlSimple上去了,这样ok吧?当然,这里还有问题,我希望我在其中一个ui上动作不会导致两个ui响应,这里还要做些特殊处理,可以偷偷摸摸的给具有相同id的ui渲染一个特殊标识出来,这样,就可以找到对应的UIControlI实例了。这个思路是否有问题,还请各位点评,俺要偷懒了,玩游戏去。。。



id是唯一标识符好不好。你至少要懂得换个属性成不成。
所以,你就别给AOM添乱了,人多厉害啊,你想到的他们能想不到么?

还有,IoVC既然是新的不成熟的东西,那就表急吼吼的自称什么新思想,比MVC更好的MVC……

金蝶本来根红苗正,不是我看不惯他,实在是他自己太浮躁。丫如果真腰板(技术)够硬,十个我也拿他没辙不是么。
146 楼 hax 2008-04-03  
anakin1978 写道
是你搞反了吧?是在bean的编辑器里检查,不是在页面的编辑器上检查啊,view里的id才是源嘛,只要bean中@bind了id就去看看view是否已经指定了这个id不成么?当然,这需要扩充java editor的能力,好像现在的editor都不能检查annotation中的字符串是否正确,AOM开发团队既然能做可视化编辑器,他们应该能做到这点的,只是这已经超出我知识范围,我就不坚持了。我退一步说,在运行期进行检查也可以啊,只要在运行期发现bind指定的id不存在,抛个明确的RuntimeException,有详细信息,如果我是用户,我想我是可以接受的。


我没有搞反。如果像你讲的这样,bean中指定了bind,view中一定要有,当然也是一种做法。但你也要考虑这样可能带来的问题,那就是这个bean很难用在不同的view中。我举个例子,假设你有个wizard,有5个步骤,分别对应5个view,你要么为每个view写一个单独的bean(这恐怕很难让人接受),要么就是每个view里都要有所有绑定,即使这些绑定该View用不到——你就要考虑怎么把他们在view上disable掉,不显示,也不参与validate之类的。

总之IoVC这样改变JSF的既有做法,我没有看出有什么好处,反而坏处一堆。你认为
JSF标准的 <command action="abc"> + getAbc()
和IoVC的 <command id="abc"> + @bind(id="abc") getAbc()
到底哪个比哪个更方便呢?
145 楼 anakin1978 2008-04-02  
不管它是好猫还是坏猫,IoVC既然是新东西,就必然会有不完善的地方,比如前面讨论中提到的两个UIControl不能使用同一个id来绑定这个问题,也许目前不能绑定吧(俺还没试过,也不知道真伪,现在忙的很),但AOM团队就把它做成能用一个id来绑定又怎么了?这个设计不难吧?下面俺来越俎代庖一下,UIControlI是个接口,现在提供两个实现,一种是常规的,叫UIControlSimple,把它看成原来一个id只能绑一个时的实现,一个是新添加的,叫UIControlComposite,它持有一个view中所有该id对应的UIControlSimple实例,接下来,对UIControlComposite的所有操作,都被适配到真正的UIControlSimple上去了,这样ok吧?当然,这里还有问题,我希望我在其中一个ui上动作不会导致两个ui响应,这里还要做些特殊处理,可以偷偷摸摸的给具有相同id的ui渲染一个特殊标识出来,这样,就可以找到对应的UIControlI实例了。这个思路是否有问题,还请各位点评,俺要偷懒了,玩游戏去。。。
144 楼 anakin1978 2008-04-02  
hax 写道
anakin1978 写道
这个也是可以做到的,在工具上将页面parse一下,取出id来还不算世界难题吧。所谓的类型检查也不是java的专利。如果约定好,id以package进行组织,工具还可以提供视图把它方便的展现出来,甚至,工具如果能提供自动完成就更好了。


你仔细看看IoVC的设计就知道这是不可能的。因为你不知道页面上的id是供IoVC去侵入的楔子还是页面本身有其他用途。除非再加上其他约定。


是你搞反了吧?是在bean的编辑器里检查,不是在页面的编辑器上检查啊,view里的id才是源嘛,只要bean中@bind了id就去看看view是否已经指定了这个id不成么?当然,这需要扩充java editor的能力,好像现在的editor都不能检查annotation中的字符串是否正确,AOM开发团队既然能做可视化编辑器,他们应该能做到这点的,只是这已经超出我知识范围,我就不坚持了。我退一步说,在运行期进行检查也可以啊,只要在运行期发现bind指定的id不存在,抛个明确的RuntimeException,有详细信息,如果我是用户,我想我是可以接受的。
143 楼 hax 2008-04-02  
anakin1978 写道
这个也是可以做到的,在工具上将页面parse一下,取出id来还不算世界难题吧。所谓的类型检查也不是java的专利。如果约定好,id以package进行组织,工具还可以提供视图把它方便的展现出来,甚至,工具如果能提供自动完成就更好了。


你仔细看看IoVC的设计就知道这是不可能的。因为你不知道页面上的id是供IoVC去侵入的楔子还是页面本身有其他用途。除非再加上其他约定。
142 楼 anakin1978 2008-04-02  
厌倦发呆 写道
xxjhappy 写道
2. 语言约束和框架约束还是有所不同的。类型检查出错是违反语言规范。分层不同只是框架开发者

说实话,关于hax反复强调反复问的类型检查,老兄的回答让人郁闷的很,绑定的id作为字符串,如果前台代码里面id的字符串拼写与后台绑定里面id的字符串拼写不一致,静态类型检查是无法检查出来.不知道关于这点,框架是怎么保证没有错误的?


这个也是可以做到的,在工具上将页面parse一下,取出id来还不算世界难题吧。所谓的类型检查也不是java的专利。如果约定好,id以package进行组织,工具还可以提供视图把它方便的展现出来,甚至,工具如果能提供自动完成就更好了。
141 楼 wswz 2008-04-02  
厉害,看的一身汗...
开始  学术争鸣
后来  唇枪舌剑
           “本来是一篇挺有深度的技术争论,已经演变成一种非善意攻击了。”

轮不到俺冒头,估计有些道行的也不敢冒,怕溅一身血.....
140 楼 coolmenu 2008-04-02  
<div class='quote_title'>plutluo 写道</div><div class='quote_div'><div class='quote_title'>coolmenu 写道</div><div class='quote_div'>AOM是不是必须用金蝶的应用服务器?我觉得这点就特别不好 <br/></div><br/><p>据我所知,AOM并不依赖某个特定的服务器,只要容器支持JSP2.1/Servlet2.5规范,就可以运行,例如Tomcat6。</p></div><br/>需要注意的是,AOM有些特性是依赖应用服务器底层支持的,譬如,将一个 EJB3 对象自动转换成一个 ManagedBean,并能够在EJB对象中进行视图的绑定,这需要对应用服务器的实现进行适当的调整。针对这样一些高级特性, 无疑需要更改应用服务器的代码。 我们从不否认AOM是由金蝶中间件公司力推的技术,那么,在这样一些高级特性上, 也只有Apusic应用服务器能够支持(Apusic应用服务器是金蝶中间件公司的产品,AOM开发团队自然可以影响到 Apusic 应用服务器的发展,但 AOM开发团队目前却无法影响到其它应用服务器的技术特性)。
我从技术文档看到的...
139 楼 plutluo 2008-04-02  
<div class='quote_title'>coolmenu 写道</div><div class='quote_div'>AOM是不是必须用金蝶的应用服务器?我觉得这点就特别不好 <br/></div><br/><p>据我所知,AOM并不依赖某个特定的服务器,只要容器支持JSP2.1/Servlet2.5规范,就可以运行,例如Tomcat6。</p>
138 楼 厌倦发呆 2008-04-02  
xxjhappy 写道
2. 语言约束和框架约束还是有所不同的。类型检查出错是违反语言规范。分层不同只是框架开发者

说实话,关于hax反复强调反复问的类型检查,老兄的回答让人郁闷的很,绑定的id作为字符串,如果前台代码里面id的字符串拼写与后台绑定里面id的字符串拼写不一致,静态类型检查是无法检查出来.不知道关于这点,框架是怎么保证没有错误的?
137 楼 coolmenu 2008-04-02  
AOM是不是必须用金蝶的应用服务器?我觉得这点就特别不好
136 楼 anakin1978 2008-04-01  
再多说两句,现在的技术论坛答疑解难的不少,大家伙都挺热心的。但点评技术的就少了,很难见到真知灼见。点评一个框架本来是善意的行为,心平气和的指出其不足之处,让其有责加冕无则改之就挺好,特别是这个框架还是国人写的开源框架,或者其中讨论的思想火花真的促进了它的发展呢?至于该框架能否能得到广大技术工作者的认可,我们大可不必去操这样的心,我们也操不了这个心,技术的发展自有其内在的规律,曾经有人喊着java已死,它死了吗?偶以为这应该是技术人员应有的心态。本帖一开始本来有点这样的意思,但慢慢的味道就不对了,实在是遗憾。

135 楼 anakin1978 2008-04-01  
asheng88 写道
scep 写道
hax 写道

8. 为什么我不再说你所谓“思想”层面的东西了呢?嘿嘿,因为把人IoVC的皮剥一次足够了,没必要剥第二次。你看AOM的人自己都不作声了。我猜他们已经被我点化了,哈哈哈哈。


本来是一篇挺有深度的技术争论,已经演变成一种非善意攻击了。
路过,遗憾,闪人......

是啊,中国的程序员啊!!!!!有点水平的恰恰嘴巴火辣得像骂街婆一样。
永远做开源的消费国吧,我没意见:wink:
搞开源的同胞们,静下心来,奉献的本初应该是快乐,这个世界太寒冷了,唾沫星子淹死人啊,孤独的时候一个人一定要注意身体。


同感,AOM这两年的发展,偶一直在关注,在深圳开的sun技术者大会上也看过他们的演示,深深为中国人在中国浮躁的软件环境中也能做出有自己想法的框架感到骄傲。AOM网站看上去也挺火,应该是有不少实际项目在采用的,实践是硬道理,是驴子是马拉出来遛遛就知道了,接下来偶就会去验证在自己的项目中使用AOM的可行性。

另外,偶做WEB开发有五六年了,也写过一些框架,深知做好一个框架的难度。AOM不是完美的,楼上一些同学就指出了几点(比如,使用AOM后,要扩充组件的行为需要更深厚的技术功底,据我所知,现在的组件都是AOM的人自己写的,尚没有他们团队之外的人能去写组件);但更多的,我们也要看到它的优点(比如,提升开发效率,降低web开发技术门槛等,这些是偶认可的,如果组件足够丰富,那我的团队的成员只要写好java程序就行了,不需要每个人都熟练掌握CSS/JavaScript或者dwr之类的更多的东西),但却不知道AOM触动了某些人的哪条神经?值得他们好像一叶障目一样视而未见,甚至于跳脚骂街,很是费解。
134 楼 asheng88 2008-04-01  
scep 写道
hax 写道

8. 为什么我不再说你所谓“思想”层面的东西了呢?嘿嘿,因为把人IoVC的皮剥一次足够了,没必要剥第二次。你看AOM的人自己都不作声了。我猜他们已经被我点化了,哈哈哈哈。


本来是一篇挺有深度的技术争论,已经演变成一种非善意攻击了。
路过,遗憾,闪人......

是啊,中国的程序员啊!!!!!有点水平的恰恰嘴巴火辣得像骂街婆一样。
永远做开源的消费国吧,我没意见:wink:
搞开源的同胞们,静下心来,奉献的本初应该是快乐,这个世界太寒冷了,唾沫星子淹死人啊,孤独的时候一个人一定要注意身体。
133 楼 scep 2008-04-01  
hax 写道

8. 为什么我不再说你所谓“思想”层面的东西了呢?嘿嘿,因为把人IoVC的皮剥一次足够了,没必要剥第二次。你看AOM的人自己都不作声了。我猜他们已经被我点化了,哈哈哈哈。


本来是一篇挺有深度的技术争论,已经演变成一种非善意攻击了。
路过,遗憾,闪人......
132 楼 hax 2008-04-01  
看到Elite,我想到了JS。因为Elite又是一种胶合语言,起的作用和JS如出一辙。只不过Elite在服务器端,而JS在浏览器端。

早晚(就2、3年最多了)会发展出强大的B端组件模型(ext就是明证),而加上DWR/Sajax这样的模式之后,抛开皮相的差别,编程模式最终还是归于一统。

唯一差别是多少在Browser,多少在Server而已。AOM说我能把Server端的逻辑靠ajax搬点到Browser上,但是大家自己直接用DWR不行吗?唯一的优势或许是Elite语言比JS好一点?不过这点优势实在是太不堪一击了。

如果有人要扯IDE支持、JSF组件模型优势……那就扯吧,反正扯扯无伤大雅。
131 楼 hax 2008-04-01  
不看不知道,一看吓一跳。AOM专做反其道行之的事情。

我现在很同情JSF了,被AOM这样糟尽。。。

BTW我摘录的是第一段和最后一段。大家可以发现其中的自相矛盾之处吗?


“OperaMasks已经在JSR-252的基础上对表达式语言做了大量的扩充,已经成为一种全新的表达式语言,我们将其命名为ELite,意为其源于EL表达式,同时又有轻量(Lite)的含义。

在OperaMasks的IoVC框架之下,EL已经很少出现在视图中,而在业务层将更多地使用EL来简化业务模型的开发,例如注入依赖对象、发送模型事件等。因此,JSR-252所定义的表达式语言已经不能满足要求,我们必须设计一种功能更强大的表达式语言来灵活地访问和操纵业务模型对象。
……
到现在为止,您还认为ELite是一种简单的表达式语言吗? ELite现在已经演化成为一个功能强大的动态语言,它脱胎于LISP这门古老而伟大的语言,同时又具有与Java相近的语法形式,可以容易地调用Java所写的程序代码,以及提供了方便灵活的集合操作函数,使其成为编写展现层逻辑的一种奇妙的选择。”
130 楼 coolyue 2008-04-01  
也不能一棒子把人打死啊
129 楼 xxjhappy 2008-04-01  
...话题就变了吗? 那干活去了。。。

相关推荐

    OperaMasks快速进阶

    OperaMasks是一个开箱即用的Web开发解决方案,它的关键特性包括IoVC的编程思想,使得页面设计与控制逻辑分离。此外,它还内置了Ajax支持和丰富的UI组件库,适合开发高交互性Web应用和轻量级、高并发的Web站点。...

    基于SpringBoot仿天猫购物系统.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。

    Python网络爬虫与推荐算法新闻推荐平台(毕设&课设&实训&大作业&竞赛&项目)

    Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。

    THUCNews数据集

    THUCNews数据集

    Q音:Vue3+Pinia+Vue Router4+Vant4的移动端仿抖音短视频项目.zip(毕设&课设&实训&大作业&竞赛&

    项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。

    undo-log.sql

    undo-log.sql

    vue+SpringBoot730基于JavaScript和vue的商城管理系统设计与实现java毕业设计源码含论文.rar

    jdk版本:jdk1.8+ 前端:vue.js+ElementUI 开发工具:IDEA 或者eclipse都支持 编程语言: java 框架支持:springboot 数据库: mysql 版本不限 数据库工具:Navicat/SQLyog都可以 详细技术:java+springboot+vue+MYSQL+MAVEN 前端采用的Vue框架,后端采用java语言,sprinboot框架,mybatis操作数据源,使用软件:idea,eclipse、MySQL。完成了用户登录管理等模块的设计与实现。完成了系统数据库的设计,并基于MySQL数据库管理系统

    ASP药店信息管理系统(源代码+论文+开题报告).zip

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。

    ASP同校二手电子产品交易网(源代码+论文).zip

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。

    基于 Java+SqlServer 实现的网上校友录设计毕业设计(源代码+论文)

    【作品名称】:基于 Java+SqlServer 实现的网上校友录设计【毕业设计】(源代码+论文) 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: 通过提供完善的校友录服务和规范校友录的管理,可以达到增进校友之间、校友与母校之间的感情,方便校友联系的目的。本文主要介绍了数据库管理网站的方案论证、结构特性设计及行为特性设计的实现过程,详细论述了总体设计思想、数据库设计和功能模块设计。实现了班级留言、班级相册、班级共享、纸条传情、个人信息管理、管理员信息管理等功能。整个系统的设计过程中,充分考虑了数据库的安全性、一致性、稳定性和可靠性的问题,并具有较强的实用作用,使用户在友好的操作界面下完成强大的功能。关键词: 校友录,信息,管理 【资源声明】:本资源作为“参考资料”而不是“定制需求”,代码只能作为参考,不能完全复制照搬。不一定能够满足所有人的需求,需要有一定的基础能够看懂代码,能够自行调试代码并解决报错,能够自行添加功能修改代码。

    各种安全相关思维导图整理收集。(毕设&课设&实训&大作业&竞赛&项目)

    各种安全相关思维导图整理收集。渗透步骤,web安全,CTF,业务安全,人工智能,区块链安全,数据安全,安全开发,无线安全,社会工程学,二进制安全,移动安全,红蓝对抗,运维安全,风控安全,linux安全.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。

    ASP文章在线发布系统(论文+源代码+任务书+实验说明).zip

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。

    公用事业—电力天然气周报:《空气质量持续改善行动计划》出台,10月天然气表观消费量同比增长4.5%.pdf

    电子元件 电子行业 行业分析 数据分析 数据报告 行业报告

    Java并发与高级特性面试知识点解析

    内容概要:本文详细列举并解释了一系列针对具有一定工作经验候选人的Java面试题目,涵盖JMM内存模型概念、如何预防死锁现象、JVM加载机制等,进一步探讨了反射的应用场景、垃圾回收工作机制等重要话题。文中还讲解了volatile的关键特性、线程安全的单例模式实现方式,以及ConcurrentHashMap和Fork/Join、CompletableFuture的工作机理。 适合人群:具备一定工作经验的候选人、Java 开发者以及准备 Java 高级岗位面试的专业人士。 使用场景及目标:帮助读者系统回顾和强化关于Java语言深层次的知识点和技术能力,提升应聘成功几率。 其他说明:面试题覆盖范围广泛且全面阐述了Java中的并发特性和进阶主题,在加深求职者的专业知识的同时也有助于拓宽他们的思维视野。

    基于web的实验室管理系统(自动排课功能的实现).zip

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。

    基于Java+SqlServer 实现的学生网上选课系统毕业设计(源代码+论文+答辩PPT)

    【作品名称】:基于Java+SqlServer 实现的学生网上选课系统【毕业设计】(源代码+论文+答辩PPT) 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: 本系统具体有以下功能: 个人信息:包括学生和学生的个人资料 课程计划:计划课程的开课时间,上课地点,上课老师等信息 管理功能:课程发布,修改,删除。学生,老师用 系统实现了对课程的基本信息和学生选课、学生和教师用户进行管理。系统对学生角色提供个人信息查看、选课管理以及其他功能;对教师提供查看自己所担任课程的课表和选该门课程的学生信息;提供给管理员以下功能:查看所有课程、学生、教师的信息并可以对它们进行管理(添加、编辑、删除),以及实现新闻的发布并修改。 关键字:选课、课程信息发布、B/S、SQL Server 2000、JSP 【资源声明】:本资源作为“参考资料”而不是“定制需求”,代码只能作为参考,不能完全复制照搬。不一定能够满足所有人的需求,需要有一定的基础能够看懂代码,能够自行调试代码并解决报错,能够自行添加功能修改代码。

    毕设.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。

Global site tag (gtag.js) - Google Analytics