- Flume 简介01 作用 核心概念 事务机制 安装 配置入门实战
湖中屋
Flumeflume
Flume1.业务系统为什么会产生用户行为日志,怎么产生的用户行文日志:每一次访问的行为(访问、搜索)产生的日志记录用户行为日志的目的:1.商家会精准的给你呈现符合你的个人界面2.商家会给你个人添加用户标签,更加精准的分析埋点等2.flume用来做什么的(采集传输数据的,分布式的,可靠的)ApacheFlume是一个从可以收集例如日志,事件等数据资源,并将这些数量庞大的数据从各项数据资源中集中起来
- stm32+w5500实现web服务_【NodeJS】简单静态WEB服务器实现
weixin_39711441
说明利用HTTP模块URl模块Path模块Fs模块创建在项目文件夹下,创建文件夹static,下面创建index.html//引入http模块var http=require('http');//fs模块var fs=require('fs');http.createServer(function(req,res){ //http://localhost:8001/news.html/new
- Mysql8 MHA(完结)
秒变学霸的18岁码农
数据库mysqljava
3、故障切换演练3.1failover切换演练场景一、自动failover,主从正常,从IO,SQL进程down掉,主库down掉slave01停止IO、SQL线程模拟主库down机3.1.1slave01停止复制Mysql>stopreplica;3.1.2主库down机Pkill-9mysqld3.1.3观察maanger日志Master172.16.134.24(172.16.134.24:
- Delphi代码编写标准指南
好大的牛角
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!·日月光华精华区文章阅读发信人:Delphii(Delphi),信区:VCL标题:Delphi编码规则发信站:日月光华站(FriSep712:03:072001),站内信件Delphi代码编写标准指南■■■■■■
- 【强化学习】Mava框架
大雨淅淅
人工智能机器学习算法人工智能学习深度学习
目录一、选择框架二、学习框架基础三、深入框架高级特性四、实践项目五、参考文档和社区资源六、编写测试用例七、学习框架的生态系统八、持续学习和适应九、建立个人项目或工作项目十、反思和总结关于Mava框架的学习,首先需要明确的是,您可能是指Java框架的学习,因为“Mava”并非一个广为人知的特定Java框架名称。在Java开发领域,有多个知名的框架,如Spring、SpringBoot、Hiberna
- 高可用架构-CAP理论
weixin_33939843
2019独角兽企业重金招聘Python工程师标准>>>整理自:《从零开始学架构》李运华著转载于:https://my.oschina.net/grace233/blog/2236736
- 学生作业-学生选课系统,后端SpringBoot + maven,前端vue。涉及管理员、学生和教师三个角色。教师可设置课程信息以及学生成绩录入;学生可选课和查看成绩。源码中包含MySQ数据表sql。
程序员WANG
vue.js前端springboot
1、学生作业-学生选课系统,后端SpringBoot+maven,前端vue。涉及管理员、学生和教师三个角色。教师可设置课程信息以及学生成绩录入;学生可选课和查看成绩。2、源码中包含数据表,sql文件,mysql数据库,可一键导入。3、管理员账号和密码root、root;学生和教师的账号请查看数据表,密码均为123456。4、Management是后端代码,vue是前端vue代码,按照正常启动(v
- Idea拉取项目流程及报错解决
暖暖的糖糖
Idea工具intellij-idea
1.入职新公司或者开启新项目的时候,需要通过idea引入项目2.首先通过git地址open引入项目,需要Git下载项目:https://blog.csdn.net/shy52134/article/details/121558689?spm=1001.2014.3001.5501获取git账号密码及权限获取git文件路径获取分支地址3.导入项目后来,加载依赖,注意有的公司有自己的私有库一定要求取最
- 客户订单管理的微服务例子
自由鬼
Java程序微服务架构云原生
下述代码实现了一个客户基本信息管理的微服务,包含以下功能:1、用户认证:使用SpringSecurity和OAuth2进行认证。配置了角色和权限控制。2、角色授权:通过@PreAuthorize注解实现角色授权,只有管理员可以执行某些操作。3、调用其他微服务:使用FeignClient调用用户管理微服务,从中获取用户数据。此示例具备扩展性,可以轻松增加其他功能,例如更多的RESTAPI或与其他微服
- vue+Element实现搜索关键字高亮功能
hsany330
本文实例为大家分享了vueelementUI表格关键字筛选高亮的具体代码,供大家参考,具体内容如下代码:1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787
- [转载]Python量化交易平台开发教程系列0-引言
dijiesa4351
c#操作系统c/c++
原文出处:http://vnpy.org/2015/03/04/20150304_Python%E9%87%8F%E5%8C%96%E4%BA%A4%E6%98%93%E5%B9%B3%E5%8F%B0%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B%E7%B3%BB%E5%88%970-%E5%BC%95%E8%A8%80/为什么用Python来开发量化交易平台目前本人所
- 【GaussDB】数据库日常维护
戒掉贪嗔痴(薛双奇)
国产数据库-GaussDBgaussdb
1.检查实例状态[omm@gauss001~]$cm_ctlquery-Cv[CMServerState]nodeinstancestate---------------------------------1192.168.0.1421Primary[ClusterState]cluster_state:Normalredistributing:Nobalanced:Yescurrent_az:A
- 方舟生存进化mysql_一分钟明了MySQL聚簇索引和非聚簇索引_rust辅助,方舟生存进化辅助...
突发奇想的饭粒
方舟生存进化mysql
SpringBoot整合rabbitmq辅助MySQL的InnoDB索引数据结构是B树,主键索引叶子节点的值存储的就是MySQL的数据行,通俗索引的叶子节点的值存储的是主键值,这是了解聚簇索引和非聚簇索引的条件什么是聚簇索引?很简单记着一句话:找到了索引就找到了需要的数据,那么这个索引就是聚簇索引,以是主键就是聚簇索引,修改聚簇索引实在就是修改主键。什么是非聚簇索引?索引的存储和数据的存储是星散的
- 程序执行原理(科普)
weixin_30832983
python操作系统
程序执行原理(科普)目标计算机中的三大件程序执行的原理程序的作用01.计算机中的三大件计算机中包含有较多的硬件,但是一个程序要运行,有三个核心的硬件,分别是:CPU中央处理器,是一块超大规模的集成电路负责处理数据/计算内存临时存储数据(断电之后,数据会消失)速度快空间小(单位价格高)硬盘永久存储数据速度慢空间大(单位价格低)CPU内存硬盘思考题计算机中哪一个硬件设备负责执行程序?CPU内存的
- redis 工具类封装
swadian2008
SpringBootredisredisspringbootjava
目录1-在springboot项目的pom.xml2-在application.properties中配置redis参数3-编写redis的配置类4-编写redis的工具类5-测试类RedisController.java1-在springboot项目的pom.xml在配置文件里加入redis的jar依赖4.0.0com.demo.springbootspringbootdemo1.0-SNAPS
- [20250119]-前端面试题——React篇
前端
[20250119]-前端面试题——React篇面试问题记录问题1请简单介绍一下React18有哪些更新。回答:React18的主要更新包括:并发渲染:React18引入了并发渲染(ConcurrentRendering),使得React能在后台进行渲染工作,避免阻塞UI更新,提升性能。自动批处理:React18会自动批处理多次setState更新,减少不必要的渲染,提升性能。useIdHook:
- Leetcode416. 分割等和子集-代码随想录
meeiuliuus
#leetcode---medium算法leetcode动态规划
目录题目:代码(首刷看解析2024年2月23日:代码(二刷看解析2024年3月10日)代码(三刷自解2024年6月26日go)题目:代码(首刷看解析2024年2月23日:classSolution{public:boolcanPartition(vector&nums){/*因为数值dp(10001,0);intsum=accumulate(nums.begin(),nums.end(),0);i
- @Scope(“prototype“)
HYUJKI
java原型模式java开发语言单例模式
@Scope("prototype")是Spring框架中用于定义Bean作用域的注解之一,它的主要作用是将一个Bean定义成原型作用域(PrototypeScope)。在原型作用域下,每次从Spring容器中请求这个Bean时,都会创建一个新的实例。@Scope("prototype")的作用默认作用域:单例(SingletonScope)在Spring中,Bean的默认作用域是单例(@Scop
- 【Python爬虫实战】深入解析 Scrapy 管道:数据清洗、验证与存储的实战指南
易辰君
python爬虫python爬虫开发语言
个人主页:易辰君-CSDN博客系列专栏:https://blog.csdn.net/2401_86688088/category_12797772.html目录前言一、了解ScrapyShell二、配置文件settings.py(一)为什么需要配置文件(二)配置文件的使用方法(三)常用字段及其含义三、管道的深入使用(一)管道的常用方法(二)管道的实现(三)启用管道四、管道的常见应用场景五、管道使用
- 【Python爬虫实战】轻量级爬虫利器:DrissionPage之SessionPage与WebPage模块详解
易辰君
python爬虫python爬虫开发语言
个人主页:易辰君-CSDN博客系列专栏:https://blog.csdn.net/2401_86688088/category_12797772.html目录前言一、SessionPage(一)SessionPage模块的基本功能(二)基本使用(三)常用方法(四)页面元素定位和数据提取(五)Cookie和会话管理(六)SessionPage的优点和局限性(七)SessionPage和Driver
- 【Python爬虫实战】全面解析 DrissionPage:简化 Python 浏览器自动化的三种模式
易辰君
python爬虫python爬虫开发语言
个人主页:易辰君-CSDN博客系列专栏:https://blog.csdn.net/2401_86688088/category_12797772.html目录前言一、DrissionPage简介(一)ChromiumPage(二)WebPage(三)SessionPage(四)三大模块总结二、ChromiumPage(一)初始化ChromiumPage(二)基本操作(三)等待元素加载(四)执行J
- 统信V20 1070e X86系统编译安装PostgreSQL-13.11版本以及主从构建
树下一少年
数据库统信UOS1070e信创postgresql13.11编译安装
设备信息操作系统版本架构CPU内存备注统信UOSV201070eX864C8G此配置仅做编译安装验证,持续运行或数据量增长大请自行评估资源配置。统信UOSV201070eX864C8G资源包该包包含postgresql-13.11源码包、统信编译postgresql-13.11安装包通过网盘分享的文件:统信postgresql-13.11-x86.zip链接:https://pan.baidu.c
- java多租户架构_Java 多租户:配置选项、租户生命周期和所使用的隔离性
宋俊潇
java多租户架构
Java多租户:配置选项、租户生命周期和所使用的隔离性IBMSDKJavaTechnologyEdition(第7版的第1个发行版)中多租户实现的深入研究GavinRolleston和MichaelDawson2014年10月09日发布获取IBMSDKJavaTechnologyEdition(第7版的第1个发行版本)要想运行本文的样例应用程序,下载IBMSDKJavaTechnologyEdit
- 基于人工智能的Python面试题
请一直在路上
python开发语言
基于人工智能的Python面试题1.Python中的元组与列表区别是什么?列表是可变类型,元组不是。列表是引用类型,元组不是。列表使用场景更宽泛,元组更多用于一些数据不可变的场景,例如参数、或者返回值。2.Python中的字典是否有序?python3.6之前字典是无序的,之后是有序的。原因可以参考下这个帖子https://blog.csdn.net/weixin_48629601/article/
- Java实战:Spring Boot实现多租户思路
拥抱AI
javaspringboot开发语言
引言在当今云计算与SaaS服务盛行的时代,多租户架构成为了很多企业级应用的基础设计之一。这种架构允许单一应用程序实例为多个组织(租户)提供服务,同时保持各租户数据和配置的隔离性。SpringBoot作为现代Java开发领域的翘楚框架,其简洁明快的风格与高度灵活性使它成为构建多租户应用的理想选择。本文将带领您走进SpringBoot的世界,详细探讨如何实现多租户架构。一、多租户架构概述多租户模型多租
- PAT (Basic Level) Practice 乙级1001-1020
今天_也很困
算法数据结构c++
制作不易,大家的点赞和关注就是我更新的动力!由于这些题全是大一寒假刷的,部分还是c语言,部分的解题方法比较复杂,希望大家体谅。有问题欢迎大家在评论区讨论,有不足也请大家指出,谢谢大家!温馨提示:可以点目录跳转到相应题目哦。1001害死人不偿命的(3n+1)猜想分数15作者CHEN,Yue单位浙江大学卡拉兹(Callatz)猜想:对任何一个正整数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么
- python微博 关键词 爬虫
嵌入式开发项目
2025年爬虫精通专栏python爬虫开发语言媒体
目录记一次阿里云盾滑块验证分析并通过操作环境数据接口proxy配置根据关键词获取userid根据userid获取信息数据保存数据:记一次阿里云盾滑块验证分析并通过操作环境win10、macPython3.9数据接口搜索https://**********?containerid=100103type%3D{chanenl}%26q%3D{quote(self.words)}&page_type=s
- 放弃传统模板语言,前后端分离架构和传统架构相比到底强在哪?
博远~
前端架构
引言在当今Web开发中,后端SpringBoot和前端Vue通过前后端分离架构来结合,已经是一个成熟的主流技术栈了。这种前后端分离的架构方式,目前广泛应用于约90%以上通过Java开发的Web应用中。但是,对于为何弃用了之前服务端渲染页面的方式,而选择了前后端分离架构,现有大多数开发者和企业都是懵懵懂懂,甚至有些公司还觉得,之前一个人能干的项目,现在变成了两个人干,增加了成本和复杂度,降低了效益。
- python运行方式
威胁情报收集站
pycharmidepython
#python代码运行方式第一种:交互式解释器。第二种:命令行运行python源代码。第三种:使用编辑器或集成开发环境(IDE)。比如:pycharm。(IDE:IntegratedDevelopmentEnvironment)详细教程:https://edu.csdn.net/job/pythonbe_01/python-3-3
- PHP常用函数总结(180多个)
Jim仔
PHPphp函数基础
PHP常用函数总结转载自:http://blog.csdn.net/lzuacm数学函数1.abs():求绝对值$abs=abs(-4.2);//4.211输入:数字输出:绝对值数字2.ceil():进一法取整echoceil(9.999);//1011输出:浮点数进一取整3.floor():去尾法取整echofloor(9.999);//911输出:浮点数直接舍去小数部分4.fmod():浮点数
- ASM系列四 利用Method 组件动态注入方法逻辑
lijingyao8206
字节码技术jvmAOP动态代理ASM
这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以
- java编程思想 --内部类
百合不是茶
java内部类匿名内部类
内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅
1,内部类的创建 内部类是创建在类中的
package com.wj.InsideClass;
/*
* 内部类的创建
*/
public class CreateInsideClass {
public CreateInsideClass(
- web.xml报错
crabdave
web.xml
web.xml报错
The content of element type "web-app" must match "(icon?,display-
name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s
- 泛型类的自定义
麦田的设计者
javaandroid泛型
为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。
采用泛型类,完成扩展。
例如有一个学生类
Student{
Student(){
System.out.println("I'm a student.....");
}
}
有一个老师类
- CSS清除浮动的4中方法
IT独行者
JavaScriptUIcss
清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。
1、结尾处加空div标签 clear:both 1 2 3 4
.div
1
{
background
:
#000080
;
border
:
1px
s
- Cygwin使用windows的jdk 配置方法
_wy_
jdkwindowscygwin
1.[vim /etc/profile]
JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43" (windows下jdk路径为D:\Java\jdk1.6.0_43)
PATH="$JAVA_HOME/bin:${PATH}"
CLAS
- linux下安装maven
无量
mavenlinux安装
Linux下安装maven(转) 1.首先到Maven官网
下载安装文件,目前最新版本为3.0.3,下载文件为
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;
2.进入下载文件夹,找到下载的文件,运行如下命令解压
tar -xvf apache-maven-2.2.1-bin.tar.gz
解压后的文件夹
- tomcat的https 配置,syslog-ng配置
aichenglong
tomcathttp跳转到httpssyslong-ng配置syslog配置
1) tomcat配置https,以及http自动跳转到https的配置
1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令)
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit
- 关于领号活动总结
alafqq
活动
关于某彩票活动的总结
具体需求,每个用户进活动页面,领取一个号码,1000中的一个;
活动要求
1,随机性,一定要有随机性;
2,最少中奖概率,如果注数为3200注,则最多中4注
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高);
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库)
解决方案
1,事先产生随机数1000个,并打
- java数据结构 冒泡排序的遍历与排序
百合不是茶
java
java的冒泡排序是一种简单的排序规则
冒泡排序的原理:
比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样;
针对所有的元素重复以上的步骤,除了最后一个
例题;将int array[]
- JS检查输入框输入的是否是数字的一种校验方法
bijian1013
js
如下是JS检查输入框输入的是否是数字的一种校验方法:
<form method=post target="_blank">
数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
- Test注解的两个属性:expected和timeout
bijian1013
javaJUnitexpectedtimeout
JUnit4:Test文档中的解释:
The Test annotation supports two optional parameters.
The first, expected, declares that a test method should throw an exception.
If it doesn't throw an exception or if it
- [Gson二]继承关系的POJO的反序列化
bit1129
POJO
父类
package inheritance.test2;
import java.util.Map;
public class Model {
private String field1;
private String field2;
private Map<String, String> infoMap
- 【Spark八十四】Spark零碎知识点记录
bit1129
spark
1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中
- WAS各种脚本作用大全
ronin47
WAS 脚本
http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html
无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下
获取下载
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自
- java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句
bylijinnan
switch
借鉴网上的思路,用java实现:
public class NoIfWhile {
/**
* @param args
*
* find x=1+2+3+....n
*/
public static void main(String[] args) {
int n=10;
int re=find(n);
System.o
- Netty源码学习-ObjectEncoder和ObjectDecoder
bylijinnan
javanetty
Netty中传递对象的思路很直观:
Netty中数据的传递是基于ChannelBuffer(也就是byte[]);
那把对象序列化为字节流,就可以在Netty中传递对象了
相应的从ChannelBuffer恢复对象,就是反序列化的过程
Netty已经封装好ObjectEncoder和ObjectDecoder
先看ObjectEncoder
ObjectEncoder是往外发送
- spring 定时任务中cronExpression表达式含义
chicony
cronExpression
一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示:
代表含义 是否必须 允许的取值范围 &nb
- Nutz配置Jndi
ctrain
JNDI
1、使用JNDI获取指定资源:
var ioc = {
dao : {
type :"org.nutz.dao.impl.NutDao",
args : [ {jndi :"jdbc/dataSource"} ]
}
}
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可.
- 解决 /bin/sh^M: bad interpreter: No such file or directory
daizj
shell
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具
- [转]for 循环为何可恨?
dcj3sjt126com
程序员读书
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju
- Android实用小技巧
dcj3sjt126com
android
1、去掉所有Activity界面的标题栏
修改AndroidManifest.xml 在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"
2、去掉所有Activity界面的TitleBar 和StatusBar
修改AndroidManifes
- Oracle 复习笔记之序列
eksliang
Oracle 序列sequenceOracle sequence
转载请出自出处:http://eksliang.iteye.com/blog/2098859
1.序列的作用
序列是用于生成唯一、连续序号的对象
一般用序列来充当数据库表的主键值
2.创建序列语法如下:
create sequence s_emp
start with 1 --开始值
increment by 1 --増长值
maxval
- 有“品”的程序员
gongmeitao
工作
完美程序员的10种品质
完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:
1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强
(范围:用简单方式解决复杂问题)
- 使用KeleyiSQLHelper类进行分页查询
hvt
sql.netC#asp.nethovertree
本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D
- SVG 教程 (三)圆形,椭圆,直线
天梯梦
svg
SVG <circle> SVG 圆形 - <circle>
<circle> 标签可用来创建一个圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" c
- 链表栈
luyulong
java数据结构
public class Node {
private Object object;
private Node next;
public Node() {
this.next = null;
this.object = null;
}
public Object getObject() {
return object;
}
public
- 基础数据结构和算法十:2-3 search tree
sunwinner
Algorithm2-3 search tree
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga
- spring配置定时任务
stunizhengjia
springtimer
最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到:
//------------------------定时任务调用的方法------------------------------
/**
* 存储过程定时器
*/
publi
- ITeye 8月技术图书有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
8月试读活动回顾:
http://webmaster.iteye.com/blog/2102830
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《跨终端Web》
gleams:http