shinewang

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  53 随笔 :: 0 文章 :: 200 评论 :: 0 Trackbacks

2008年12月7日 #

     摘要: 经过一个下午的折腾,终于在服务器上把AppArch(www.apparch.net )部署好了,方案用的是centos+lighttpd+fastcgi+mysql。AppArch是一个虚拟化管理平台,目标是通过Web界面方便地管理多台服务器上的虚拟机,支持Xen、KVM、OpenVZ等多种虚拟化技术,并提供自动伸缩、动态迁移、高可用性、负载平衡等高级功能。当然,目前还只能做到控制虚拟机的启动、关机、重启和断电。下面是网站截图:  阅读全文
posted @ 2009-09-18 10:34 shinewang 阅读(1412) | 评论 (0)编辑 收藏

     摘要: 网站开发讲究的是效率,能把一个创意在最短的时间内实现,往往容易占得先机。尽管ruby On rails的开发效率很高,但是如果每次开发网站都需要从头做起注册、登录、权限管理、忘记密码这些繁琐的基础功能,实在不是一件愉快的事。另一方面,尽管已经有几年的历史,Ruby On Rails在国内仍然属于迅速发展中的小众社区,到目前为止没有产生比较有影响力的开源项目,作为第一波绝大部分的Ruby On Rails开源项目几乎绝迹,如何为初学者提供一个学习、实践的案例成为一个现实的问题。

AppArch projectone的目标是通过长期的、持续的开发形成:
一套实用的网站基础架构
一份完善的架构风格和指导原则
一个成熟的开源社区  阅读全文
posted @ 2009-08-11 10:15 shinewang 阅读(1339) | 评论 (0)编辑 收藏

6月20日组织了杭州地区的首次云计算头脑风暴,简单说说吧。

1、云计算确实是一个众说纷纭的概念,也许下次把范围限制在云计算基础架构或者具体的虚拟化技术可能更好些。

2、国内已经有不少先行者开始研究、开发云计算服务了,时不我待,这也是最近很少更新博客的原因。

关注云计算的可以加QQ群:87833826

posted @ 2009-08-11 10:14 shinewang 阅读(357) | 评论 (0)编辑 收藏

     摘要: 网站开发讲究的是效率,能把一个创意在最短的时间内实现,往往容易占得先机。尽管Ruby On Rails的开发效率很高,但是如果每次开发网站都需要从头做起注册、登录、权限管理、忘记密码这些繁琐的基础功能,实在不是一件愉快的事。下面这些代码能够让我们直接关注网站的逻辑实现,而不是繁琐的基本功能。  阅读全文
posted @ 2009-06-15 13:53 shinewang 阅读(1905) | 评论 (2)编辑 收藏

     摘要: Ruby Conf China 2009回来一直很累、很忙,今天终于决定把这篇拖欠了近2周的文章写出来。我是20号下午从杭州出发到上海的,晚上住在同学的寝室,这里就从我们的聊天开始。  阅读全文
posted @ 2009-06-03 10:10 shinewang 阅读(1351) | 评论 (1)编辑 收藏

     摘要: 在过去的2008年,云计算在国外IT领域可谓是炙手可热,然而在这大半年时间里,国内IT厂商似乎却在睡觉,直到下半年才醒悟过来,纷纷抛出自己所谓的“云计算”产品。下面我们就以上面提到的3个关键词作为评判依据,来看看国内的“云计算”产品吧。  阅读全文
posted @ 2009-05-19 10:00 shinewang 阅读(3470) | 评论 (5)编辑 收藏

     摘要: 国内VPS和国外VPS的比较,强烈推荐VPS新手选择DiaVPS,有VPS使用经验并且手头比较宽的可以选择Linode。  阅读全文
posted @ 2009-05-15 13:22 shinewang 阅读(1927) | 评论 (0)编辑 收藏

之前写过一篇文章讨论过程序员的前程问题,作为一个程序员,我也面临着如何选择发展方向的难题。技术出身和对技术的热爱决定了可以走架构师的路线,但我也不想抛弃对商业的敏锐,产品经理作为复合型人才,似乎能充分发挥我全部潜力。产品经理还是架构师,这一直是一个问题。在厌倦了技术领域的语言之争、框架之争后,我开始信奉实用主义哲学,即创造实际价值的是应用而不是技术本身。而产品经理面向的恰恰是应用,成为了更好的选择。其实无所谓,殊途同归。

