简述怎样用argouml把学习日记的源代码反向生成类图

这里以学习日记的learndiaryV0.9.0.4为例,结合最新版的ArgoUML0.22简述一下怎么样从学习日记源代码反向生成类图。其它环境为:操作系统:redhat linux9.0,jdk1.4.2_12-b03(最新的jdk6在ArgoUML0.22下工作起来据我使用好像有点问题)。

1、选择档案->汇入原始码:

2、在出现的“汇入原始码...”浏览对话框中选定源代码顶层目录:./learndiary/src/com:

3、在出现的“setup the import classpath”对话框中手工逐个把学习日记涉及到的类库加进去:



我加了的类库有:

1)Tomcat5.0中common目录下的:common/lib/servlet-api.jar

2)学习日记源码涉及到的类库,都在 ./learndiary/web/WEB-INF/lib下面,包括(保险起见,都加吧:)):

activation.jar          commons-logging.jar    jstl.jar                             standard.jar

antlr.jar               commons-validator.jar  log4j-1.2.12.jar                     struts-el.jar

commons-beanutils.jar   CVS                    mail.jar                             struts.jar

commons-digester.jar    jakarta-oro.jar        mysql-connector-java-3.1.12-bin.jar

commons-fileupload.jar  jdom.jar               rome-0.8.jar

(注:这是现在cvs库中的最新版,里面有些类库是learndiaryV0.9.0.4没有的,你如果用learndiaryV0.9.0.4的话就可以不加。)

这个过程有点麻烦,也是argouml需要改进的地方,还有,加了第一个路径后,你会发现对话框跑到主界面后面去了,你加下一个的时候需要在任务栏上的相应图标上点一下才能使它成为当前对话框继续添加classpath。

4、把classpath添加完后,点击OK,你就可以把源代码反向成类图了,这个过程可能要花几分钟,可要耐心点哟:)

这样,完成反向工程了。但是,因为argouml现在还在开发中,还没有达到一个成熟的V1.0版,据我的经验,反向的类图如果再正向生成代码是通不过编译的,比如,在类com.learndiary.website.util.Util.java中

反向后的类文件头部为:


package com.learndiary.website.util;

import byte[];

import String[];

而真正的原始文件头部为:


package com.learndiary.website.util;

import java.security.MessageDigest;

import java.util.Random;

这显然是不对的。但是,其它的绝大多数类是正确的。所以我认为,ArgoUML现在作为一个uml基础知识的学习工具和一些不需要双向生成类图和类的简单应用中可用。也就是说,我认为ArgoUML还不是一个可用的生产版本!

下面征对一个朋友的提问“servlet和struts的包是如何导入到ArgoUML中”来说一下怎样单独把这些类库反向工程成类图。

1、同上面的第1步同;

2、在同样的“汇入原始码...”浏览对话框中的“select language for import”中选择“java from classes” :

3、在出现的“汇入原始码...”浏览对话框中选定你要反向工程的类库,比如下面的struts.jar:

4、在出现的“setup the import classpath”对话框中手工逐个把编译这个类库涉及到的其它类库加进去,因为我不清楚struts.jar都需要依赖什么其它类库,所以把Struts的lib目录下的所有jar文件都加进去了,外加Tomcat5.0下面的那个:common/lib/servlet-api.jar(我也不知道是不是该用J2EE中的servlet相关的那个类库?或者用这个就行了?)

因为,我对UML的应用仅限于非常基础的类分析和活动分析,用于在后来加入的部分模块的设计中理清思路。我觉得对我来说ArgoUML已经够用了。而且,我的使用过程中也有一些肯定不正规的甚至错误的UML应用,还希望看到的朋友能够指点一二。我的电子邮件为:mdx-xx@tom.com,你最好是在网上给我留言。谢谢。

为学习日记开源软件归个类吧

有不少朋友第一印象看了这个站不知道是干什么的。这里给学习日记开源软件(及“JAVA学习日记”网站使用的这个软件)归个类吧。

与此类软件相关的文章:http://www.blogcn.com/user14/davidczg/blog/22723065.html

相关的本站日记:

The ideas we can refer:www.43things.com (0篇)

learn from www.43things.com (0篇)

一个非常成功使用目标分享的语言学习网站http://bulo.hjengl (0篇)

相关的网站:

爱米网

43things

http://bulo.hjenglish.com/goal.htm

