一起来聊聊关于WebIDE的实现

2023-01-10 12:12:52 来源: 程序员客栈

本期聊聊WebIDE的概念和在各种客户端的应用场景;一起探讨在社区里比较主流的WebIDE实现的方法模式与对比,一起来了解WebContainer思路下的WebIDE。

(本篇内容较多,戳一戳下方点赞收藏,下次不迷路~)

一、什么是WebIDE

IDE基本上技术同学每天都会接触到,比如VS Code就是一个比较偏向IDE的产品,因为VS Code本身内置了很多开发功能,还可以通过插件来实现调试、代码补全、代码提示等各类功能,借助这些功能就可以比较好的做出一个集成开发环境(IDE)。


(资料图片仅供参考)

WebIDE相当于IDE产品的Web版。把用户界面这一端放到了浏览器里面,通过导航能够在浏览器里面打开的,且界面和本地的客户端版本几乎是一样的。

有一个WebIDE比较知名的产品是CodeSandBox,同学写一些demo或者做小的功能需要分享给别人,就会用类似的网站;和它类似的还有Codepen,也算是一种WebIDE,它也是把主要界面的操作、交互、开发等放在浏览器里面去做的,这是在业界比较出名的两个例子。

接下来从概念上来看一下构成WebIDE的两个部分:Web和IDE。

Web更多是从使用它的产品形态以及技术实现上来界定的。

与它相对的是像IDEA这种偏客户端的产品。VS Code虽然也是客户端产品,但是它本身用了比较多的Web技术来构建产品的应用,里面混合了一些Web技术;CodeSandbox是偏Web端技术的,是Web端承载的这样一种产品。那么Web的定义就是在技术实现上面去界定的,它也不是两级化的,从Desktop到Web我们可以看到它有各种中间状态,通过分析哪些组件、哪些部分是如何来运用Web技术,可以让我们更好地来分析IDE产品。

IDE是集成开发环境的缩写。所谓集成开发环境,包含了平时会用的调试、代码的高亮、自动代码补全、代码检查等;再加上如果做一些面向对象的语言开发,还会看到“类”的浏览器,以及“类”的继承关系、相互之间的引用关系;还有构建工具等一些东西集成起来形成一个集成开发环境。

与它更相对的是一个偏极端的像Editor这种的编辑器,比如我们可以直接用一个文本编辑器打开一个代码模块,这就是一个最简单的Editor。再比如js这种脚本语言,理论上可以用编辑器直接写代码,写完之后储存成js放到网站上运行就可以了。

更复杂的IDE产品比如Android Studio,它不仅包含写代码和各种预览功能,还可能会包含一些监测应用的性能等功能。

所以在IDE的维度上,需要考虑产品功能的完备程度,以及在开发过程中涉及到的各种功能是否都集成在一个载体里。集成的越来越丰富,越能形成一个集成开发环境,IDE也就更丰富。

二、WebIDE的一些应用场景

以上阐述了 WebIDE的相关概念。从下图(图2-1)也可以看到其实是有一个过渡过程,每一种产品可能会位于坐标轴的某位置。因为不同产品使用的技术战略不同、面向对象不同,所以处于不同位置。它们并不是一个两级对立的状态。

接下来再聊聊WebIDE的应用场景,之前也会有很多同学认为有了客户端的程序来开发代码,在本地能开发的东西也很多,那是不是就不需要其他的东西了?这里带大家看一下业界有哪些产品以及这些产品是如何去定位的,在它们的场景下做了哪些偏WebIDE方向的事情等。上图坐标轴(图2-1)代表的是研发场景的量级。

轻量级指的是开发频次较少,每次开发时间较短,开发代码量比较简单。比如一个月开发一两次左右,每次开发1-1.5个小时,源码也不会出现这种几十万行的源码。重量级的场景是指每天可能都需要迭代开发一些项目,且源码量非常巨大,代码也极其复杂,整个开发环境很庞杂。

所以在整个坐标轴上的不同位置都会有不同的场景和产品。

(一)轻量级的应用场景

最轻量级的场景第一个便是Playground。比如我写了一个库,或者像Golang之类的各种语言,在推广给新手运用时会有一个Playground,它会有一个地方可以直接写代码片段,然后在旁边输出结果。这实际上也是一个非常轻量级的WebIDE的应用场景。

坐标轴下面列了一些对应产品,像runkit在NPM会用到。比如在NPM官网上,每个包主页的右下角应该可以看到一个runkit的按钮,点击可以立刻打开一个Playground来测试/试用这个包。