欢迎访问我的blog: http://www.eoss.cn/blog/
posted @ 2009-05-15 13:17 shinewang 阅读(534) | 评论 (0)编辑 收藏

     摘要: ssh是我们操作Linux vps的基本途径,windows下比较常用的ssh客户端有PuTTY、SecureCRT,我选择使用PuTTY这个免费、小巧的SSH客户端。  阅读全文
posted @ 2009-05-11 10:05 shinewang 阅读(2128) | 评论 (1)编辑 收藏

     摘要: 这里我将列出使用linux vps过程中的常用命令,面向的对象是懂一点命令行的朋友,如果你没有任何命令行基础,建议找本Linux的基础教程来看看。  阅读全文
posted @ 2009-05-07 10:03 shinewang 阅读(1275) | 评论 (0)编辑 收藏

     摘要: MySQL是中小型网站普遍使用的数据库之一,然而,很多人并不清楚MySQL到底能支持多大的数据量,甚至对它产生误解。MySQL单表的上限,主要与操作系统支持的最大文件大小有关。具体数据可以在这里找到:http://dev.mysql.com/doc/refman/5.1/zh/introduction.html#table-size。事实上MySQL能承受的数据量的多少主要和数据表的结构有关,并不是一个固定的数值。表的结构简单,则能承受的数据量相对比结构复杂时大些。  阅读全文
posted @ 2009-04-28 11:11 shinewang 阅读(12508) | 评论 (1)编辑 收藏

vps服务商一般提供了多种linux发行版供用户选择,常见的有centos、Fedora、ubuntu、Debian、OpenSUSE、Arch Linxu、Gentoo、Slackware等等,这些Linux都是免费的,有的服务商业提供了需要额外收费的RHEL、SELS。

我这里把这些Linux分为4组:
1、CentOS、Fedora、RHEL
Fedora是Red Hat的社区版,一般用来试验新的功能,有几个版本可能不是很稳定,RHEL是Rad Hat的企业版,而CentOS是从RHEL源代码编译的社区重新发布版。
2、Ubuntu、Debian
一般来说Debian比Ubuntu稳定的多,但我比较不认同Debian的价值观,所以这组我选择Ubuntu,当然选择是Ubuntu Server LTS版,目前是8.04
3、OpenSUSE、SELS
Suse和Red Hat系列一样著名,OpenSUSE是它的社区版本,SELS是它的商业服务器版本。
4、Arch Linxu、Gentoo、Slackware
这一类基本上不是我们这些Linux玩得转的。

我选择的原则是有企业版的不选择用于试验的不稳定的社区版,有免费版的不选择商业版,这样胜出两个选择:

  • CentOS
  • Ubuntu Server LTS

考虑到CentOS相对稳定些,市面上的书、网上的资料比较多,命令行模式下的管理工具用得比较顺手,最终选择CentOS。当然Ubuntu Server LTS也有它的优势,比较易用,熟悉Ubuntu的也可以选择这个发行版,毕竟服务器稳不稳定还是和使用它的用户对它的熟悉程度相关的。VPS服务商还提 供了相同Linux发行版的i386版和x86_64版,一般选择x86_64。另外服务商还提供了一些已经配置好的系统,例如供网游玩家直接使用的配好 VPN的CentOS、安装好LXAdmin hostinabox的CentOS,这些就不再展开,具体情况咨询VPS的服务商。

---

新建了一个独立博客:http://www.eoss.cn/blog/ ,欢迎大家访问。

posted @ 2009-04-22 17:58 shinewang 阅读(1467) | 评论 (0)编辑 收藏

经过3天的鏖战,终于在VPS上搭建成功了LLMP(Linux/Lighttpd/MySQL/PHP)环境,顺便用SaBlog-x Plus2.0搭了一个自己的独立博客(blog.eoss.cn),争取早日能把blogjava上写的文章迁移过来。

对于有需要的朋友,这里推荐一下DiaVPS,本博客所在的VPS就用的是他们的服务。DiaVPS用的是美国的服务器,不需要备案,测试下来速度很棒,相对于其他美国VPS服务商,它的优势是支持支付宝,提供中文QQ客户支持,即时并且不需要绞尽脑汁地写英文邮件,这几天也要感谢他们的帮忙,因此特别推荐第一次使用VPS的朋友选择DiaVPS

