什么是 Jakarta EE
Jakarta EE并不是新技术,他的前身就是大家熟悉的
Java EE,老一辈的程序员可能还记得
J2EE,是的,他们都是同一个东西,至于为什么会改来改去,这里面就有很多故事了。
1998年12月,SUN公司发布了JDK1.2,开始使用Java 2
这一名称,第二年Sun公司联合IBM、Oracle、BEA等大型企业应用系统开发商共同制订了一个基于Java组件技术的企业应用系统开发规范,名字很自然就取为Java 2 Platform Enterprise Edition
简称J2EE,后面的事情大家也知道,JDK版本升的很快,J2EE名称如果跟着Java版本走必然会给开发人员造成困惑不利于该技术的推广,终于在2006年,SUN公司在发布Java 5后正式将J2EE改名为Java EE(Java Platform, Enterprise Edition),很多早期j2ee开发者虽然现在用的是最新的java ee标准但他们还是认为自己在用j2ee,当然,只是名称的改变并没有给开发者带来什么麻烦,相比之下下面这个就是要命。
2009年,Oracle宣布收购SUN,Java相关技术自然归Oracle所有,在2017年,Oracle 宣布开源 Java EE 并将项目移交给 Eclipse 基金会,但Oracle移交的很不痛快,提了很多要求,其中就包括不能再使用Java EE
这个名称,虽然有点无理但Eclipse基金会还是接受了这个要求并且改名为Jakarta EE
,经历了从j2ee到java ee的改名再经历一次似乎也无所谓,但要命的是Oracle要求Jakarta EE不能修改javax命名空间
,这个就意味着java ee移交后代码就此封版,如果想修改代码,不好意思,请另起炉灶,所以,Oracle你移交的意义在哪?
那么从Java EE到Jakarta EE会给企业带来什么影响?下面我们一起分析。
Read the rest of this entry
杂谈
概述
在上一篇中,我们实现了vue对象的构建,并且已经初步实现了变量的绑定和事件绑定,现在我们就剩下一个问题需要解决,就是v-for
指令的实现,这也是本系列中最难的部分。
难点
实现v-for有以下几个难点
- 表达式解析,v-for有两种语法
item in items
和(item,index) in items
,第二种可以获取到序号,程序需要解析这两种语法
- 编译v-for内的元素,虽然已经有了compile函数,但是v-for循环内的上下文和vue并不一致,什么意思呢,compile里面绑定的值和变量是vue,vue是全局的,但v-for内绑定的变量是循环内的,每次都不一样
编译
在compile中,如果遇到v-for会先将v-for内的节点全部生成好,再作为子节点append到父节点上,因此第一步就是判断是否包含v-for指令
Read the rest of this entry
vue
概述
在之前的章节中,我们创建了一个没有任何逻辑的vue对象,仅仅只是保证了var app = new Vue({...})
不报错而已,这一篇我们将构建一个真正的vue对象,实现真正的值绑定。
build(构建)
这是html中创建vue的代码
var app = new Vue({
el: '#app',
data: {
newTodo: '',
todos: []
},
methods: {
addTodo: function () {
this.todos.push({ text: this.newTodo });
this.newTodo = '';
},
deleteTodo: function (index) {
this.todos.splice(index, 1);
}
}
})
思路是
- 创建vue对象
- 将data数据直接挂载到对象上,这样可以实现
vue.newTodo
的访问效果
- 将method直接挂载到桂香上,可以实现
vue.addTodo
的效果
Read the rest of this entry
vue
# 背景
在上一章中,我们保证了代码不报错,并且参数也成功传进去了,但未实现任何的逻辑,这一章我们的工作就是完成dom的解析,在vue中,通过构建虚拟dom结构实现dom的高效更新和渲染,模仿这个思路,我们构建一个超级简单虚拟的dom结构,本着让所有人都能看得懂的目的,这次构建的dom结构不考虑性能,不考虑设计,以能实现功能为目的。
domParser(dom解析)
基本的思路:
- 从参数el指定的节点开始遍历
- 解析节点
- 解析子节点
- 递归的方式完成所有节点的解析
Read the rest of this entry
vue
在上一章节中,我们用vue实现了简单的todo应用,如果我们把vue.js
引用去掉,首先是界面显示原始文本内容
然后console报错
index.html:22 Uncaught ReferenceError: Vue is not defined
at index.html:22
原因是我们在代码中通过代码var app = new Vue({...})
创建了Vue对象,Vue对象是定义在vue.js中,现在没了vue.js自然报错。
这章的内容就是解决Vue对象找不到问题,让代码不再报错,为什么要先解决js报错问题而不是文本显示问题?因为Vue对象提供了Vue所有的功能,其中就包括值绑定,解决了值绑定的问题,界面自然也会恢复正常,所以先解决Vue对象找不到问题。
Read the rest of this entry
vue
背景
首先声明,本人并不是前端大神,看过我之前的内容应该知道,我擅长做后端,虽然前端略有涉略,但谈不上精通,连熟悉都勉强。写这个系列的目的仅仅只是出于好奇,好奇为何前几年还是JQuery一统天下的前端局面如今为何如此混乱,好奇好好的js是如何被玩的亲妈都不认识,之所以选择vue作为切入点,完全是因为vue简单,基本看下demo就能入门,既然vue作为目前流行的前端三大框架之一,那么只要了解vue是怎么实现的,是不是对前端稍微有了一点认识,于是在这种想法的促使下,有了这个系列。
这里模仿vue并不是指我把vue的源码看了一遍,看懂了然后模仿vue写,而是语法还是vue的语法,但是实现我自己想办法实现,当然可以参考vue,但以我前端的水平想完全看懂vue难度有点大,所以如果你想了解vue源码实现,这个系列不适合你,但如果你和我一样,稍微会点js,又对vue源码无从下手,但又想知道如何实现跟vue一样的功能,那么就跟着我一起,我们不看源码,自己琢磨实现一个简单的vue。
Read the rest of this entry
vue
背景
某项目Oracle 11g RAC其中一个节点vip服务offline,集群从双节点变为单节点
排查
Read the rest of this entry
oracle, rac
背景
B站专栏目前只支持富文本编辑器,文本编辑器就分为两种,支持markdown的和不支持markdown,可惜的是B站的专栏并不支持markdown而且也没有计划支持,这也是可以理解,毕竟up主们并不都了解markdown,但对于一个重度md用户,用富文本编辑器是无论如何都无法忍受的,于是研究了下专栏的逻辑,找到了支持md的方案,见下文。
分析
用户在编辑专栏时,系统会实时将数据通过接口https://api.bilibili.com/x/article/creative/draft/addupdate
保存到后台,接口参数如下(curl)
Read the rest of this entry
markdown