下面是那篇文章的全文转载:http://www.blogcn.com/user14/davidczg/blog/22723065.html

**************************************************************************************

43 Things-分享目标的社会性软件

【摘要】社会性软件自诞生之日起就倍受人们瞩目,近年来随着BBS,Blog,Wiki的流行,社会性软件再度掀起一阵热潮。43 Things是2005年 1月1日正式发布的,所以人们对它还不了解,本文主要从43 Things概述、43 Things功能简介、43 Things在网络学习中的应用、 43 Things的不足、43 Things的汉化问题五个方面介绍43 Things,期望人们对43 Things有全面初步的了解,并做出相应的尝试。

【关键词】社会性软件、43 Things、分众分类

1. 前言

  目前关于社会性软件还没有公认的学术上的定义,但无论从何种角度来定义,社会性软件的内涵应该包括以下三点:

1) 社会性软件首先是个人软件,是个人网络化的工具;

2) 社会性软件构建的是社会网络,这个社会网络包括弱链接,中链接和强链接;   

3) 社会性软件是个人性和社会性的统一。

  社会性软件的种类有很多,Email、即时交流软件、BBS、Blog等。当Email、BBS、Blog、wiki等已经成为我们耳熟能详的词汇时,43things也开始进入我们的视野,可能很多人并不熟悉43 Things,本文将从以下几个方面介绍43 Things:

2. 43 Things概述

  43 Things是由Robot Co-op团队,基于Ruby语言开发的网站,是目前较流行的社会性软件之一,它的核心理念是与众人分享自己的目标。

  大家可能对43这个数字感兴趣,为什么是43而不是其他数字,正如网站的开发人员介绍:任何事物都需要一个名字,我们认为43件事情对于一个足够忙的人来说是最合适的数字了,为什么不是更多的事情呢?那太多了。为什么不少一些呢?当然你可以不写满43件事情,但是我们还是把它命名为43 Things。

  43 Things也是在距2005年元旦43天的时候对外开放的(正式发布日期是2005年1月1日),自发布之日以来的6个月中,它目前已经吸引了3097个城市中的26983个人在做105557件事情(最新数字请关注43 Things首页)。

  43 Things的界面非常简洁,明快,导航非常清楚,下面以其中一用户davidczg为例展示一下43 Things的界面,如图1:



图1 43 Things用户界面

3. 43 Things功能简介

3.1.添加目标(Add a goal)

  在43 Things上注册成功之后,用户就可以添加自己的目标了,在添加目标之前,用户可以先查看他人的目标,有助于激发自己的灵感,然后再写下自己的目标。

3.2.添加进度(Add a entry)

  在实现目标的过程中,一定有很多的感受,添加进度这个功能可以使用户方便地记录感想。这样不仅给正在做类似事情的其他人一些启发,也可以在完成某件事情的时候,看看自己走过的足迹,以一个指导者的身份,给正在做同样事情的朋友一些帮助和建议。

3.3.添加评论(Add a comment)

  在查看他人的目标列表时,如果对他人的目标感兴趣,或是提出一些不同建议,均可通过添加评论的功能来实现。

3.4.邀请朋友(Invite people)

  对于有些目标,一个人实现起来总会感到力量单薄,这个时候就体现了团体的力量,43 Things也为用户考虑到了这个需要,所以有邀请朋友这个功能,该功能可以方便用户把朋友加入到所做的目标当中。

3.5.赞扬别人(Give cheers)

  一个好的目标可以激发更多的想像力和创造力,所以在43 Things当中,当用户发觉哪个目标比较好,就可以给这个人的目标一个赞扬,每天赞扬的个数是根据用户的使用频度来生成的。

  43 Things的主要功能已经大致列出,还有更多的功能需要用户在使用的过程中,不断体验,不断发现。

4. 43 Things在网上学习中的应用

  对于同一种工具而言,不同的人有不同的使用方法。不同的使用方法能给我们带来不同的认知、情感及其他方面的体验。

4.1.让43 Things与Blog同步

  43 Things具有和Blog绑定的功能,也就是说,用户在43 Things上添加进度的同时,在其绑定的Blog上也可以看到相关的进度内容。Blog在教育中的应用已经成为目前的焦点问题,在某些方面已经取得了一定的成绩。

