- 两万文字教你掌握Git和GitHub的使用
herosunly
机器学习入门之工具篇gitgithub
文章目录1.什么是Git和GitHub?2.安装Git和GitHub2.1安装GitHub2.2安装Git3.Git初尝试3.1总结3.2练习4.Git重要特性4.1帮助、日志和比较4.2忽略文件4.3总结4.4练习5.分支5.1总结5.2练习6.GitHub6.1Markdown6.2PullRequess(PR)6.3Pages6.4Forking(下载)6.5总结6.6练习6.7GitHub
- SCRIPT1002: 语法错误 Function code
Tool-Human
exceptionphp
在IE11浏览器下报错SCRIPT1002:语法错误原因是用了forEach循环IE不能解析ES6语法这种方式声明的方法也会报错:function:(e)=>{}
- webpack学习:配置es6+,react,typescript,eslint
大神乔伊
webpackjavascriptwebpackreact.js
本文内容如下配置es6+,react,typescript,eslint如果你都有了答案,可以忽略本文章,或去webpack学习导图寻找更多答案配置打包ES6+部分浏览器只认识es5的语法,如果要使用es6以上的语法,需要配置注意:在根目录新建.babelrc或者babel.config.js,用于配置es6以上的语法兼容,webpack会自动检测有没有.babelrc文件,如果有则按里面的配置加
- 工作中常用es6+特性
jiang_hyhappy
JSES6JS
结合工作中使用情况,简单对es6进行一些复习总结,包括常用的语法,api等,以及短时间内要上手需要重点学习的知识点(不同工作环境可能有一些差别),主要参考链接是阮一峰的博客以及外文博客(阮老师大部分文章是直接翻译的这个博客)http://2ality.com/p/about.html1.简介先说一下ECMAScript,ECMA是一个标准化组织,他们制定了JavaScript的语言标准,所以之后一
- 利用ES6 Set去重
妮在想什么
es6javascript开发语言
方法一:使用Setconstarr=[1,2,3,4,4,5,6,6,7];constuniqueArr=Array.from(newSet(arr));//或者使用扩展运算符//constuniqueArr=[...newSet(arr)];console.log(uniqueArr);//[1,2,3,4,5,6,7]方法二:使用indexOfconstarr=[1,2,3,4,4,5,6,6
- WebStorm无法识别ES6语法怎么办?
DevRevolt
webstormes6ide编程
在编程中,使用最新的JavaScript语法和功能是非常重要的,而ES6(ECMAScript2015)是JavaScript的一个重要版本,引入了许多强大的功能和语法改进。然而,有时候我们可能会遇到WebStorm无法正确识别ES6语法的情况。本文将介绍一些解决方案,帮助你在WebStorm中顺利使用ES6。1.确认WebStorm版本首先,确保你使用的是最新版本的WebStorm。每个新版本通
- ESLint 如何处理 ES6+ 语法
阿珊和她的猫
es6状态模式前端
前端开发工程师、技术日更博主、已过CET6阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1牛客高级专题作者、打造专栏《前端面试必备》、《2024面试高频手撕题》蓝桥云课签约作者、上架课程《Vue.js和Egg.js开发企业级健康管理项目》、《带你从入门到实战全面掌握uni-app》文章目录1.配置环境2.配置解析器选项3.使用插件4.配置规则5.总结ESLint是一个流行的Java
- React组件抽象
weixin_34041003
jsonjavascriptViewUI
组件抽象指的是让不同组件公用同一类功能,可以说成组件功能复用,在不同的设计理念下,有许多抽象方法,而对于React,主要有两种:mixin和高阶组件。mixin在createClass中可以使用,但在ES6classes中已抛弃(因为它存在很多副作用),但是我们可以通过decorator语法糖来封装mixin,这样就可以在ES6中使用mixin了。现在更常用的抽象方法是利用高阶组件的方式,它不仅可
- es5 ajax传对象参数,如何操作ES5与ES6环境下处理函数默认参数
瓷tun
es5ajax传对象参数
这次给大家带来如何操作ES5与ES6环境下处理函数默认参数,操作ES5与ES6环境下处理函数默认参数的注意事项有哪些,下面就是实战案例,一起来看一下。函数默认值是一个很提高鲁棒性的东西(就是让程序更健壮)MDN关于函数默认参数的描述:函数默认参数允许在没有值或undefined被传入时使用默认形参。ES5使用逻辑或||来实现众所周知,在ES5版本中,并没有提供的直接方法供我们我们处理函数默认值所以
- ES6入门函数篇(一)之函数形参的默认值
leviscar
ES6javascript函数es6
一、在ECMAScript5中模拟默认参数JavaScript函数有一个特别的地方,无论在函数定义中声明了多少参数,都可以传入任意数量的参数,也可以在函数定义时添加针对参数数量的处理逻辑,当已定义的形参无对应的传入参数时,为其指定一个默认值。在ES6之前,不能直接为函数的参数指定默认值,只能采用变通的方法。functionmakeRequest(url,timeout,callback){time
- ES5和ES6可变参数
黄宝康
javascriptES5和ES6可变参数
在ES5中,可变参数依靠arguments,代码如下:ES5和ES6可变参数{//ES5中可变参数function
- JavaScript ES6 新特性全览:变量声明、函数语法、数据结构等多方面解析
魏大帅。
JS开发全攻略javascriptes6数据结构
在现代JavaScript开发中,ECMAScript6(简称ES6)带来了许多强大的新特性,极大地提升了开发效率和代码的可读性。本文将带你全面了解ES6的主要新特性。一、let和const关键字let和const是ES6中引入的新的变量声明方式,与传统的var相比,具有以下重要区别:1.let块级作用域:声明的变量具有块级作用域,只在其声明的代码块内有效,如函数体、循环体、条件语句块等。{let
- JavaScript ES6新特性详解及实际应用案例
a编程小达人
javascriptes6开发语言
随着Web技术的不断发展,JavaScript作为前端开发的核心语言,也在不断进化。ES6(ECMAScript2015)作为JavaScript的一个重要版本,引入了许多新特性和语法糖,极大地提高了开发效率和代码的可读性。本文将详细解析ES6的新特性,并通过实际应用案例来展示这些特性的使用方法和效果。一、ES6新特性概述ES6引入了大量的新语法和API,包括let和const关键字、箭头函数、模
- JavaScript ES6 新特性全览:变量声明、函数语法、数据结构等多方面解析(面试)
一口一个人.
面试题javascript前端开发语言
ECMAScript6(简称ES6)带来了许多强大的新特性,极大地提升了开发效率和代码的可读性。本文将带你全面了解ES6的主要新特性。一、let和const关键字let和const是ES6中引入的新的变量声明方式,与传统的var相比,具有以下重要区别:1.let块级作用域:声明的变量具有块级作用域,只在其声明的代码块内有效,如函数体、循环体、条件语句块等。不存在变量提升:在使用let声明变量时,变
- Ubuntu启用ROOT用户
摸魚的猫
ubuntu服务器运维
1、先用ubuntu账号登录,创建一个root密码sudopasswdroot2、输入root密码3、编辑ssh配置文件sudovi/etc/ssh/sshd_config4、在config中添加PermitRootLoginyes5、找到PasswordAuthenticationno改成yes保存文件。PasswordAuthentication yes6、重启ssh服务,使设置生效sudos
- html 游戏解锁,html5塔楼游戏,来啊,盖楼啊,带教程!
weixin_39979516
html游戏解锁
塔楼游戏让您感到快乐。是的,这是真的,因为游戏的设计方式是我们想要一次又一次地玩它。它类似于屡获殊荣的TowerBloxxDeluxe游戏,您的任务是将棋盘放在彼此的顶部并朝向天空。它的结构是使用HTML5语言的新canvas元素创建的,而逻辑是用ES6编写的(对JavaScript语言的一个杰出更新)。基于ES6和Canvas的塔式建筑游戏(TowerBloxxDeluxeSkyscraper)
- 使用webpack5实现简易的vue-cli脚手架功能
没有技巧只有感情
前端webpack
目录build/webpack.config.jsbabel.config.js.eslintrc.js、.eslintignorepackage.json主要涉及到对vue的支持以及elementui的自动按需引入首先解释一下webpack中使用最多的loader和plugin的概念:loader是将一些webpack不能处理的资源(vue、scss、图片等)或者浏览器不能识别的资源(es6语法
- 解锁JavaScript新姿势:Proxy与Reflect深度探秘
谢道韫689
javascript开发语言ecmascript
引言在JavaScript的不断发展中,ES6引入的Proxy和Reflect为开发者们带来了全新的编程体验和强大的功能。Proxy作为一种代理机制,能够对目标对象的基本操作进行拦截和自定义,让我们在数据访问、函数调用等场景下拥有了更多的控制权。而Reflect则像是一个与Proxy紧密配合的工具,提供了一系列与对象操作相关的方法,使我们在处理对象时更加规范和便捷。这两个特性不仅丰富了JavaSc
- ES6+实用特性完全指南:写更好的现代JavaScript
前端切图仔001
javascriptes6前端
作为一名前端开发者,熟练运用ES6+特性是基本功。本文精选最常用、最实用的JavaScript新特性,结合实际开发场景,帮你攻克开发难点,提升代码质量。告别繁琐的老式写法,拥抱现代JavaScript。1.解构赋值:优雅地获取数据//对象解构constuser={name:'Tom',age:25,address:{city:'Shanghai',street:'NanjingRoad'}};//
- ES6-编程风格
weixin_34237596
javascriptViewUI
学习了ES6这么久,但是一直对该如何将ES6的新语法运用到编程实践中,与传统js语法相结合,写出合理的、易于阅读和可维护的代码并不是十分清楚,因此在此记录总结。块级作用域let代替varlet完全可以取代var,因为两者的语义相同,而且let没有副作用。全局常量和线程安全在let和const之间,建议优先使用const,尤其在全局环境中,不应该设置变量,只应设置常量。const优于let有以下几个
- ES6---编程风格
南初️
ES6javascript前端开发语言es6
ES6---编程风格一、块级作用域1.let取代var2.全局常量和线程安全二、字符串三、解构赋值四、对象五、数组六、函数七、Map结构八、Class九、模块一、块级作用域1.let取代varES6提出了两个新的声明变量的命令:let和const。其中,let完全可以取代var,因为两者语义相同,而且let没有副作用。2.全局常量和线程安全在let和const之间,建议优先使用const,尤其是在
- es6 基础知识详解 变量 字符串 解构赋值 函数 对象 从入门到精通
丰的传说
js基础知识总结es6javascript前端
变量声明let不存在变量提升console.log(name)//没有变量提升所以未定义直接报错letname='12132123'有块级作用域if(true){letname="sjf"}console.log(name)//由于name在if的块级作用域中在外面无法访问报错不能重复声明letsex="男"letsex="女"//直接报错暂时性死区name=9999letname="sjf"//
- ES6-rest参数、数组扩展中的扩展运算符
hx_1199
es6前端ecmascript
rest参数形式为(...变量名)rest参数搭配的变量是一个数组,该变量将多余的参数放入其中。functionadd(...values){console.log(values)}add(2,5,3)//[3,4,5]数组的扩展(...),如同rest参数的逆运算,将一个数组转为用逗号分隔的参数序列。console.log(...[1,2,3])//123扩展运算符主要用于函数调用。functi
- javascript-es6(三)
俸涛努力学前端
javascriptjavascriptes6前端开发语言笔记
解构赋值解构赋值是一种快速为变量赋值的简洁语法,本质上仍然是为变量赋值数组解构数组解构是将数组的单元值快速批量赋值给一系列变量的简洁语法基本语法:1.赋值运算符=左侧的[]用于批量声明变量,右侧数组的单元值将被赋值给左侧的变量2.变量的顺序对应数组单元值的位置依次进行赋值操作//同时将数组单元值1006080依次赋值给变量maxminavgconst[max,min,avg]=[100,60,8
- ES6 入门教程:箭头函数、解构赋值及其他新特性详解
prince_zxill
javascriptes6前端css原型模式
ES6入门教程:箭头函数、解构赋值及其他新特性详解ES6入门教程:箭头函数、解构赋值及其他新特性详解引言什么是ES6?箭头函数(ArrowFunctions)1.基本语法2.常见特点(1)没有自己的`this`上下文(2)不能用作构造函数(3)与普通函数的区别3.箭头函数的优势解构赋值(DestructuringAssignment)1.数组解构赋值(1)默认值(2)忽略某些元素2.对象解构赋值(
- ES6-代码编程风格(数组、函数)
hx_1199
es6前端javascript
1数组使用扩展运算符(...)复制数组。constitemsCopy=[...items];使用Array.from方法将类似数组的对象转为数组。constfoo=document.querySelectorAll('.foo');constnodes=Array.from(foo);2函数立即执行函数可以写成箭头函数的形式。(()=>{console.log('WelcometotheInter
- TypeScript前端应用:ReCapProject-Frontend项目探索
不爱说话的我
本文还有配套的精品资源,点击获取简介:本项目展示了TypeScript在现代Web开发中的应用,特别是在前端开发中的强大能力。通过静态类型系统、类型推断、工具支持、面向对象特性和ES6+语法兼容性,TypeScript提高了代码的健壮性和可维护性。开发者使用TypeScript能够减少运行时错误,享受现代IDE的高级特性,并在构建过程中利用现代JavaScript的特性来提高开发效率。1.Type
- TypeScript和Node模块解析策略
weixin_33937499
javascriptjsonViewUI
一般我们在模块化编码时,总会导入其它模块,通常我们使用如下语法:import{A}from'./a';//ES6语法import{A}from'a';varA=require('./a');//commonjs规范不论使用哪种语法,导入的文件一般有两种:内部文件(自己开发的)和外部(node_modules)中两种,其中导入内部模块称之为相对导入,导入node_modules中,称之为非相对导入,
- [JavaScript] 面向对象编程
DevKevin
前端javascript开发语言ecmascript
JavaScript是一种多范式语言,既支持函数式编程,也支持面向对象编程。在ES6引入class语法后,面向对象编程在JavaScript中变得更加易于理解和使用。以下将详细讲解JavaScript中的类(class)、构造函数(constructor)、继承、封装、多态,以及this的相关问题。1.为什么需要类与面向对象编程?面向对象编程(Object-OrientedProgramming,
- 前端八股(1)html,css,js,es6
shadowflies
前端八股前端面试html5css3javascriptes6
跟着视频捋八股,效果还是可以的,就是得需要先有基础才能听得懂讲啥以下是一些八股记录(简单版),可以帮助记忆关键词,从而后续自己拓展目录一、CSS1.说一下css的盒模型2.csS选择器的优先级?3.隐藏元素的方法有哪些?4.px和rem的区别是什么?5.重绘重排有什么区别?6.让一个元素水平垂直居中的方式有哪些?7.css的哪些属性哪些可以继承?哪些不可以继承?8.有没有用过预处理器?9.清除浮动
- 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