posted @ 2009-04-20 15:54 shinewang 阅读(207) | 评论 (0)编辑 收藏

     摘要: Hibernate确实功能强悍,但在易用性、性能上存在缺陷。如果团队中没有一个精通Hibernate的高手,不适合使用Hibernate。  阅读全文
posted @ 2009-01-21 11:16 shinewang 阅读(37234) | 评论 (97)编辑 收藏

     摘要: 根据The Computer Language Benchmarks Game的性能测试结果:
PHP : JRuby : Python : Java 大约是 1:2:4:100,以上结果仅供参考。另外,JRuby、Java比较占用内存。由此可以看出,Ruby应用于Web开发在性能上不会有太大的的问题,至少和PHP/Python是同一数量级的。  阅读全文
posted @ 2009-01-20 11:09 shinewang 阅读(23062) | 评论 (8)编辑 收藏

Apache MINA
http://www.ibm.com/developerworks/cn/opensource/os-cn-apmina/?S_TACT=105AGX52&S_CMP=techcsdn

Grizzly
http://www.javaeye.com/news/4489-grizzly-1-9-released-new-twitter-demo

Quick Server
http://www.blogjava.net/calvin/archive/2006/08/12/63260.html
posted @ 2009-01-16 16:25 shinewang 阅读(360) | 评论 (0)编辑 收藏

     摘要: 程序员这个职业到底是不是吃青春饭,这个问题可能一直是每个初入职场的程序员心头挥之不去的阴影。如果你是平常的程序员,或自认有才但运气不好,就应该思考前程的问题。  阅读全文
posted @ 2009-01-14 17:14 shinewang 阅读(3313) | 评论 (6)编辑 收藏

     摘要: 程序员是最容易创业的,或者说是创业成本最低的职业。只要有一台电脑和投入自己的时间,就可以写出畅销天下的软件,这是每个程序员的梦想。更何况世界首富常年以来就是程序员出身的比尔盖茨,这也刺激了更多的程序员走上创业之路。可是等到真的开始创业,才发现这条路并不容易。程序员创业应该把自己定位到产品经理的职责角色,不要被技术上的优势束缚。  阅读全文
posted @ 2009-01-14 17:07 shinewang 阅读(2919) | 评论 (12)编辑 收藏

     摘要: 速度测试工具
兼容性测试工具
SEO测试工具
统计系统  阅读全文
posted @ 2009-01-12 15:00 shinewang 阅读(2081) | 评论 (0)编辑 收藏

Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。目前 Webmin支持绝大多数的Unix系统,这些系统除了各种版本的linux以为还包括:AIX、HPUX、Solaris、Unixware、Irix 和FreeBSD等。

Webmin 让您能够在远程使用支持 HTTPS (SSL 上的 HTTP)协议的 Web 浏览器通过 Web 界面管理您的主机。这在保证了安全性的前提下提供了简单深入的远程管理。这使得 Webmin 对系统管理员非常理想,因为所有主流平台都有满足甚至超出上述需求的 Web 浏览器。而且,Webmin 有其自己的“Web 服务器”,因此不需要运行第三方软件(比如 Web服务器)。万事具备。Webmin 的模块化架构允许您在需要时编写您自己的配置模块。除了在此介绍的模块之外,Webmin 还包括许多模块。尽管目前我们将主要关注网络服务,但是您会看到,几乎您系统的每一部分都能够通过 Webmin 来配置和管理。

Webmin的另一个可以看成其简化版本的主要针对普通用户的软件就是Usermin。

官方网站:www.webmin.com
中文网:www.webmin.cn
全球镜像中国站:www.webmin.com.cn
posted @ 2009-01-06 19:58 shinewang 阅读(191) | 评论 (0)编辑 收藏

     摘要: 在经济陷入困境的时候,IT肩负着提高商业效率、降低成本开支的重任。考虑到这一点,以下是我给出的2009年上升与下降趋势预测的清单。  阅读全文