第二个则是Demo的编写。比如最近新出的一些前端开源库,在它的网站上就会提供一些轻量级嵌入的WebIDE,可以直接写代码,然后用库看看效果如何。与之类似的还有很多组件库,传统的组件库肯定是先在页面上直接把组件代码写好,然后基于这段代码渲染出可交互的组件,让用户能看到。但缺点就是用户无法自主修改调用代码,如果想试另一个API或者参数值,就无法调整。所以更好的方式是能够直接编辑代码,以及编辑完之后能直接渲染出如何使用这个组件,那么用户很快能知道组件是否符合要求,以及组件的展示情况是否能够满足要求。

比较常用的产品有CodeSandbox。

类似轻量级的还有一些做线上代码教学的产品。比如学一些现成的编程课程,或者是做一些线上的面试时,会需要写代码、去运行等,这些情况其实都是比较轻量的。

常用的产品有scrimba,这是一个比较集成性的产品,它有一些可以交互式的视频,在看视频过程中可以随时随地点到视频里面去编辑代码,编辑完代码运行后,还可以继续回来补看。

还有一个replit,能够写各种语言的代码,然后在线上直接执行,还可以做一些教学等。

(二)偏中型的应用场景

偏中型的开发场景一个是静态文档开发站。我们现在常用的是用没有plus的、稍轻些的静态文档工具来开发。

实际写代码时(不是所谓的页面代码),比如markdown类的,再结合开发一些小的自定义组件,这样的一个静态站点就出来了。这个开发频率不会特别高,也不用写太复杂的代码,包括几个组件或有Markdown的文案就可以。

对应的产品有Nextjs Live和Nextjs Web,Nextjs Web也是应用了WebIDE的形态,但是和我们一般看到的编辑器稍有不同,感兴趣的同学可以去深入了解。

还有一个也稍微轻量级的场景—开发组件。开发组件相比于实际项目,代码量肯定会更少,又因为它更加的内聚,所以场景也更加的限定,工具链的复杂度、环境的复杂度等也就会更加简单。

可能只需要集中几十个源码文件,且一个组件的总代码量一般也不超过一两千行。

还有一些low-code的场景,这也可以算是一个轻量的WebIDE,只是和我们预想的通用的WebIDE不太一样,因为low-code的编辑后面还会对接自己的运行时等,集成开发环境会更加的定制性,并不是那种通用代码开发的。

还有像gitpod也是一个比较轻量级的产品。

(三)偏重型的应用场景

再偏重一些的场景,例如开发FaaS的项目,有很多云厂商会提供Web端编辑FaaS函数的方式,同时也支持在本地用CLI方式或IDE插件的方式去做。

像autocode,它是一个完全基于云端环境、浏览环境的产品,用户可以在Web的环境里去开发部署,并且它围绕WebIDE把很多的云服务在这做了整合。

最复杂的还是我们平常接触最多的比如在VS Code里面去开发一个复杂的完整项目。

以上是关于应用场景的一些介绍,从上图(图2-1)坐标轴也可以看出,不同的位置都可能有不同的WebIDE实现。因为对功能要求的侧重点不同、面向的产品及需求场景也不同,所以WebIDE的产品覆盖度是比较广的。

三、WebIDE的主要实现思路与对比

接下来看一下现在开源社区里面主要的实现思路都是怎样的,以及大家都是怎么做WebIDE。

首先来看一下上图(图3-1),看看界面核心部分也就是WebIDE需要具备哪些能力。比如把上面的导航栏盖掉,会发现下面的部分和本地IDE(Desktop IDE)很类似,所以来看一下这样一个IDE需要具备哪些必要的功能。

(一)IDE需要具备的必要功能(以前端为例)首先第一个需要有文件系统。第二部分需要在编辑器非常核心的中部区域能够编写代码。最基础要有个编辑器。第三个部分是需要能支持依赖包的安装。因为我们在写前端项目时,应该都不会编写这种在编译时、运行时完全不需要第三方依赖的项目(除非场景极其定制收敛)。像上述(图2-1)的坐标轴右侧偏重型的产品和场景,肯定会需要依赖安装。第四点在写代码时需要做代码编译才能运行。现在写的代码都已经不是原始的js和css,像是vue模板、jsx;也很少有人直接写css,会选一个Less或者Sass等;还要做各种编译、需要兼容各个浏览器及各种版本。所以现在写的代码一定要做编译才能运行,因为几乎现在没有项目是直接写纯粹的最原始代码。需要页面预览。左侧中间这里(图3-1)有一个浏览器,可以用来预览现在写到的页面,前端希望能够写完后立刻看到页面上的东西和效果。因为在编写复杂样式时,可能无法准确完全的一步到位,会需要通过不断调校,所以这也是很关键的一个部分。与此相关的是热更新。我们现在可能会有很多种状态库,即使不使用状态库,组件也会有自己内部的状态,如果页面全部reload,就会造成直接丢失。所以前端标配就是能够做模块的热更新,能够局部刷新某个模块,这也是一个比较标配要求。还有一个是实时性。通过使用Web技术来编辑保存,保存完之后刷新页面需要及时,页面刷新的实时性体验是否流畅这点也是比较重要的。在本地编译器上编译过程可能会稍微慢些,但客户端上的操作还是比较流畅的,体验还是不错的。(二)业界内WebIDE的实现思路

