- scala kotlin比较_追随 Kotlin/Scala,看 Java 12-15 的现代语言特性
weixin_39605296
scalakotlin比较scalalist接受javastring
本文原发于我的个人博客:https://hltj.me/java/2020/06/14/java-12-15-lang-features.html。本副本只用于知乎,禁止第三方转载。Java14发布已经过去了三个月,Java15目前也已经到了“RampdownPhaseOne”阶段,其新特性均已敲定。由于12-15都是短期版本,无需考虑也不应该将其用于生产环境。但可以提前了解新特性,以免在下一个L
- java 协程 scala_追随 Kotlin/Scala,看 Java 12-15 的现代语言特性
小田linda
java协程scala
Java14发布已经过去了三个月,Java15目前也已经到了“RampdownPhaseOne”阶段,其新特性均已敲定。由于12-15都是短期版本,无需考虑也不应该将其用于生产环境。但可以提前了解新特性,以免在下一个LTS(Java17)正式发布时毫无心理准备。Java12-15引入了一系列改进,本文只讨论语言层面的新特性,它们看起来似曾相识——没错,这些特性让人感觉Java在沿Kotlin/Sc
- 云计算服务中的“无缝扩展”是什么意思
云上的阿七
云计算
“无缝扩展”(SeamlessScalability)是云计算服务中的一个重要概念,指的是云平台能够根据需求变化自动、平滑地扩展或缩减资源,而不影响系统的正常运行或用户体验。简单来说,就是云服务可以在负载增加或减少时,灵活地调整计算资源、存储容量或网络带宽,且这一过程对用户来说是透明的,没有明显的中断或影响。为什么“无缝扩展”很重要?在现代的云计算环境中,应用和服务的负载会随着时间、流量或业务需求
- timescaladb时序数据库高可用docker镜像使用
handsomestWei
数据库时序数据库docker数据库timescaladbpostgresql
timescaladb时序数据库高可用docker镜像使用timescaladb时序数据库高可用,基于bitnami/postgresql-repmgrdocker镜像制作,实现数据同步和故障自动转移主备切换。使用示例参考,附dockercompose配置例。pg-0:image:wjy2020/timescaledb-repmgr:pg14.15-ts2.17.2container_name:"
- keepalived+timescaladb主备切换高可用方案
handsomestWei
数据库keepalivedtimescaladbpostgresql数据库高可用
keepalived+timescaladb主备切换高可用方案环境和组件依赖ubuntu22.04,docker引擎keepalivedv2.2.4timescaledbdocker镜像wjy2020/timescaledb-repmgr:pg14.15-ts2.17.2,镜像使用参考方案思路在双机分别部署这两个组件,keepalived定时检测timescaladb数据库的主备状态,当数据库状态
- 大数据开发语言Scala入门
编程小郭
scala开发语言
大数据开发语言Scala的详解一、引言在大数据和云计算时代,数据的处理和分析变得尤为重要。为了有效地处理和分析这些数据,需要一种强大的编程语言。Scala作为一种多范式的编程语言,结合了面向对象编程和函数式编程的优点,为大数据开发提供了强大的支持。本文将详细介绍Scala及其优缺点、应用场景等。二、Scala概述Scala是由MartinOdersky教授于2003年开发的编程语言,旨在集成面向对
- 使用Scala进行Web开发:构建你的第一个Web应用
帅气而伟大
scala开发语言后端
在Java领域中,Spring框架以其全面的功能和灵活的配置赢得了广泛的应用。然而,当遇见Scala这一兼具函数式编程和面向对象特性的强大语言时,一个新的世界被开启——这就是SpringScala。虽然VMware,Inc.不再对其进行主动维护,但庆幸的是,社区的力量让这个项目得以延续,由PaulSnively接棒,在http://hub.darcs.net/psnively/spring-sca
- Scala语言的系统运维
韦慕霖
包罗万象golang开发语言后端
Scala语言的系统运维引言在今天的科技发展时代,软件系统的复杂性和规模不断增加,因此系统运维的管理和监控显得尤为重要。在众多编程语言中,Scala因其高度的表达力和强大的性能而受到越来越多开发者和运维人员的青睐。本文将探讨Scala语言在系统运维中的应用,涵盖其优势、常用工具及最佳实践等方面,旨在为读者提供一个全面的了解。1.Scala语言概述Scala(可伸缩语言)是运行在Java虚拟机(JV
- Scala语言的循环实现
赵旖琅
包罗万象golang开发语言后端
Scala语言中的循环实现Scala是一种现代编程语言,它结合了面向对象和函数式编程的特点,广泛应用于大数据处理、分布式计算和Web开发等领域。循环是程序设计中不可或缺的一部分,在Scala中也有多种方式来实现循环。这篇文章将深入探讨Scala中的循环实现,包括基本的循环结构、函数式循环、递归以及一些最佳实践。1.基本的循环结构在Scala中,最基本的循环结构是for循环和while循环。虽然Sc
- 3.1初识Flink-wordcount
orange大数据技术探索者
flink废弃已迁移走flink
pom要注意scala版本和你的本地的scala的版本对不上可能会出问题<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-in
- Flink_CEP关于订单超时事件处理
weixin_43003792
Flink
packagecomimportjava.utilimportorg.apache.flink.cep.{PatternSelectFunction,PatternTimeoutFunction}importorg.apache.flink.cep.scala.{CEP,PatternStream}importorg.apache.flink.cep.scala.pattern.Patternim
- Flink--初识 DataStream Connector Kafka
XK&RM
Flinkflinkkafkascala
目录1.增加POM文件2.使用Kafka作为Source2.1创建Topic2.2Code3.使用Kafka作为Sink3.1CodeFlink作为比较适合流式处理的计算框架,在流式处理当中,比较搭配的消息中间件为Kafka本次使用的Kafka版本为2.1.0-cdh6.2.0Flink版本为1.11.2,Scala版本为2.12.10官网FlinkprovidesanApacheKafkacon
- ASP.NET Core SignalR身份验证
AAA猪饲料批发李师傅
.NETASP.NETCoreSignalRWebSocketVue
在需要登录才能访问的集线器类上或者方法上添加[Authorize]。也支持角色等设置,可以设置到Hub或者方法上。配置好User、Role、MyDbContext、JWTSettings、IdentityHelperProgram.csusingSignaIR的基本使用;usingScalar.AspNetCore;usingIdentity框架;usingMicrosoft.EntityFram
- kafka简单使用
zeroLinked
博学谷学习记录kafkajava分布式
kafka简单介绍kafka是apache旗下的一款开源免费的消息队列中间件,最早由LinkedIn开发,后面贡献给Apache,目前是Apache旗下顶级开源项目(http://www.kafka.apache.org),该中间件采用Scala语言进行开发。kafka的特点:可靠性:分布式、分区、复制和容错可拓展性:kafka消息传递系统轻松缩放,无需停机耐用性:kafka使用分布式提交日志,消
- Scala语言的区块链
华梦岚
包罗万象golang开发语言后端
以Scala语言的区块链随着数字货币和去中心化应用的兴起,区块链技术逐渐成为计算机科学与金融科技领域中的一颗耀眼明星。区块链以其去中心化、不可篡改、透明可信等特性,吸引了无数开发者与企业的关注。在众多编程语言中,Scala凭借其独特的功能特性,逐渐在区块链开发领域中脱颖而出。本文将系统性地探讨Scala语言的特点、在区块链开发中的应用,以及如何利用Scala构建区块链应用。一、Scala语言简介S
- Scala语言的数据结构
段慕华
包罗万象golang开发语言后端
Scala语言中的数据结构Scala是一种结合了面向对象编程和函数式编程特性的编程语言,它在Java虚拟机(JVM)上运行,并与Java无缝集成。作为一种现代编程语言,Scala提供了丰富的数据结构,使得开发者能够灵活地处理各种数据。本文将深入探讨Scala中的数据结构,包括其基本特性、使用场景以及实际应用。1.数据结构的分类Scala中的数据结构可以大致分为以下几类:线性数据结构:如数组、列表、
- Scala 文件 I/O
晚夜微雨问海棠呀
scala大数据开发语言
在Scala中,文件I/O操作可以通过多种方式实现。以下是几种常见的方法:1.使用scala.io.Source读取文件scala.io.Source提供了一种简单的方式来读取文件内容。以下是一个示例,展示了如何读取文件并打印每一行:importscala.io.SourceobjectFileReadExampleextendsApp{valfilename="example.txt"try{v
- php 闭包 foreach,PHP闭包函数
谷臻故事工场
php闭包foreach
一.什么是闭包?先看看百度百科的介绍:闭包包含自由(未绑定到特定对象)变量,这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中定义(局部变量)。“闭包”一词来源于以下两者的结合:要执行的代码块(由于自由变量被包含在代码块中,这些自由变量以及它们引用的对象没有被释放)和为自由变量提供绑定的计算环境(作用域)。在PHP、Scala、Scheme、CommonLisp、Sma
- The Concepts and Elements of Sui
smilejiasmile
区块链从1.0到3.0的技术分享锦集及讲解rust区块链Suinarval
ConceptsSuiBackgroundThistraditionalblockchainnetworkarchitecturehasalimitationinthatsuchalinearmechanismofthesystembecomesthemainbottleneckforachievinghightransactionvolumescalability.Suiblockchainpu
- OpenAI Scala Client: 功能强大的 Scala 语言 OpenAI API 客户端库
m0_75126181
scala开发语言后端
OpenAIScalaClient:功能强大的Scala语言OpenAIAPI客户端库OpenAIScalaClient是一个专为Scala开发者设计的OpenAIAPI客户端库。它提供了一种简洁而强大的方式来与OpenAI的人工智能模型进行交互。这个库支持OpenAI的所有API端点和参数,包括流式传输、最新的聊天补全、视觉和语音功能等。主要特性全面的API支持:OpenAIScalaClien
- 深度解读Kafka数据可靠性
程序の之道
kafkahiveyarnsparkhadoop
Kafka起初是由LinkedIn公司开发的一个分布式的消息系统,后成为Apache的一部分,它使用Scala编写,以可水平扩展和高吞吐率而被广泛使用。目前越来越多的开源分布式处理系统如Cloudera、ApacheStorm、Spark等都支持与Kafka集成。1概述Kafka与传统消息系统相比,有以下不同:•它被设计为一个分布式系统,易于向外扩展;•它同时为发布和订阅提供高吞吐量;•它支持多订
- PySpark学习笔记5-SparkSQL
兔子宇航员0301
数据开发小白成长笔记学习笔记
sparkSql的数据抽象有两种。一类是dataset适用于java和Scala一类是dataframe适用于java,Scala,python将rdd转换为dataframe#方式一df=spark.createDataFrame(rdd,schema=['name','age'])#方式二schema=Structtype().add('id',integertype(),nullable=F
- Apache MXNet:灵活高效的深度学习库
零 度°
python深度学习apachemxnet
ApacheMXNet是一个开源的深度学习框架,适用于灵活的研究原型设计和生产。它提供了一个混合前端,可以无缝地在Gluon(动态图)和Symbolic(静态图)模式之间转换,以提供灵活性和速度。MXNet支持多种语言绑定,包括Python、Scala、Julia、Clojure、Java、C++、R和Perl,并且拥有一个活跃的工具和库生态系统,可以扩展MXNet的功能,支持计算机视觉、自然语言
- Apache MXNet 深度学习框架教程
娄妃元Kacey
ApacheMXNet深度学习框架教程mxnetLightweight,Portable,FlexibleDistributed/MobileDeepLearningwithDynamic,Mutation-awareDataflowDepScheduler;forPython,R,Julia,Scala,Go,Javascriptandmore项目地址:https://gitcode.com/g
- MXNet深度学习框架:高效与灵活性的结合
原机小子
深度学习mxnet人工智能
标题:MXNet深度学习框架:高效与灵活性的结合MXNet是一个由Apache软件基金会支持的开源深度学习框架,以其高效性能和灵活性而闻名。它最初由亚马逊团队开发,并于2015年开源,迅速成为深度学习领域的一个重要工具。MXNet支持多种编程语言,包括Python、Java、Scala、R、C++等,能够运行在CPU、GPU和云平台上,满足不同场景下的需求。1.MXNet的核心特性MXNet的主要
- 弹性文件服务(SFS)的使用场景
九河云
人工智能华为云服务器
华为云弹性文件服务(ScalableFileService,简称SFS)是一种高性能、高可用、弹性伸缩的文件存储服务,广泛应用于多种场景,包括高性能计算、媒体处理、企业办公、AI训练等。以下是九河云总结的SFS的典型使用场景:1.高性能计算(HPC)在高性能计算场景中,如仿真实验、基因测序、图像处理、气象预报等,SFS能够为大规模计算任务提供高带宽、低延迟的存储支持。其高性能文件系统(如SFSTu
- 可扩展应用架构指南
沈宝彤
可扩展应用架构指南scalable_app_architectureThisisamodularapparchitecturethatcanbescalableasthetimepasses.IwillbeusingtheBLoCstate-managementpackage.项目地址:https://gitcode.com/gh_mirrors/sc/scalable_app_architect
- ScalaTest测试框架
一片
ScalaAkka开发学习PlayFramework
ScalaTest是一个开源测试框架,旨在令测试更加高效。其开发者是BillVenners(Artima主编)。BillVenners这样描述ScalaTest:ScalaTest是比JUnit和TestNG更加高阶的测试编写工具,这个Scala应用在JVM上运行,可以测试Scala以及Java代码。除了与JUnit和TestNG的深层集成外,还支持Ant任务,与maven集成,并包括了流行的Ja
- Scala语言的安全开发
萧月霖
包罗万象golang开发语言后端
Scala语言的安全开发引言在现代软件开发中,安全性是一个不可忽视的重要因素。特别是在处理敏感数据和用户信息时,确保代码的安全性尤为重要。Scala语言以其强大的功能和灵活性,在大数据处理和并发编程中受到了广泛的关注与应用。然而,Scala虽然在设计上考虑了类型安全和并发编程的特性,但程序员在开发中仍需要注意各种安全问题,以防止潜在的安全漏洞。本文将深入探讨在Scala语言开发中如何实现安全性保障
- MongoDB
青衫天子
后端mongodb后端
MongoDB非关系型数据库应用场景Highperformance-对数据库高并发读写的需求。HugeStorage-对海量数据的高效率存储和访问的需求。HighScalability&&HighAvailability-对数据库的高可扩展性和高可用性的需求。启动&部署直接启动mongod--dbpath=…\data\db配置启动bin/conf/mongod.confstorage:dbPat
- 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