4.2.利于资源的分类、汇总

  在介绍这个应用之前,需要提到分众分类(Folksonomy),分众分类使得传统分类法摆脱了固化的现象,并且跟大众的认知程度密切的结合起来,同时这种分类方法也为群体用户和信息之间建立了一个联系桥梁。

  分众分类是平面化的,没有等级层次的划分,虽然它相对不够严谨,缺乏准确度,但是在社会性软件中,这种平面延伸的分类方法却在无形之中成为形成了沟通的渠道和网络,而且方便,灵活,不受条件限制。所以这种以自定义标签形式的分众分类在时下流行的社会性软件中得到了广泛的应用,::URL::http://del.icio.us ,::URL::http://www.flickr.com , ::URL::http://www.technorati.com 等等。

  我们可以将分众分类通俗地理解为标签(Tags),但其实在学术上,社会学家和人类学家在分众分类上已经做了大量的研究。

  除了标签,43 Things还利用进度、城市等多种方式对目标进行分类、汇总,同时把::URL::http://del.icio.us , ::URL::http://www.flickr.com 和::URL::http://www.technorati.com 的资源很好的整合起来,方便用户查找相关的资源。

5. 43 Things的不足

  What do you want to do with your life?

  26,893 people in 3,097 cities are doing 105,557 things including…

  上面的两句话可以在43 Things首页的显著位置找到,43 Things虽然建站时间不长,还不到5个月,难免有它的不足,但是我们可以从上面的数字中看到这个网站的魅力,我们也可以从开发者的团队Blog中找到他们奋斗的脚印,是他们的创意造就了43 Things,但更有创意的是他们用来完善 43 Things的方法。在::URL::http://ideas.43things.com站点上,他们提出了:

  What ideas do you have for 43 Things?

  504 people in 280 cities have 493 ideas for 43 Things including…

  该站点的目的就是,让体验43 Things的用户说出对43 Things的期望,美中不足的是,这个站点还没有得到太多的关注,如果::URL::http://www.43things.com [/url]和::URL::http://ideas.43things.com 两个站点可以方便的切换,效果就会好的多。

  根据::URL::http://ideas.43things.com 中提出的建议,开发团队所做的改动已经切实地反映在43 Things上了,比如说“提供赞扬用户的列表”、“用RSS跟踪目标的新进度”等都已经实现了。在这样一个不断流动的想法中,43 Things也在不断的完善之中。

6. 43 Things的汉化问题

  自43 Things发布以来,很多国内的朋友致力于开发中文版的43 Things,目前开发得比较完善的有::URL::http://www.sharethings.com.cn 和::URL::http://www.aimi.cn 两个站点。

  其中::URL::http://www.sharethings.com.cn 是利用.net环境开发出来的,并将43 Things的特征基本上都保留了下来,是很好的汉化版本;::URL::http://www.aimi.cn 在43 Things的基础上,取消了43这个数字的限制,而且将43 Things站点的部分内容进行了调整。

  汉化的过程中会遇到一些技术之外的问题,比如语言环境。英语和汉语之间的微妙差异、用户群体的语言习惯都会影响分众分类在中文环境中的应用,如标签与内容的匹配问题在中英文环境中都会存在,比如说,给Be a better blogger加的标签既可以是blog也可以是blogger。与其类似的问题:在同一个标签里,意义相近的目标(做一个更好的blogger)在43 Things中会出现多种表述:546人选择 “Be a better blogger”这种表述、8人选择“become a better blogger”这种表述等等,在众多的表述中,会出现几种选择表述的不同方法:

  一部分人会自己写出表述,在浏览他人目标的时候,一旦发现有更多的人选了另外一种相近的表述,他们就会更换自己的表述。

  一部分人会先搜索一下相关的表述,通常人数较多的就是要选择的那个。

  也有一部分人,不管别人是怎么表述的,只要符合自己的想法就行,基本不发生与他人的信息交互。

  分众分类的初衷,我个人的理解就是打破原有的“权威分类”,把分类社会化,让每个人都有分类的权力,而不是进入一个别人设置好的套子里,但是,已经习惯了权威分类的人群,在这样一个开放的系统里就会表现出不同程度的不适应,退一步说,即使大家都是严格按照分众分类的精神设置自己的分类,也会出现“同一种分类引发出多种不同的意义”或“同一种意义被划分成多个不同的分类”,毕竟不同的人对同样的一个词的理解是不同的,有时还会有很大的差异。