下面来看一下在上述提到的基础功能上,在业界的实现思路上是如何做的。

1、VS Code和Theia

第一个实现模式下比较著名的两个产品,一个是左边(图3-2)VS Code,另一个是近几年稍新一点的Theia产品。这两个产品在大体的技术路线上是类似的,且这两个产品也都是开源的,完全能看到它的源码。

这里举例说一下Theia这个产品,它的设计和代码目录结构是比较清晰的,VS Code相对会更加复杂,拆分设计没有那么清晰。因为最开始这两个产品的定位不太一样,像Theia可以看到里面都有很多的Package,每个Package对应一个具体的功能模块,且功能模块里面目录结构也是很清晰的,它会有一个叫Browser或Node的目录,模块的层级划分是比较清晰的。

整体实现上,前端部分主要负责UI,每一个模块会对应一个前端的实现。比如ternimal里有各种彩色加速应该如何展示出来。同时还会负责一些交互,比如在ternimal输入的东西如何拿到。中间会通过WebSocket的方式做一个协议。像Theia的话就用JSON做了一个自定义格式的协议,来和服务端通信,让后端对应的模块也就是ternimal的Node.js模块收到对应的执行方法。ternimal的后端模块就会把输入的内容放到对应进行的标准输入里,把标准输出取出,再返回给前端来展示。所以它的层级划分是每个功能模块,大致分成前端(Browser)和服务端(Node),中间有一个标准的协议来通信。

所以它的具体实践上明显分为两层,第一层是上图(图3-5)红框里面的Browser浏览器,它主要负责Web的UI;第二层的是绿框的Server层,Server会依托于后端环境和操作系统环境。整个Server为了做资源隔离就把它放在一个容器里面,相当于每次在前端对应打开一个WebIDE,背后就有一个Container,里面的Server就会做相关的事情,所以文件系统实际在前端主要是展示,最终还是存储在一个Container里面。

再来看代码编辑器,这是一个纯前端的编辑器,一般不会直接和后端交互,现在常用的选择就是三个:Ace、Monaco和CodeMirror6。

Ace是一个非常老牌的编辑器。已经出来有十几年了,所以功能不一定特别完备,它的UI样式也稍微老一些;

Monaco属于中生代,是VS Code本身用的编辑器,然后后来把它慢慢独立出来做。这个东西也是现在做WebIDE,很多人会去选择的一个开源的编辑器;

Code Mirror是更新一点的。Code Mirror本身不是一个特别新的编辑器,也做了也很长时间了。但是Code Mirror6它是一个完全重构的新版本,在5的基础上就几乎重写了一遍,所以这么一个新版本算是比较新的编辑器,支持很多新特性。