posted @ 2009-01-06 19:03 shinewang 阅读(2282) | 评论 (3)编辑 收藏

     摘要: Good OS Co.差不多半年前发布了gOS3.0,一个在我看来是划时代的Linux发行版。虽然确切的说,gOS算不上一个全新的发行版,因为它还只是基于Ubuntu8.04的一个改进,但是我仍然相信gOS3.0的出现必将大大加快Linux的普及。本来以为Good OS Co.会在Ubuntu8.10之后推出下一个版本的gOS,但是没想到他们居然先弄了一个Cloud OS(直到昨天才发布仍然基于8.04的gOS3.1)。Cloud OS从这个名字来看应该是比gOS走得更远了,毕竟都云了吗。事实上它所带出的"网络即一切"的理念从长远看来也是对的。不过Good OS CO.居然提出该系统与windows集成。虽然他们同时也号称Cloud OS理论上可以和任何独立OS集成,但是看看他们的页面和新品介绍,感觉好像他们刚刚收到一笔微软的买笑钱。难道就是想消除人们对他们是Google OS的误解?  阅读全文
posted @ 2009-01-06 15:17 shinewang 阅读(1497) | 评论 (7)编辑 收藏

     摘要: 由于Java语言的局限性,实现一个Rails-like的Java开发框架一直是一个难题。在Java上想体验Rails-like的开发模式,只能选择Grails或者JRuby on Rails。然而这两种框架都是动态语言实现的框架,只是基于JVM而不是基于Java语言本身。动态语言确实有很多优点,但往往难以调试。是否有一个 Java语言实现的Rails-like框架?答案是Play!
Play!的案例:
abikenow
http://www.abikenow.com
分享和搜索自行车的iPhone应用
Shigeta website
http://www.shigeta.fr
zebre
企业内部管理系统,使用了JPA 、AJAX和Google charts API等技术。
B&B media website
http://www.bandbmedia.com
zapps
zapps提供了一个完整的协作平台,包括邮件、任务管理、日历、文档管理等功能。  阅读全文
posted @ 2009-01-05 12:46 shinewang 阅读(1902) | 评论 (5)编辑 收藏

     摘要: 论坛
涉及JPA、页面模板、控制器、Session、Flash、自定义404/403页面、安全、Email等
Blog
涉及JPA、页面模板、控制器、Session、Flash、自定义404/403页面、安全等
多种模板类型
Play!支持通过调用renderXXX方法输出json、html、xml、二进制等多种回复类型,如果只是调用render()方法,Play!会根据浏览器的需要选择不同的模板。
Flex客户端
Play!应用程序粘合Amazon ECS (e-commerce API)和Flex客户端的  阅读全文
posted @ 2009-01-05 10:28 shinewang 阅读(1915) | 评论 (1)编辑 收藏

     摘要: 由于Java语言的局限性,实现一个Rails-like的Java开发框架一直是一个难题。在Java上想体验Rails-like的开发模式,只能选择Grails或者JRuby on Rails。然而这两种框架都是动态语言实现的框架,只是基于JVM而不是基于Java语言本身。动态语言确实有很多优点,但往往难以调试。是否有一个 Java语言实现的Rails-like框架?答案是Play!

目前Play!没有集成验证功能,暂时可以使用下面两个验证框架作为替代:
Hibernate Validator
OVal
Play!开发团队有实现一个类似Hibernate Validator功能的验证框架的打算。  阅读全文
posted @ 2009-01-05 09:52 shinewang 阅读(571) | 评论 (1)编辑 收藏

     摘要: 在中国,没有一个企业像金山这样饱受争议;在中国也没有一个企业所走的路像金山这样戏剧和充满艰辛。金山在微软的阴影和盗版的围追堵截下生存了近20年,在国际软件巨头和盗版的双重压力下,金山软件始终不懈充满激情,从一路坎坷中顽强走来,被视为中国民族的软件产业的领导者,在这个坚持梦想的创业故事中,你可以看到一家软件企业在20年里的挣扎、转折、挫败、崛起和成长的全部历程。金山的20年历程就是一幅展现中国软件产业20年跌宏起伏的历史画卷。  阅读全文
posted @ 2009-01-01 23:38 shinewang 阅读(2657) | 评论 (3)编辑 收藏

