- 青少年编程与数学 02-009 Django 5 Web 编程 06课题、模型定义
明月看潮生
编程与数学第02阶段青少年编程djangopython编程与数学
青少年编程与数学02-009Django5Web编程06课题、模型定义一、模型二、定义模型1.导入模型类2.定义模型类3.定义字段4.添加元数据(可选)5.定义模型方法(可选)6.迁移模型三、模型字段字符字段数字字段日期和时间字段布尔字段关系字段文件字段其他字段四、主键和索引添加主键添加索引注意事项五、外键定义外键字段`on_delete`参数其他参数示例六、关系1.一对一关系(One-to-On
- 高流量Web服务器Kubernetes架构优化
完颜振江
前端服务器kubernetes
一、基础设施层优化1.节点自动扩展策略#集群自动扩缩容配置(GKE示例)apiVersion:clusterautoscaler.kubernetes.io/v1beta2kind:AutoscalingPolicymetadata:name:web-cluster-policyspec:minNodeCount:5maxNodeCount:50scaleDown:utilizationThres
- 在 Ubuntu 20.04 为 Clash Verge AppImage 创建桌面图标教程
FHKHH
ubuntulinux运维
在Ubuntu20.04为AppImage创建桌面图标教程一、准备工作确保你已经下载了xxxx.AppImage文件,并且知道它所在的具体路径。同时,你可以准备一个合适的图标文件(.png格式)用于代表该应用程序,如果没有合适的图标也不影响后续操作,后续可使用系统默认图标。二、确保AppImage文件可执行AppImage文件需要具备可执行权限才能正常运行。我们可以通过终端命令来赋予其可执行权限。
- JAVA学习-类型信息.动态代理
守护者170
java学习java学习开发语言
在Java中,动态代理是一种通过在运行时生成代理对象来拦截对目标对象的访问的技术。Java中的动态代理基于反射机制,利用反射生成代理类来实现对目标对象的代理。一、Java中的动态代理主要有两种方式:基于接口的动态代理和基于类的动态代理。它们的特点如下:1.基于接口的动态代理(JDK动态代理):基于接口的动态代理要求目标对象实现一个或多个接口。JDK动态代理使用'java.lang.reflect.
- Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类)设计一个名为Person的类及其两个名为Student和Employee的子类
有只程序猿
Java黑皮书课后题java
Java黑皮书课后题第11章:11.2(PersonStudentEmployeeFacultyStaff类)题目缺陷UML图代码Test02_MyDate.java:用于参考的MyDateTest02_Person.java:Person类Test02_Student.java:Student类Test02_Employee.java:Employee类Test02_Faculty.java:F
- 2020-10-09
weixin_45660257
笔记
java学习集合的目标1.会使用集合存储数据2.会遍历集合,把数据取出来3.掌握每种集合的特性集合框架的学习方法方式1.学习顶层:学习顶层接口,抽象类中共性的方法,所有的子类创建对象使用Collection接口定义的是所有的单列集合中共性的方法所有的单列集合都可以使用共性的方法没有带索引的方法继承:子类共性抽取形成父类(接口)List接口1.有序的集合(存储和取出元素顺序相同)2.允许存储重复的元
- android 串口通信代码
weixin_44693887
移动开发androidjava开发语言androidstudio
以下是在Android平台上实现串口通信的代码示例。要实现串口通信,需要先创建一个类来处理串口通信。下面是一个名为SerialPortHelper的串口帮助类的示例:importandroid.content.Context;importandroid.os.Handler;importandroid.os.Message;importjava.io.FileDescriptor;importja
- Android RXjava实现子线程做耗时操作,比new Thread和handler更香
weixin_44693887
androidrxjava
1.首先是在build.gradle里面引用下面两个库implementation‘io.reactivex.rxjava2:rxandroid:2.0.1’implementation‘io.reactivex.rxjava2:rxjava:2.0.7’2.创建CompositeDisposable。CompositeDisposable是一个存放Disposable的集合,它是一个容器Comp
- android liveData更新UI数据
weixin_44693887
android
1.创建LiveData的javaBean对象publicclassModelBeanextendsLiveData{privateintflag;privateStringtime;privateStringbatteryStr;privateintbattery;//蓝牙连接状态privateintresourceId;privateBooleanisConnected;privateStri
- Ubuntu下 Python 版本切换
Tobey袁
Ubuntushellubuntulinux
在Ubuntu的开发环境下,由于Python2和Python3很多不兼容,经常会需要我们手动切换Python版本。sudoupdate-alternatives--install/usr/bin/pythonpython/usr/bin/python2100sudoupdate-alternatives--install/usr/bin/pythonpython/usr/bin/python315
- android sensorhub框架,sensorhub-cloud-iot
Jack遇见冰山
androidsensorhub框架
HowtobecomeacontributorandsubmityourowncodeContributorLicenseAgreementsWe'dlovetoacceptyoursampleappsandpatches!Beforewecantakethem,wehavetojumpacoupleoflegalhurdles.Pleasefillouteithertheindividualor
- Java实现日志全链路追踪.精确到一次请求的全部流程
王会举
javalog4j
广大程序员在排除线上问题时,会经常遇见各种BUG.处理这些BUG的时候日志就格外的重要.只有完善的日志才能快速有效的定位问题.为了提高BUG处理效率.我决定在日志上面优化.实现每次请求有统一的id.通过id能获取当前接口的全链路流程走向.实现效果如下:一次查询即可找到所有关键信息.不再被多线程日志进行困扰了.1:日志打印框架log4j->logbacklogback是springboot默认自带的
- Python Web开发记录 Day12:Django part6 用户登录
Code_流苏
#---PythonWeb开发---#Django项目探索实验室python前端django
名人说:东边日出西边雨,道是无晴却有晴。——刘禹锡《竹枝词》创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder)目录1、登录界面2、用户名密码校验3、cookie与session配置①cookie与session②配置4、登录验证5、注销登录6、图片验证码①Pillow库②图片验证码的实现7、补充:图片验证码的作用和扩展①作用②其他类型的验证码8、验证码校验在上一篇博客中我们实现
- Java EE 8 API.chm下载
007MDT
java-ee
自己在官网下载的文档,然后用绿色版的easychm制作的chm文件,英文版支持索引查找下载链接自己在网上找了好久都是csdn积分下载的对我这种新人属实不友好,所以就自己动手了,如果有帮助到你记得评论支持一下噢
- Ubuntu中如何使用pip切换不同的python版本建立虚拟环境
挪威的深林
【Linux】操作命令linux问题python教程pipvirtualenvpython
一.前言最近遇到非常头疼的问题,在ubuntu中运行不同的项目或者downloadgithub的项目时,总是需要不同版本的python,不同版本的pkgs.因此,为不同的项目建立各自的虚拟环境是一个比较方便的事情.对于建立虚拟环境,目前本人所掌握的主要是conda,以及pip,如果使用conda去建立虚拟环境,则需要安装anaconda,或则minianaconda.在安装anaconda后才能够
- 数字化转型的深度思考与最佳实践
小稻草打打打
数字化数据可视化职场和发展
引言:数字化转型的时代背景在数字经济迅猛发展的今天,数字化转型已成为企业生存和发展的必由之路。根据IDC的报告,到2025年,全球数字经济规模将超过23万亿美元,占GDP的比重将超过50%。然而,数字化转型并非简单的技术升级,而是一场涉及战略、组织、文化和技术的系统性变革。本文将深入探讨数字化转型的核心逻辑、关键挑战以及最佳实践,为企业提供可落地的参考框架。一、数字化转型的本质与核心逻辑1.数字化
- JDK8 升级至 JDK17 打包问题分析
Resean0223
实际项目问题汇总日常问题解决javamavenjdk
一、概述近日为了满足客户需求将项目的jdk版本由原先的1.8升级至17,整个过程比较顺利,但是在maven打包时出现了报错。报错信息为:(程序包sun.security.util已在模块java.base中声明,但该模块未将它导出到未命名模块)二、问题分析引起该问的原因是因为从jdk9开始使用module模块化引用的结构,包时存在的,只是我们在打包时没有将该模块引入并声明。关于module模块化的
- SpringCould openFeign 配置动态路由实现本地调试
Resean0223
日常问题解决实际项目问题汇总java开发语言
概述现在很多项目都基于微服务开发,而对于开发来说,最困扰的就是本地服务间的调试。在此之前在网上给出的方案都是直接在feign调用接口写死url,但这会出现团队成员不小心将调试的url提交到仓库中,无形的增加了产线事故的产生。本文将介绍一下我自身基于项目改造的可配置feign路由的方案。Openfeign的初始化在项目启动阶段,OpenFeign框架会发起一个主动的扫包流程,从指定的目录下扫描并加载
- ubuntu系统切换python版本的方法
lkasi
Ubuntuubuntulinux运维
1.查看所有的python版本终端输入ls/usr/bin/python*结果2.切换版本终端输入sudoupdate-alternatives--configpython结果输入对应的选择编号即可切换python版本
- RDF 规范:理解与运用
lly202406
开发语言
RDF规范:理解与运用引言资源描述框架(ResourceDescriptionFramework,RDF)是一种用于描述网络资源的框架,它允许数据以结构化的形式存储和交换。RDF规范在语义网中扮演着至关重要的角色,它为数据提供了语义描述,使得数据能够在不同的系统和应用程序之间进行有效的交换和互操作。本文将详细介绍RDF规范的基本概念、组成元素、应用场景及其重要性。RDF基本概念什么是RDF?RDF
- 链接阿里云IoT Edge设备接入SDK Java版教程
郑微殉
链接阿里云IoTEdge设备接入SDKJava版教程linkedge-thing-access-sdk-javaLinkIoTEdge提供的设备接入驱动开发SDK(Java版本),帮助用户在LinkIoTEdge上快速开发自定义协议设备接入Java语言驱动。项目地址:https://gitcode.com/gh_mirrors/li/linkedge-thing-access-sdk-java1.
- 【课程设计】Java EE SSM 试卷管理系统
鱼弦
课程设计java-eejava
JavaEESSM试卷管理系统简介试卷管理系统是一个用于教育机构、培训中心等单位的在线考试和评估工具。该系统帮助教师管理考试题目、生成试卷,并将试卷导出为Word文档。应用使用场景学校与教育机构:用于日常测验、期中和期末考试。企业培训:用于员工技能测试和评估。在线教育平台:用于提供学生练习题和模拟考试。原理解释架构系统基于JavaEE开发,采用了Spring、SpringMVC和MyBatis(S
- AJAX 与 ASP:现代 Web 开发的关键技术
csbysj2020
开发语言
AJAX与ASP:现代Web开发的关键技术引言在当今的Web开发领域,AJAX(AsynchronousJavaScriptandXML)和ASP(ActiveServerPages)是两项至关重要的技术。AJAX允许网页在不重新加载整个页面的情况下,与服务器交换数据和更新部分网页内容。而ASP则是一种服务器端脚本环境,用于动态生成交互性网页。本文将深入探讨AJAX和ASP的技术细节、应用场景以及
- ThinkPHP8视图赋值与渲染
夏天又到了
编程与应用开发androidandroidstudioide
【图书介绍】《ThinkPHP8高效构建Web应用》-CSDN博客《2025新书ThinkPHP8高效构建Web应用编程与应用开发丛书夏磊清华大学出版社教材书籍9787302678236ThinkPHP8高效构建Web应用》【摘要书评试读】-京东图书在控制器操作中,使用view函数可以传入视图变量并渲染模板,其语法如下:view(视图名称,模板变量);需要注意的是,默认情况下生成的应用会采用Thi
- Java高级特性 - Java反射
Ssaty.
java开发语言java-ee
第1关:了解Class对象本关任务:实现获取Class对象的三种方式packagestep1;/***学员任务文件*/publicclassReflect_stu{publicstaticvoidmain(String[]args){System.out.println<
- Linux及其系列分别怎么念?
硬件王哪跑
嵌入式硬件软硬件名词概念解析linux运维服务器
直接干货Linux一词,根据其创造者LinusTorvalds的发音应读作“li-nacks”,国际音标为[’li:nэks],重音落在“na”上。解析为中式密咒------里那克死ubuntu是一个Linux的发行版本,由debian衍生而来。解析为中式密咒------午搬土
- Java 项目集成 DeepSeek,亮点项目(包成功)
代码星辰阁(公众号同名)
springboot编程springbootdeepseek人工智能java
获取DeepSeekAPI并搭建简易问答Java应用的完整步骤:“代码星辰阁”公众号有完整代码获取DeepSeekAPIKey访问DeepSeek官网:打开DeepSeek开放平台,点击右上角的“开放平台”。注册或登录账号:新注册账号通常会赠送一定数量的免费tokens。创建APIKey:在左侧菜单中点击APIKeys。点击“创建APIKey”,为APIKey命名(如“test”),然后创建。系统
- JAVA EE初阶 - 预备知识(一)
2025年一定要上岸
java-ee
一、管道在计算机编程和操作系统环境中,输入、输出和错误管道是用于在不同进程或程序之间传递数据和信息的重要机制,下面分别对它们进行详细介绍:输入管道(StandardInput,stdin)定义:输入管道是进程获取外部数据的通道。它允许一个进程从其他进程、用户输入设备(如键盘)或文件中接收数据。当一个进程启动时,操作系统通常会为其分配一个标准输入流,进程可以通过读取这个输入流来获取所需的数据。工作原
- 【stable diffusion模型】Stable diffusion模型分几种?一文详解,入门必看!
AIGC-Lison
stablediffusion人工智能AI绘画AIGCSD模型
前言在StableDiffusion中,模型并不只有一种,不同插件有不同的模型,分别作用于不同的功能。今天Lison老师就带大家一起来学习一下~01大模型也就是stablediffusion模型,在默认界面中,它位于web页面的左上角,下拉列表对应的模型:可以理解为绘画风格集合,SD需要大模型来规定它生成的图片风格,大模型是必选模型,你必须选择一个大模型才能开始生成工作。所有的AI设计工具,安装包
- 深入浅出:8种常见排序算法的效率对比与应用场景(JAVA)
技术小泽
排序算法算法数据结构java后端
5.归并排序归并排序是利用归并的思想实现的排序方法,该算法采用经典的分治策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。算法核心逻辑如下分割数组首先,把数组分成两半,然后分别对这两半继续进行分割,直到每一部分只有一个元素。每次分割都通过计算中间索引mid=(left+right)/2来进行。排序当数组
- 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