7. 小结

  43 Things是众多社会性软件中的一种,它用tags把社会性软件的相关资源(Blog,::URL::http://del.icio.us 和::URL::http://www.flickr.com 等)很好地整合在一起,用简洁的工具提供给用户进行个人管理和知识管理的平台,虽然技术门槛不高,但是高效、实用。在实现目标的过程中,可以吸引很多有共同爱好的人。在一个虚拟的团队中,大家互相鼓励,互相帮助,进而达到各自的目标。  

参考文献

::URL::http://en.wikipedia.org/wiki/43_Things 

::URL::http://en.wikipedia.org/wiki/Social_software

::URL::http://www.43things.com /about/view/faq

Owen.何谓Folksonomy,

::URL::http://blog.timetide.net/archives/2005/01/15/20050115015808.php.01,15,2005

Owen.Folksonomy 与语言的关系以及中文应用的问题,

::URL::http://blog.timetide.net/archives/2005/02/04/20050204163145.php.02,04,2005

::URL::http://en.wikipedia.org/wiki/Folksonomy 

::URL::http://robotcoop.com 

::URL::http://www.43things.com /about/view/learn_more

  这是我6月9号写出的文章,可当作43 Things的扫盲篇,如有错误或遗漏,请及时提出。

davidczg 发表于 >2005-7-15 17:14:41 保存该日志到本地[评论] [引用] [推荐] [档案] [推给好友] [主页] [问题日志] [收藏到网摘]

本站用户发表的作品,BLOGCN有权在站内免费转载或引用。未经同意,其他站点不得以任何形式侵犯本站著作权,包括但不限于:擅自复制、链接、非法使用或转载,及任何方式建立镜像站点。

※相关文章※

    * 颓废幻觉:那些没有得逞的阴谋 (yy_aqi )

    * 让人羞耻的胜利 (law4u )

    * 唐山大地震30年祭 (lbintoronto )

    * 禅师说禅:洗心革面 (lingyinchanshi )

    * 父爱是深沉的 (blueyunduo )

    * 纪念抗日战争系列漫画 (demidov )

    * 我的私人生活一如其他明星 (gemini8899 )

    * 辣少女TT对封面的意见 (xixihetiti )

    * 最后再想你一次 (dongdandd )

    * 一个西部志愿者的遗情书 (laorongshu )

最新相关评论

访客938636(访客)- 2006-10-9 22:53:21

我们有个类似的创意比他还早,::URL::http://java.learndiary.com

littlebat(访客)- 2006-10-9 22:51:09

我们有类似的创意比他还早,不过没有形成气候。我们还是开源的。JAVA学习日记 ::URL::http://java.learndiary.com 

 开发社区:::URL::http://develop.learndiary.com

访客222449- 2006-8-10 11:29:00

刚才就是在43things上看到你的,然后就闯进你的blogger,blogcn,呵呵!写的很不错啊,发现你的banner留言和我blog很相似

 欢迎访问我的blog

 rinco.blogbus.com

 非常希望和你交流

 MSN:xinghuach@hotmail.com

访客743853- 2006-7-25 21:32:03

访客721039- 2006-7-25 13:26:05

我一定能成功

 

访客789859- 2006-7-17 20:59:35

:我不想说什么。

 我想成功

访客257836- 2006-7-5 8:06:57

访客257836到此一游!

访客344099- 2006-1-15 14:27:14

很好的创意啊,什么时候中国人也有一个好的创意形成并实现?也能被外国人这样来评论介绍一下?

请您 评论/留言

                      --转载完

尽人事,听天命--挽救学习日记的最后一搏

这两天,请一些朋友和同事看了我的网页,得出如下意见和建议:

1、要到各大相关论坛、社区去宣传自己,当然不能赤裸裸的广告,要给大家提供本站对人有价值的信息,不然会让人讨厌的,也许还会被社区封帖和封号;

2、美化页面,通过添加恰当的图片和恰当的改变字体、颜色和添加动态因素,让页面生动起来,不要让人看了感到压抑、沉闷。现代生活已经够压抑了,谁还来你这个破地方受罪?

3、对人有用的资源太少了,多增加一些实用软件下载;

4、寻找合适的朋友一起来做,毕竟个人的力量和智慧是非常有限的。

如果,我都用心的做了这些后,网站还没有起色,再关闭这个没有用的网站也算为互联网上清扫了一颗小小的灰尘垃圾。

尽人事,听天命--挽救学习日记的最后一搏。

学习日记走入绝境了吗

学习日记的起源是我的初学之作,当然谈不上技术份量,初学者真的看了还有误人子弟之嫌疑。

而且,作为一个JAVA业余爱好者,自己要学成有独特技术见解,并能重新开发学习日记的可能性很难,正如一位长者所说,你一个业余者都能写出来,那别人科班的博士、硕士是做什么的?此话不假呀。

本人很穷,想靠这点业余爱好找点钱补贴家用的目的从来就有。原来是想大家一起交流,可以把技术学好点,或者以开源模式的发展方式和参与者一起挣点钱。但是前者用不着独自来建一个网站,建一个网站并不是技术就能建好的,太多技术之外的东西需要涉及,如果想真的学技术的话,应该不要把精力放在这些上,专心去学技术;而且,想靠一个人的力量来撑起一个社区性质的网站,现在想来是几乎不可能的;而且,我的性格也决定了自己不大善于与人合作,喜欢接受任务,独自做事,而不是去组织别人一起来做事。我觉得麻烦。所以,我觉得自己不适合把学习日记做下去了。还有,我的性格和心理素质也不行,波动太大,受不得措责,碰到一点难事就心事重重,又很容易因为一个头脑发热的想法去埋头做一件事,做完一看效果-又错了。

所以,分析自己的实际情况和学习日记的现状,我可以在技术上把程序设计作为一项技能深入下去,但是不适合自己去运作一个网站。也没有必要去因为想挣钱而去做一个个人网站,像vbird.org,别人是高层次人才,发表的见解当然不同凡响。由他运作的个人网站当然人气很旺。我最好是去申请一个博客,可以记点日记自己用。而不是自己去建一个网站来写日记。一句话,没必要。

学习日记现在也许真该像我的那位长辈说的那样,放弃;也会像一位朋友预言的那样:迟早关闭。

虽然我为运作这个网站,把本应该陪家人的时间和本应该学技术的时间,甚至本应该做好本职工作的时间都浪费了太多在这上面,但是客观的规律不容违背;不要做那种“不见棺材不掉泪”、“不撞南墙头不回”的人。我已经浪费了几年时间,我不能再去浪费几年时间。

实际上,按那位长辈的建议,我根本就不应该在计算机上下太多的功夫。因为这在工作中用不上,学这个,还不如学打字,每分钟多打几个字,要是以后上不成班了还可以开个打字复印店;学程序做什么?谁用你的小儿科程序?各单位的信息化软件都是上级发放的,那些都是别个大公司做的。

上面的话虽丑,理却端。平时我的计算机知识主要是用来帮朋友、同事解决电脑故障而已。

也许,我7年前决定自考计算机,为自己多学一门技术,以防不时之需的决定根本就是错的?从头就是错的,如果真是这样,7年呀,人生还有几个7年呀?!真是失败的人生呀。。。

学习日记也许要关了,这是很可能的事。也许,关了以后,我会发觉,又错了。。。

jsp页面变量的作用域问题

一个jsp页面就是一个java类,它的变量也跟java类一样,有不同的作用域。用下面的实例说明一下。

下面是把“学习日记开源项目”里面的一个名为disall2.jsp的文件在“JAVA学习日记网站”改写的一个片断,我的目的是在一个循环语句的第一个循环中显示广告,后面的循环不显示。用彩色部分的变量来控制。下面是正确的使用方法。




  <% int count = 0; %>



   <logic:iterate id="aGroupGoals" name="groupGoalsList" type="com.learndiary.website.model.GroupGoalsInfo">

    <c:set var="group" value="${aGroupGoals.group}"/>

    <b><u><c:out value="${group.groupName}"/>(<c:out value="${group.goalsNum}"/>个目标)</u></b>

    <c:set var="goalsList" value="${aGroupGoals.goalsList}"/>

    <br>

  <logic:iterate id="aGoal" name="goalsList" type="com.learndiary.website.model.ArticleInfo">

    <html-el:link action="disGoalContentAction.do?goalID=${aGoal.articleID}&naviStr=${requestScope['naviStr']}" target="_blank" title="查看既定目标:${aGoal.articleName}的具体内容" >

     <c:if test="${aGoal.visibility == 1}">

      <font color="red">[私]</font>

     </c:if>

     <c:if test="${aGoal.joinNum >= 5 && aGoal.joinNum<10}">

      <font size="3">

     </c:if>

     <c:if test="${aGoal.joinNum >= 10}">

      <font size="4">

     </c:if>

     <c:out value="${aGoal.articleName}"/>

    </html-el:link>

    (<c:out value="${aGoal.joinNum}"/>/<html-el:link action="diaryAction.do?goalID=${aGoal.articleID}&naviStr=${requestScope['naviStr']}" target="_blank" title="查看实现目标:${aGoal.articleName}下的所有${aGoal.diarySize}篇日记" >

     <b><u> <c:out value="${aGoal.diarySize}"/> </u></b>

     </html-el:link>)

     </font>

      

   </logic:iterate>

   <p align=center>



   <% if (++count == 1) { %>

   <%@ include file="/common/google_intro_4.jsp" %>

   <% }

    %> 



   <hr size="1" noshade="noshade">

    <p>

  </logic:iterate>

但是,如果把蓝色的部分改动一点,只要你第二次刷新页面的时候,广告就消失了。如下:




  <%! int count = 0; %>


原因是:前者是类方法中的局部变量,作用域局限于java类中的一个方法中,即点击一次页面就重新调用类中的方法,于是,它的记数器总能正确的清零;而后者是类成员变量,作用域为类,在类的当前实例(你访问jsp页面时,这个类在服务器端机器的内存中为你一个人创建的一个对象实例)没有销毁之前,它里面的变量始终是一个,当你刷新页面时,记数器就递增了,不能正确的清零。

我是一个java的业余爱好者,理论基础不行。上面的说法如果不当,还希望见者提示一下。谢谢。

走出自己的思维,多向别人学习

网上成功的网站太多了,充满智慧的人也不少。我要走出自己的思维,多与人交流,多向别人学习。比如:多上论坛、blog关注别人的问题和感受。尽自己的力回答一些入门级问题(因为我就是入门级水平)。我想,智慧与智慧的交流对大家都是一种好的状态。我自己需要践行这种理念和状态。

提交事件21,建了数据库表和bean,database 操作类

思路来自: 明确网站定位,增加学习日记目标分组功能

向开源社区提交了issue 21:

http://learndiary.tigris.org/issues/show_bug.cgi?id=21

The all different goals can be organized by group, in this way, user can get the

outline of a website which running LearnDiary.

Add some Top 10 statistical data of website, such as top 10 newly created

diaries, top 10 most posting diaries' user, etc..

今天完成了相关数据库表建立,一个bean模型,和bean模型的数据库存取类。延续原来的入门级设计方法,快速实现需要的功能。

还是以前的思路,软件应用为先。

学习日记的目标分组功能和Top10日记分类功能设计

根据思路: 明确网站定位,增加学习日记目标分组功能 ,现对学习日记的目标分组功能和Top10日记分类功能进行设计描述。

1、目标分组的建立应该由网站的管理员进行,应该包括下列功能:

1)、创建分组;2)删除分组;3)修改分组;4)分组有优先级别,也可以修改优先级别;