1、HTTP Head的Location值
2、Meta标签
3、JavaScript
posted @ 2009-01-01 23:37 shinewang 阅读(243) | 评论 (0)编辑 收藏

     摘要: Grails 1.1 Beta 2发布了,Groovy 1.6 final和Grails 1.1 final也越来越近,不过已经不是很感兴趣了。虽然对于Java开发者来说,相比Rails,Grails更容易上手,但它并不成熟的。在论证 Grails的成熟度时,Graema说:“你会把Spring和Hibernate看作风险吗?” Spring和Hibernate确实不是风险,但Grails对Spring和Hibernate的包装却是一个极大风险,“在种种危险中,最主要的一 点是我们已经对底层框架的抽象太成功了,以至于有时会出现问题。”具体可以看看这个例子。使用Grails,不如使用JRuby On Rails或者Play!
不管怎么样下面介绍一下1.1版本的新特性:
更好的GORM事件
基本类型集的持久化
对象的只读访问
默认的排列顺序
批处理
动态Finders的改进
单项的One-to-many遗留映射
增强枚举类型的支持
全局插件
多插件仓库
自动安装插件方案   阅读全文
posted @ 2008-12-26 16:47 shinewang 阅读(1806) | 评论 (4)编辑 收藏

     摘要: 由于Java语言的局限性,实现一个Rails-like的Java开发框架一直是一个难题。在Java上想体验Rails-like的开发模式,只能选择Grails或者JRuby on Rails。然而这两种框架都是动态语言实现的框架,只是基于JVM而不是基于Java语言本身。动态语言确实有很多优点,但往往难以调试。是否有一个 Java语言实现的Rails-like框架?答案是Play!
Play!最酷的5个功能
本文通过5个例子展示了Play!框架背后的哲学。
1. 绑定HTTP参数到Java方法
2. 通过调用Java方法重定向到相应的action
3. 直接把Java对象传递到页面模板
4. 方便的文件上传
5. 不用任何配置就可以把应用分布到多个JVM  阅读全文
posted @ 2008-12-25 13:09 shinewang 阅读(2424) | 评论 (7)编辑 收藏

     摘要: 由于Java语言的局限性,实现一个Rails-like的Java开发框架一直是一个难题。在Java上想体验Rails-like的开发模式,只能选择Grails或者JRuby on Rails。然而这两种框架都是动态语言实现的框架,只是基于JVM而不是基于Java语言本身。动态语言确实有很多优点,但往往难以调试。是否有一个 Java语言实现的Rails-like框架?答案是Play!  阅读全文
posted @ 2008-12-25 13:03 shinewang 阅读(2984) | 评论 (0)编辑 收藏

一个Rails-like的Java框架
http://www.blogjava.net/shinewang/archive/2008/11/19/241435.html

框架概要
http://www.blogjava.net/shinewang/archive/2008/12/25/245464.html

Play!最酷的5个功能
http://www.blogjava.net/shinewang/archive/2008/12/25/245502.html

Play with Play! - Validation
http://www.blogjava.net/shinewang/archive/2009/01/05/245470.html

Play with Play! - 应用实例
http://www.blogjava.net/shinewang/archive/2009/01/05/249852.html

Play with Play! - 案例
http://www.blogjava.net/shinewang/archive/2009/01/05/249889.html
posted @ 2008-12-25 12:59 shinewang 阅读(1236) | 评论 (0)编辑 收藏

     摘要: 之前参加过一次Sun的MySQL讲座,最近整理了一下笔记:

插件式的存储引擎是MySQL最具特色的功能之一。当用户将数据库应用到各个不同的领域时,每一种应用都对数据库提出了满足自己需求的性能特点,而MySQL的插件式存储引擎正是针对此而推出的。使用MySQL插件式存储引擎体系结构,允许数据库专业人员为特定的应用需求选择专门的存储引擎,完全不需要管理任何特殊的应用编码要求。MySQL服务器体系结构由于在存储级别上提供了一致和简单的应用模型和API,应用程序编程人员和DBA可以不再考虑所有的底层实施细节。因此,不同的存储引擎具有不同的能力,而应用程序是与之分离的。例如,MySQL支持的存储引擎除了常见的MyISAM、InnoDB、Archive、Memory外,还有在MySQL集群环境中使用的Cluster引擎,通过SQL操作HTTP的HTTP引擎,访问Memcached服务器的Memcache引擎,访问DB2数据库的DB2引擎等等。