关于编辑器这里有一些简单的对比(https://blog.replit.com/code-editors),因为编辑器属于比较高内聚低耦合的产品,所以在做WebIDE时,为了快速启动,选一个开源的产品会有比较大帮助的,不会拉垮整个WebIDE,且接口也比较简洁的。

再下一步是依赖安装,它有个服务端,通过一个通信指令在服务端把安装包装上。代码编译运行也相似,也是在Server端运行,然后Server通过网络协议和Web里的某一页面进行通信。由于有实际的服务端,所以在这个架构下的页面预览、热更新等和本地开发基本是一致的,服务、编译等都是在Container里面的。

在实时性上主要取决于两点:一是通信是否会有延迟,是否会有带宽问题,以及服务稳定性如何;第二点是由于涉及前端编译运行,所以分配的资源是否足够也会有影响。

2、CodeSandbox

下面再说第二个实现思路是CodeSandbox。这个思路和前面的技术路线和想法差异比较大,所以需要单独介绍一下。

CodeSandbox本身是一个开源的产品,它把客户端的IDE部分开源出来了,所以可以直接看到它的源码,了解它的各种实现。在它早期发表的文章上也介绍了一些他们在实现WebIDE上面的关键思考点等。虽然技术实现细节有了非常多的迭代,但是它整体的技术思路大致是这个方向。

上图(图3-7)Code Sandbox的图,可以看到右边这个图上看出,它没有像VS Code或Theia分Broswer或Server,因为这些部分全都在 Broswer里,所以它的文件系统是一个基于浏览器内存的文件系统。编辑器这块在技术路线上没有太大的差异,都是直接用开源的产品。

在依赖安装这部分和前两者也有很大不同,因为它没有一个服务端环境,意味着它不能用“正常”的方式安装,同时因为它是一个基于浏览器内存的文件系统,所以即使在某个server安装上这些东西,也需要它搬到浏览器里面来,然后把它放到这个文件系统上去才行。所以在这里有一个服务(图3-7最右侧),专门来处理NPM包,把NPM包代码处理完后直接给前端浏览器返回,再通过接口的方式返回NPM包里面文件内容以及一些其他信息等。

通过这个转换服务,在左侧这里(上图3-7)去搜一个React时可以把React的版本列出来,在下拉框里选中目标后就会通过这个服务,把所有依赖的NPM包里面的代码内容返回到前端,然后前端把它装载到文件系统里面,这样就可以去做依赖安装。

下一块代码的编译运行主要关注绿色这部分(图3-8),这也是重度开发的部分。代码编译会基于开源工具(babel、vue compiler等)来手写一个可在浏览器内运行的打包器。运行则会依托于iframe,把代码放到iframe里面让它去运行和渲染页面。

关于页面预览,iframe并不是真正的去某一个服务端把资源加载进来,它通过前端的方式,可以是 Service Worker 直接拦截返回,或者直接通过前端的通信机制发送代码来加载。热更新这部分的话,肯定需要自己做一些热更新的这种操作,因为它是把工具链这块自己接管的。

实时性上一般没有太大差别,上面可以看到它是一个纯浏览器内部的操作,浏览器主线程会频繁和web worker进行各种通信,所以相比较要去和服务端通信,它的时间可能会要稍微短一点。

这节的最后给这两种模式做个简单对比(图3-9):

Theia的模式由于需要有服务端的实现,所以在资源开销和运维成本上有劣势;而CodeSandbox由于需要自研工具链,所以在前端这个新框架迭代频繁的领域有较大开发成本,同时由于缺乏服务端能力,能满足的场景也有限,主要还是纯前端的代码编译。

四、WebContainer思路下的WebIDE

最后来说一下 WebContainer的思路下是如何做IDE的。WebContainer是stackblitz公司提出的一种技术模式,算是第三种模式。目前社区没有开源实现,因为这个是比较核心的技术,所以做这个的stackblitz公司也没有在公开的资料里说过具体的技术细节,只有一些概念。

可以体验下(https://stackblitz.com/),实现原理大致是利用了wasm的特性,将node相关代码进行转换为在浏览器work可以执行的wasm代码,这样在浏览器就支持了node的运行。

WebContainer的核心目标是,既想跑服务端代码(跟VS Code一样),但又不想有服务端容器。

它在这里提了一个概念,把服务端代码运行在一个所谓的WebContainer里,这个WebContainer是完全运行在浏览器里的,这样就做到了类似这样一种架构。

这种架构和Theia对比层级结构很像。Web UI这边可以说大致类似,层级图的下面这部分,在Theia里面是完整跑在服务端的Node.js的环境里的,而在WebContainer 这样的实现下面,就要跑在浏览器里面(图4-2)。由于前端相关的服务端应用基本都依赖Node.js,所以这里非常重要的一个问题就是怎样让Node.js程序能够跑在浏览器里面?如果把Node.js跑到浏览器的问题解决,就解决了很大一部分的技术问题。各种Node.js代码、应用、各种NPM包、构建工具就可以直接跑在浏览器里面,之前需要一个Server环境来做,现在就不需要了。所以在这样一个思路下,就可以把server搬到浏览器里面来做。

它和CodeSandbox不一样,CodeSandbox在绿色部分(图4-2)也就是在Web woker的技术上做了各类技术栈的构建工具链,NPM也需要去单独做处理。

这个对比可以看到二者实现的事情和层级上是不同的。理论上基于WebContainer的方式NPM也不需要再单独处理。如果实现了完整的Node.js运行环境,可以把npm install抛到worker里面去,但是可能会有一些性能和效率的问题。所以做 WebIDE需要定制一个在浏览器里面能够独立运行NPM CLI工具。

这里要涉及三点:第一个是依赖的解析;第二个是怎么去把包拉下来;最后是拉到之后你需要去解包解压。

基于WebContainer模式下的WebIDE能够较好规避前两个模式的缺点(图4-4):

由于所谓的server也运行在浏览器中,所以资源消耗和运维成本就降为0,安全隔离也不需要docker container这种技术,浏览器自带了沙箱特性。同时由于模拟了Node.js运行环境和基础的shell能力,所以在工具链上可以大量服用前端已有工具包,无需定制开发工具链。

最后总结一下,基于WebContainer的WebIDE在整个应用场景从轻到重上来说,属于是一个它可以处理从轻到重的产品。在轻量级场景下,我们可以用它做playgroud,做demo编写,都是可以的。然后再偏中量级上面的话,可以在它上面运行vuepress或者vitepress(Vue团队做的工具)来进行静态的站点搭建,你可以在这上面直接去开发你的静态站然后联通部署服务。

现在我们是做了一个产品(暂不对外开放),可以进行一些在线Demo的编写、分享,除了运行纯前端组件、包之外,也可以运行一些命令行工具、或者Node.js包。随着开发体验与周边工具(例如git)的补齐,它这种技术模式在这个场景轴上,所能覆盖范围会更长一些。然后本身它内部的各个子模块也可以独立输出出来,像最近CodeSandbox它其实也有意把自己的Sandbox给抠出来,独立出来做一个轻量级的输出,就不整个输出WebIDE这块东西。

(下方 为文章中提到的技术产品和文档链接,感兴趣的同学可点击查阅~)

https://blog.replit.com/code-editors

https://github.com/codesandbox

https://codesandbox.io/post/creating-a-parallel-offline-extensible-browser-based-bundler-for-codesandbox

https://codesandbox.io/post/how-we-make-npm-packages-work-in-the-browser

https://codesandbox.io/post/sandpack-announcement

https://codesandbox.io/docs/environment#container-environment

https://codesandbox.io/post/announcing-codesandbox-containers

https://stackblitz.com/

标签: 开发环境 文件系统 来看一下

上一篇 :

下一篇 :

一起来聊聊关于WebIDE的实现

本期聊聊WebIDE的概念和在各种客户端的应用场景;一起探讨在社区里比较主流的WebIDE实现的方法模式与对...

01-10 12:12:52

快资讯丨2023广州番禺区鲜花年桔临时摆卖点在哪里?

2023广州番禺区鲜花年桔临时摆卖点在哪里?据介绍,2023年广州番禺区有5个较大的鲜花年桔临时摆卖点,分...

01-10 11:23:12

SML GROUP向港交所递交上市申请 为全球第二RFID标签供应商_世界关注

据港交所1月9日文件:SMLGROUPCORPORATION向港交所递交上市申请,法国巴黎银行为独家保荐人。SMLGROUP主...

01-10 10:38:02

专访:美国民主模式“过时陈旧”——访玻利维亚前外长瓦纳库尼 全球信息

新华社拉巴斯1月7日电专访:美国民主模式“过时陈旧”——访玻利维亚前外长瓦纳库尼  新华社记者  ...

01-10 09:41:00

谁会用抖音桌面端聊天软件?

抖音聊天一小步,“截胡”微信一大步?@新熵原创作者丨樱木编辑丨月见新年伊始,抖音再次潜入了微信的后...

01-09 20:06:23

环球快资讯:弄在羽绒服上的大片油渍怎么清洗,才能洗干净?

1、局部脏用热毛巾擦羽绒服洗一次,寿命就打折一次,所以尽量少洗。羽绒服只是局部脏一点,最好用热毛巾...

01-09 18:36:41

富乐德(301297)龙虎榜数据(01-09) 环球百事通

沪深交易所2023年01月09日公布的交易公开信息显示,富乐德因成为有价格涨跌幅限制的日换手率达到30%的前...

01-09 18:20:40

留给威马的时间不多了_环球头条

“让威马从神坛上跌落的不是外人:脾气最火爆的侯海靖妄图只手遮天;最懂销售的陆斌背锅离开;CEO沈晖酿...

01-09 18:33:05

千亿央企大白马业绩大幅预减!最新业绩暴增股揭秘,最高预增超20倍,环比连增+同比倍增的白马浮现

数据是个宝数据宝炒股少烦恼年报预增行情正式打响。早前,艾比森发布业绩预告,预计2022年归母净利1 8亿

01-09 15:23:35

让第一动力澎湃发力——科技创新一线观察 世界快资讯

科技是第一生产力、人才是第一资源、创新是第一动力。2023年是全面贯彻落实党的二十大精神的开局之年。...

01-09 11:37:53

南非卫生部:不会禁止中国旅客来南-热门看点

人民网约翰内斯堡1月4日电(刘畅)南非卫生部近日表示,尽管中国新冠肺炎感染病例激增,但南非不会对来...

01-07 02:22:29

天天新动态:四川漓江、乐园抽水蓄能电站项目签约

四川漓江、乐园抽水蓄能电站项目签约12月29日,四川苍溪县与四川路桥股份有限公司、中国能建葛洲坝集团...

01-06 23:59:56

巨星陨落!传奇拉力车手 Ken Block 意外离世,留下一场无法进行的直播 天天聚看点

让拉力不再小众砖叔去世了。1月2日,Hoonigans发布公告,称其创始人、拉力车手KenBlock在雪地摩托的事故...

01-06 21:46:32

“小众”基金火出圈 配置价值凸显

2022年,公募基金收益率排行榜出炉,据Wind统计,全市场的公募基金中,年度收益率最高的5只基金来自QDII...

01-06 19:29:22

聚力欠薪“清零” 雅安雨城区做好“五件实事”增强农民工幸福感获得感_每日看点

四川经济网雅安讯(记者庄祥贵)1月5日,记者从雅安市雨城区“今冬明春服务保障农民工‘五件实事’暨根...

01-06 15:50:20

01月4日贵州茅台融资净买入6389.61万元,两市排名第7 天天热推荐

投顾分析若股价处于低位,融资净买入额为正往往会伴随股价的一波上涨;而若股价处于高位,资金却仍在融...

01-06 13:25:59

每日看点!美女赵丽颖的时尚穿搭,也有补刀之处,有趣!

美女赵丽颖是一位可爱又有趣的女明星。她比较关心生活中的一些细节,尤其在时尚服饰上。她也有比较好的...

01-06 11:39:30

还呗逾期借款会上征信吗

网贷逾期一般会上征信,有些借贷机构在用户逾期后一天后就会上报给征信机构,而有些借贷机构则是会在几天...

01-05 14:02:35

中秋节为什么要吃月饼?_当前头条

谢老友邀请答题,谢谢!老友问中秋节为何要吃月饼?嘿嘿,此乃千古绝密!古今中外,天地之间,唯我知晓...

01-05 12:19:43

世界快报:香肠晒几天太阳合适?

根据天气情况,七至十天合适。做好香肠后,挂在通风较好的地方晾起来,用针刺排气。每隔15厘米绑绑,这...

01-04 21:25:24

焦点播报:家家悦: 家家悦集团股份有限公司关于可转债转股结果的公告

家家悦:家家悦集团股份有限公司关于可转债转股结果的公告

01-04 17:18:52

天风证券:新能源消纳整体处于较高水平 新能源装机电量占比有望持续提升

智通财经APP获悉,天风证券发布研究报告称,全国新能源消纳利用水平整体处于较高水平,部分月份弃风弃光...

01-04 14:41:53

焦点讯息:新开源董秘回复:公司管理层感同股东诉求,为公司美好未来竭心尽力

新开源(300109)01月04日在投资者关系平台上答复了投资者关心的问题。

01-04 10:47:45

从人工繁育到野化放归,中国大熊猫保护研究中心交出喜人成绩单

中国大熊猫保护研究中心不仅在攻克大熊猫人工繁育等方面取得突破,还在人工繁育大熊猫野化放归、大熊猫...

01-04 08:22:43

佛教离别的句子(精选232句)

佛教离别的句子精选46句1 (二)人生就是一个过程,不管你经历过多少事情,最后还是要放下,一切归于尘...

01-03 23:36:31

城市“烟火气”回来了!旅游市场升温 主题乐园 冰雪项目人气旺_今日快讯

点击查看视频央视网消息:元旦假期,北京的各大景区客流量也在逐渐攀升,不少游客专程从外地赶来,主题...

01-03 18:41:17

【聚看点】中航科工现涨近4% 中航电子换股吸并中航机电事项获中证监核准批复

中航科工(02357)盘中涨近4%,截至发稿,涨3 42%,报3 63港元,成交额6318 24万港元。  消息面上,...

01-03 15:40:32

看热讯:吉利汽车:极氪12月交付汽车11337部 同比增长约199%

吉利汽车(00175)发布公告,集团旗下高端智能电动汽车公司极氪于2022年12月交付汽车11337部,同比增长约1...

01-03 12:29:06

资讯推荐:巨力索具董秘回复:公司在公告中已经做出明确说明,具体情况你可以查阅相关公告进行了解

巨力索具(002342)01月03日在投资者关系平台上答复了投资者关心的问题。

01-03 10:41:18

从急诊到应急病区500米的转运,让患者感受温暖和希望

自2022年12月4日,阜外医院成立了临时应急病区,专门用来分流急诊的阳性患者。很多有基础病的病人,都在...

01-03 02:38:52

世界热议:生死时速!6分钟,救了一条命

12月27日晚,甘肃成县一女子跳河落水,已无力挣扎危急时刻特巡警张康康飞身跳入水中仅用6分钟便将女子救...

01-02 23:04:28

Power BI 医疗器械行业销售管理通用模板 焦点热门

难道一定要很多页分析页面才有价值吗?非也。今天,我们发布:医疗器械行业销售管理通用模板,并面向企...

01-02 16:29:27

焦点热讯:面太辣怎么办?

如果吃的面太辣了,我建议更换汤料。就是往面汤里加入更多的汤。减少原汤的浓度。然后辣度就可以下降。...

01-02 00:25:05

速读:过冬被子鹅绒被子好吗

关于过冬被子鹅绒被子好吗的内容,包含蚕丝被,羊毛被,鹅绒被,哪种被子最好?鹅绒被和蚕丝被哪种被子好...

01-01 08:34:54

周口酒驾事故律师要给多少钱 世界速看料

1、按件收费收取(1)无财产争议:6000元-20000元之间;(2)法律文书:600元-2000元之间;(3)律师见...

12-31 16:11:11

裕兴科技(08005.HK)收购7.51万股腾讯股份 代价约2550万港元

格隆汇12月30日丨裕兴科技公告,董事会谨此宣布,于2022年12月29日至2022年12月30日期间,集团于公开市...

12-30 22:36:38

兴业银行郑州分行:打通园区金融“血脉” 聚力科创新蓝海

园区是产业集聚与发展的重要载体,科技是产业转型升级最大的驱动变量。掌握新科技、践行新金融,才能在...

12-30 19:04:20

【天天新要闻】不对立不撕裂,向前看向前行

疫情当前,没有旁观者,谁也不是局外人。新冠病毒席卷了全球,也没有放过中国的各个角落。我们身边的亲...

12-30 16:05:58

佛山交通违法情况有哪些方式查询?-快播报

佛山交通违法情况有哪些方式查询?答:广东省交通安全综合服务管理平台、交管12123APP、佛山市公安局交...

12-30 10:39:39

白俄罗斯外交部就乌克兰导弹落入白境内一事召见乌大使

当地时间12月29日,白俄罗斯外交部召见了乌克兰驻白俄罗斯大使,就乌克兰导弹落入白俄罗斯境内一事向其...

12-30 06:59:42

年终报道·2022奔向美好丨2022,筑梦苍穹|每日资讯

自1992年正式立项以来,30年间,中国载人航天工程如同一粒种子,实现从无到有,结下累累硕果。筑梦苍穹...

12-29 20:09:55

全球热讯:万山普降大雪 各级各部门积极应对低温雪凝天气

(陶国华艾昌春叶顺强)12月27日20点至28日14点,受强冷空气影响,万山区境内普降大雪,全区各级各部门“以雪为

12-29 18:01:58

湖南一越野车凌晨失控5小时遭遇生死时速!车主讲述惊魂过程 世界看热讯

湖南一越野车凌晨失控5小时遭遇生死时速!车主讲述惊魂过程

12-29 16:21:07

中国审计署公布中国石油所属企业涉嫌倒卖进口原油等26起违纪违法问题线索查处情况

12月28日,中国审计署官网公布26起违纪违法问题线索查处情况,包括中石油所属企业涉嫌倒卖进口原油,青...

12-29 13:57:05

永福股份预中标国家能源投资集团200MW户用光伏电站项目|当前视讯

证券时报e公司讯,永福股份12月28日发布公告称预中标国家能源投资集团200MW户用光伏电站项目,预中标总...

12-29 12:00:08

报道:支持开票 | Python实证指标构建与文本分析

LovelyPlots库|格式化科学论文、论文和演示文稿的可视化图形付费课程|支持开票|购前咨询微信372335839概...

12-29 10:07:53

阳了?没阳?

随着疫情政策的放开,公司的同事、身边的朋友陆续中招,公司里上班戴口罩的越来越多,上班的人却每天都...

12-28 17:56:37

德明利(001309)12月28日主力资金净卖出551.43万元 每日观点

截至2022年12月28日收盘,德明利(001309)报收于53 35元,下跌4 49%,换手率7 83%,成交量1 57万手,...

12-28 15:14:57

大连中山区两宗宅地成功出让 保利6.95亿元、中铁5.9亿元各得一宗

观点网讯:12月28日,大连市中山区原东海热电厂搬迁改造项目B区地块的使用权在成功出让,竞得方为保利(...

12-28 11:13:37

如何为居家老人服务?江苏南通这样打造链式养老 微头条

居家养老是我国绝大多数老年人的选择,自2017年以来,民政部、财政部在全国启动居家和社区养老服务改革...

12-28 07:45:46

快资讯丨2023广州番禺区鲜花年桔临时摆卖点在哪里?
SML GROUP向港交所递交上市申请 为全球第二RFID标签供应商_世界关注
专访:美国民主模式“过时陈旧”——访玻利维亚前外长瓦纳库尼 全球信息
谁会用抖音桌面端聊天软件?
环球快资讯:弄在羽绒服上的大片油渍怎么清洗,才能洗干净?
富乐德(301297)龙虎榜数据(01-09) 环球百事通
留给威马的时间不多了_环球头条
千亿央企大白马业绩大幅预减!最新业绩暴增股揭秘,最高预增超20倍,环比连增+同比倍增的白马浮现
让第一动力澎湃发力——科技创新一线观察 世界快资讯
南非卫生部:不会禁止中国旅客来南-热门看点
天天新动态:四川漓江、乐园抽水蓄能电站项目签约
巨星陨落!传奇拉力车手 Ken Block 意外离世,留下一场无法进行的直播 天天聚看点
“小众”基金火出圈 配置价值凸显
聚力欠薪“清零” 雅安雨城区做好“五件实事”增强农民工幸福感获得感_每日看点
01月4日贵州茅台融资净买入6389.61万元,两市排名第7 天天热推荐
每日看点!美女赵丽颖的时尚穿搭,也有补刀之处,有趣!
还呗逾期借款会上征信吗
中秋节为什么要吃月饼?_当前头条
世界快报:香肠晒几天太阳合适?
焦点播报:家家悦: 家家悦集团股份有限公司关于可转债转股结果的公告
天风证券:新能源消纳整体处于较高水平 新能源装机电量占比有望持续提升
焦点讯息:新开源董秘回复:公司管理层感同股东诉求,为公司美好未来竭心尽力
从人工繁育到野化放归,中国大熊猫保护研究中心交出喜人成绩单
佛教离别的句子(精选232句)
城市“烟火气”回来了!旅游市场升温 主题乐园 冰雪项目人气旺_今日快讯
【聚看点】中航科工现涨近4% 中航电子换股吸并中航机电事项获中证监核准批复
看热讯:吉利汽车:极氪12月交付汽车11337部 同比增长约199%
资讯推荐:巨力索具董秘回复:公司在公告中已经做出明确说明,具体情况你可以查阅相关公告进行了解
从急诊到应急病区500米的转运,让患者感受温暖和希望
世界热议:生死时速!6分钟,救了一条命
Power BI 医疗器械行业销售管理通用模板 焦点热门
焦点热讯:面太辣怎么办?
速读:过冬被子鹅绒被子好吗
周口酒驾事故律师要给多少钱 世界速看料
裕兴科技(08005.HK)收购7.51万股腾讯股份 代价约2550万港元
兴业银行郑州分行:打通园区金融“血脉” 聚力科创新蓝海
【天天新要闻】不对立不撕裂,向前看向前行
佛山交通违法情况有哪些方式查询?-快播报
白俄罗斯外交部就乌克兰导弹落入白境内一事召见乌大使
年终报道·2022奔向美好丨2022,筑梦苍穹|每日资讯
全球热讯:万山普降大雪 各级各部门积极应对低温雪凝天气
湖南一越野车凌晨失控5小时遭遇生死时速!车主讲述惊魂过程 世界看热讯
中国审计署公布中国石油所属企业涉嫌倒卖进口原油等26起违纪违法问题线索查处情况
永福股份预中标国家能源投资集团200MW户用光伏电站项目|当前视讯
报道:支持开票 | Python实证指标构建与文本分析
阳了?没阳?
德明利(001309)12月28日主力资金净卖出551.43万元 每日观点
大连中山区两宗宅地成功出让 保利6.95亿元、中铁5.9亿元各得一宗
如何为居家老人服务?江苏南通这样打造链式养老 微头条
最新快讯!国药现代:12月26日公司高管连万勇、李显林增持公司股份合计2.1万股
X 广告
资讯
X 广告

Copyright ©  2015-2022 今日畜牧网版权所有  备案号:沪ICP备2022005074号-40   联系邮箱:5 85 59 73 @qq.com