分组的数据表结构:

分组ID(groupID), 分组名称(groupName),分组描述(groupDetail),分组优先级(groupPriority),分组目标数(groupGoalsNum),分组创建日期(createDate),分组修改日期(modifyDate)。以后,还可以添加分组组长的分类组织者;

为了简化实现,初步可以只有创建功能,只要3个必要字段:groupID, groupName, groupPriority。分组的排列以groupPrior为准。

然后,在目标帖子的表中添加一个字段(groupID),因为目标帖子有一个parentID是没有意义的,看是否可以把这个字段来作为groupID;

这样,需要管理员对目标帖子有编辑权限,可以把原来的目标帖子归入分组,没有归入的加入未分类分组。

2、TOP10日记功能:

1)、最新10篇日记,最热门的10篇日记,随机的10篇日记,这些可以通过数据库查询实现。

其中,前两个可以通过那个只返回ID和名称的好像叫getCPageList()的方法来实现;后面的那个可能需要新加一个方法,来返回随机10篇帖子的ID和名称。

3、实现以上功能需要严格测试是否会暴露私人帖子。人的隐私权(人权)优先嘛。

4、由于以上改动,目标内容页面也需要精心设计,把目标相关的内容都要一目了然的呈现给用户,这个页面的广告位设计也要好好考虑一下。

能够想到的都写上了。没有想到的希望看见这篇帖子的朋友提一下。

原来的列表式目标可以作为另一个老的视图保留。