此外,讲座还涉及高可用性等方面的问题。PPT可以从这里下载。  阅读全文
posted @ 2008-12-20 18:53 shinewang 阅读(1522) | 评论 (1)编辑 收藏

JSP输出乱码
获取表单乱码
URL乱码
数据库乱码

这里仅做标记,解决方案网上很多。
posted @ 2008-12-20 18:50 shinewang 阅读(340) | 评论 (2)编辑 收藏

成为Java的接班者的语言需要具有的重要特色:
动态类型或者自动类型转换
快速反馈,改变代码后马上可以看到运行效果
基于虚拟机
开放源代码
支持分布式、多核计算
posted @ 2008-12-16 11:19 shinewang 阅读(2153) | 评论 (13)编辑 收藏

     摘要: tomcat6.0.14、resin3.2.1、glassfish v2对同一个loginaction使用JMeter进行压力测试,具体流程:JMeter发送http请求-->login.jsp-->login.do-->控制台打印一条信息表示收到request请求。每种服务器测试两次,每次10个thread,每个thread以每秒10次的速度发请求,循环10次,每组共发100个请求,两次共200个。  阅读全文
posted @ 2008-12-16 11:17 shinewang 阅读(2469) | 评论 (0)编辑 收藏

1.使用连接地
2.关闭自动提交功能
conn.setAutoCommit(false)
关闭后需要手工调用commit()和rollback()
3.使用PreparedStatement预编译
4.建立索引
posted @ 2008-12-15 22:34 shinewang 阅读(361) | 评论 (1)编辑 收藏

Code Review重点是发现难以测试的问题
posted @ 2008-12-15 10:28 shinewang 阅读(264) | 评论 (0)编辑 收藏

     摘要: 前几年在IT求职的简历中经常会用到一个词“精通”,精通Java,精通Hibernate等等,但事实往往正好相反。最近看到一个对技术水平等级的排列,很有意思,和大家分享一下  阅读全文
posted @ 2008-12-12 09:43 shinewang 阅读(2709) | 评论 (7)编辑 收藏

     摘要: 搜索引擎友好的URL地址
内容重定向和HTTP状态代码
重复内容
黑帽SEO
伪装、地域定向和IP分发
站点地图  阅读全文
posted @ 2008-12-12 09:42 shinewang 阅读(1673) | 评论 (0)编辑 收藏

     摘要: 记得有这么一个段子,在国内IT业最火的时候,大学的学生们都普遍偏科,而且不管是什么专业的都偏IT,荒废其他课程,气得一位教机械工程的老教授在课堂上大发牢骚:“就是信息科技再发达,你也不能坐着信息去美国!”。  阅读全文
posted @ 2008-12-09 10:16 shinewang 阅读(1756) | 评论 (3)编辑 收藏

 JPA的Cascade(级联)
  • 不定义级联
  • CascadeType.PERSIST (级联新建)
  • CascadeType.REMOVE (级联删除)
  • CascadeType.REFRESH (级联刷新)
  • CascadeType.MERGE (级联更新)
  • CascadeType.ALL 表示选择全部四项

@OneToMany(mappedBy = "custom")
mappedBy="custom"就相当于inverse=true,mappedBy指定的是不需要维护关系的一端。

在domain类中定义的FetchType只对get/load/loadAll有效,对Query list无效,需要在构造Query时重新指定。


posted @ 2008-12-09 10:01 shinewang 阅读(321) | 评论 (0)编辑 收藏

HttpServletRequest类getAttribute()和getParameter()的区别:

getParameter()用来接受从Web客户端传到Web服务器端的HTTP请求中get方法或post方法传递的数据,返回String类型的数据。HttpServletRequest类有setAttribute()方法,而没有setParameter()方法。

setAttribute()和getAttribute()方法传递的数据只会存在于Web容器内部,在具有转发关系的Web组件之间共享。getAttribute()获得的是由setAttribute()方法赋的值,返回值是Object。

posted @ 2008-12-07 23:57 shinewang 阅读(182) | 评论 (0)编辑 收藏

对column进行唯一约束的方法:
PK
Unique Index
posted @ 2008-12-07 23:45 shinewang 阅读(162) | 评论 (0)编辑 收藏