聚合阅读
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了聚合阅读相关的知识,希望对你有一定的参考价值。
参考技术A这是「阅读」系列之三
本文结构 :
上个月 16 日,「 第十六次全国国民阅读调查 」结果发布,数据显示,「我国成年国民人均每天手机接触时长为 84.87 分钟」「以阅读新闻(资讯)、社交和观看视频为主」。这说明,对很多用户来说,资讯阅读是每天必做的功课。
用手机阅读资讯非常方便,但信息源分散、杂讯干扰过多,用户比较难控制接收的信息量,也比较难屏蔽不想看到的内容。
比较现实的办法是将资讯阅读控制在一个 App 中,比如很多人使用微信比较频繁,干脆就只在微信里阅读。通过发现页的「看一看」,就能读到时事要闻、朋友圈热点和订阅号精选文章。
微信有收藏功能,用户可以将喜欢的内容保存起来。有印象笔记(国内版)帐号的用户关注「我的印象笔记」,可以将文章一键转存到自己的笔记本中(见 《备忘录和印象笔记》 )。
不过,微信的阅读体验毕竟还是比不上专门的阅读器。比如那些已读的文章,微信既不隐藏,也不做出区分。另外,如果用户习惯使用「稍后读」工具,就只能先「在 Safari 中打开」再转存,很不方便。
介意这类小问题的话,可以换用资讯聚合 App。
Flipboard 红板报是全球知名的新闻聚合 App,聚合权威深度的文章资讯和优质媒体, 有全网独家的英文媒体 。
安装后第一次打开时,Flipboard 会弹出向导让用户选择关注的主题和媒体,以后在「关注」页面中调整。
ZAKER 是国内首个个性化新闻资讯 App,号称有 4000+ 信息源,特别全面。
ZAKER 同样可以按主题和媒体来选择订阅。如图所示,在「资讯」界面点上方的「订阅」,可以长按删除已经订阅的资讯类别,也可以点最下面的「+」号来添加订阅。
ZAKER 比较复杂,轻芒阅读则特别简单。它只能按媒体订阅,没有主题聚合。打开 App,马上看到资讯列表。点底部导航条左边的图标可以看到自己已经订阅的媒体;点界面左上角的查找图标进入订阅管理界面。
轻芒阅读的特长是可以 订阅微信公众号的更新 。
除了 Flipboard、ZAKER 和轻芒阅读,「即刻」也是非常好的选择,我在 《寻找适合自己的 App》 中介绍过这个 App。
资讯聚合 App 方便易用、阅读体验好,但自由度也低,比如只能订阅内置的资讯源,又比如无法通过关键词屏蔽掉某些文章。
相比之下,RSS(简易信息聚合)会更自由,当然了,使用门槛也相应变高。
钟情于 RSS 的用户可以选择现成的服务提供商,也可以选择自行架设服务器。自行架设服务器这里就不介绍了,只说说如何使用现成的服务。
主流 RSS 服务商有三家,分别是 Feedly 、 Inoreader 和 NewsBlur ,这里以 Feedly 为例。
在浏览器中打开 https://feedly.com/ ,点右上角的「Login(登录)」,弹出上图右侧的窗口。可以看到,Feedly 支持用 Google、Facebook、Twitter、Microsoft、Evernote 和企业邮箱等已有帐号登录。
登录成功之后马上会进入阅读和管理界面。页面的左边,是灰色的侧边栏,列出了当前所订阅的 RSS 源。
在侧边栏上方的「Filters(过滤器)」里可以设定文章过滤条件,仅提供给付费用户使用。
点侧边栏底部的「Add Content」按钮切换到搜索页面,在搜索框里输入关键词(名称、域名等)来搜索相应的 RSS 源(Feedly 聚合了大量 RSS 订阅源),也可以输入 RSS 链接直接添加。
支持 RSS 的网站一般都会像上图这样,在首页的页脚位置提供 RSS 链接。不支持的网站,也可以用 RSSHub 这类服务来烧录。
Feedly 、 Inoreader 和 NewsBlur 都提供了自家的 ios 和 android 客户端。不过在 iOS 上有更好的第三方选择: Reeder 、 Unread 和 Fiery Feeds 等。这里以 Unread 为例说说 RSS 客户端的用法。
在主界面点「Add an account」添加新的 RSS 服务帐号,点已有帐号进入文章分类界面。
调整的设置使 Unread 更符合自己的使用习惯。
已读 & 未读 选项:
排序 & 列表 选项:
界面 选项:
文章查看 选项:
字号 选项略过不说,单说 同步 选项:
在主界面点已有帐号进入文章分类界面,这里按三种方法查看文章。「Articles」把刷新到的文章都放在一起,只按更新时间排列;「Folders」把订阅源/文章放到不同分类中;「Subscriptions」则按订阅源分别存放。
在下图中可以看到,各个项目右侧用数字标出了未读文章的数量。
点选一个项目进入文章列表,如上图右侧,在列表上可以看到每篇文章的来源、发表日期、概要,让用户判断是否需要点进去阅读。
Unread 的界面极其简约,多数操作都可以通过手势操作来完成。
下拉 :在分类界面或者各个文章列表里下拉,表示手动刷新文章;在文章阅读界面顶部下拉切换到上一篇文章。
上拉 :上拉只在文章阅读界面底部有效,用于切换到下一篇文章。
右划 :用于返回上一级界面。
左划 :呼出关联菜单项。
长按 :在文章列表长按某一篇,同样呼出关联菜单项。
用在线 RSS 服务订阅资讯,其阅读进度是同步的,不用担心换一个设备就不知道读到哪一篇的问题。
使用 RSS 掌控资讯源,对屏蔽杂讯有一定效果,但是仍然避免不了要人工筛选一道。Unread 有一个「 滚屏时标记为已读 」的选项,特别适合筛选工作。
你可以在上面的配图中发现,因为屏蔽效果不理想(同时也是因为贪婪),我的阅读器里积压了 1481 篇未读文章,隔了一个下午刷新,新增了 838 篇。
如果每篇文章花费 1 分钟,光是新增的这 838 篇文章就得用去差不多 14 个小时。
所以我很少点开一篇文章去看,而是在文章列表滚动,瞥一下每篇文章的摘要。感觉值得细看的会扔进稍后读 App 中,不感兴趣的直接路过就算“已读”了。
感谢上帝给了我这两个工具,让我能维持“信息量很大”的生活。
稍后读工具主要有三个,一个是 Safari 自带的「阅读列表」,一个是 Pocket ,还有一个是 Instapaper 。
Safari 支持阅读器视图,配合「阅读列表」,已经是很好的稍后读工具了。
将文章存入「阅读列表」的方法:呼出「共享表单」,在最下面的一排图标中可以找到「Add to Reading List」(如上图所见),点它就可以了。
Pocket 和 Instapaper 的功能比 Safari 的「阅读列表」强,比如可以跨平台,支持扩展等等。
在安装 Pocket / Instapaper 并登录帐号之后,同样可以通过「共享表单」将文章存放到这两个服务里。存到稍后读工具中的文章,无论是阅读、摘抄、批注,都可以从容一些了。
题图来自 Unsplash ,作者 Matthew Guay
UML 聚合与关联
【中文标题】UML 聚合与关联【英文标题】:UML aggregation vs association 【发布时间】:2012-03-27 07:22:01 【问题描述】:我在这里,还有一个关于聚合和关联的问题。我想学习一些 UML 的基础知识,所以我开始阅读 Martin Fowler 的“UML 提炼”。我阅读了关于类的两章,我认为有一件事我无法完全掌握,那就是聚合与关联。书中有这样一段话:
在 UML 之前的日子里,人们通常对什么是聚合以及什么是聚合相当模糊。 协会。无论是否模糊,他们总是与其他人不一致。因此, 许多建模者认为聚合很重要,尽管出于不同的原因。所以UML 包括聚合(图 5.3),但几乎没有任何语义。正如 Jim Rumbaugh 所说,“想想看 作为建模安慰剂”[Rumbaugh,UML 参考]。
从我在 Stack Overflow 上阅读的这句话和主题中了解到,我使用这两种关系中的哪一种并不重要,它们的含义基本相同,或者是否存在使用聚合而不是关联的任何情况将是合理的和/或我不能在不改变类图的“含义”的情况下将一个更改为另一个?
我之所以这么问,是因为这本书是 2003 年出版的,在那几年里有些事情可能发生了变化。
【问题讨论】:
【参考方案1】:Rumbaugh 的陈述是最有说服力的,也是 Bob 叔叔的好建议。正如我所说的elsewhere,聚合在语义上是如此的弱,以至于没有提供任何实际有益的东西。它只有一个有效的极端情况(递归关系的非循环性),但很少有人知道和理解这一点。所以你最终不得不在 cmets 中指出。
我只是不使用它。并且从未感到任何损失。坚持简单的二元关联并专注于真正重要的事情——获得基数和正确的命名。与尝试决定不可判定的关联与聚合相比,您将从中获得更多。
第一次。
【讨论】:
你对作文链接有什么看法? @Dennis:与聚合不同,组合具有明确定义的语义,可以有效地将其与直接的二元关联区分开来。更多信息:***.com/questions/7834052/…【参考方案2】:也许这可以帮助你,但我认为你不会找到完美的解释:
区别之一是暗示。聚合表示整体/部分 关系,而关联则没有。然而,没有 两种关系的方式可能会有很大差异 实施的。也就是说,看代码会很困难 并确定一个特定的关系是否应该 聚合或关联。出于这个原因,它是相当安全的 完全忽略聚合关系。 [罗伯特 C. 马丁 | UML]
每种情况都有一个例子:
a) 关联是所有对象都有自己的关系 生命周期,没有所有者。让我们以老师为例 学生。多个学生可以与一个老师关联,并且 单个学生可以与多个老师关联,但没有 对象之间的所有权,并且都有自己的生命周期。两个都 可以独立创建和删除。
b) 聚合是关联的一种特殊形式,其中所有对象都有自己的生命周期,但有所有权和子级 对象不能属于另一个父对象。举个例子 部门和老师。一个老师不能属于 多个部门,但如果我们删除部门,教师对象 不会被破坏。我们可以考虑“有”关系。[Maesh | GeeksWithBlogs]
【讨论】:
有趣,但是关于第二个例子,我认为如果我们将聚合与关联交换,仍然不会有任何区别,这一切都归结为个人喜好和图表的可读性?跨度> 你如何判断一段关系是完整的还是部分的? @ChapMic "子对象不能属于另一个父对象" 这是完全错误的 :) 请看看***.com/questions/13935125/… 和这个en.wikipedia.org/wiki/Object_composition#Aggregation GeeksWithBlogs 参考资料(实际上)已损坏。它将重定向到 Geekswithblogs.net, the End of an Era.【参考方案3】:我倾向于使用聚合来显示与组合相同的关系,但有一个很大的区别:包含类不负责包含对象的生命周期。通常,将要包含的对象的(非空)指针或引用传递给包含类的构造函数。包含对象,在其生命周期的持续时间内,取决于存在的包含对象。没有包含的对象,包含的对象就不能(完全)完成它的工作。这是我对聚合隐含的“部分/整体”关系的解释。
【讨论】:
“没有包含的对象,包含的对象就无法(完全)完成它的工作。”关联和某些表单依赖项不也是这样吗?【参考方案4】:这个词经常被混淆。
聚合和组合是关联的一些类型。 在聚合和关联之间几乎没有区别 实现,并且许多将完全跳过聚合关系 他们的关系图。
你可以从这个类比中得到这个想法。
Class:A(person) 和 Class:B(car) 具有 关联关系,如果 Class:A 有一个 Class:B 声明,并且 Class:B(car) 对象不是必需的创建一个 Class:A(person) 对象。
Class:A(car) 和 Class:B(tyre) 具有聚合关系,如果 Class:A 有一个 Class:B 声明,并且 Class:B(tyre) 对象是必要创建一个 Class:A(car) 对象。
干杯!
【讨论】:
【参考方案5】:在 UML 中,聚合是未定义的,因为它们没有任何明确定义的语义。 聚合的一个有效用例是几个类的封装,如 Eric Evans 在“领域驱动设计”中所述。
例如汽车有四个***。 您可能想要计算每辆车的每个车轮驱动的总米数。 这个计算是由汽车实体完成的,因为它知道它有哪些***,而你并不关心哪些***属于哪辆车。
汽车是其所有部件(如车轮)的聚合根,您无法从聚合外部访问汽车的部件,只能访问根。
所以基本上一个聚合封装了一组彼此所属的类。
【讨论】:
UML 组合在语义上更接近 DDD 的聚合。 DDD 聚合具有一些非常明确的语义(实际上甚至比 UML 组合更强大)。肯定比 UML 聚合强得多。不幸的是条款不匹配:-(【参考方案6】:它们的意思不一样!我可以这样说:
关联关系:一个类引用另一个类。实际上它表明一个类与另一个类相关,但它们 不一定具有显示这种关系的属性...例如 'Teacher' 和 'Student' 班,虽然 'Teacher' 班没有 指学生的属性,但我们确实知道,实际上 老师确实有学生......而且“学校”班也有“老师”和 现在使这两个类与每个类相关的“学生”属性 其他。
聚合关系:一个类包含另一个类。但是如果容器(ClassRoom) 被销毁,则包含的(Chair) 不会。 实际上教室拥有椅子。聚合更强大 关系比关联关系。
这里还有一个关于它和整个 UML2.0 的教程,它解释了一切简单明了,你可能会发现它很有用:https://github.com/imalitavakoli/learn-uml2
TIP:另外让我提一下,因为关联关系在大多数时候类之间存在,我们有时不绘制它以防止不必要的复杂性。 p>
【讨论】:
【参考方案7】:在实现方面没有太大区别,但在概念上却有很大区别:聚合用于表达层次结构。当您使用组件的层次结构时,您需要在根界面中进行某些类型的操作:
在层次结构中查找子组件 在层次结构中添加/删除子组件 更改所有组件的公共属性 递归遍历层次结构(访问者模式) 重新配置层次结构和组件之间的链接(关联)在处理关联时,这些操作中的大部分都不需要。
【讨论】:
【参考方案8】:补充一点,我只建议从OMG 站点下载UML 规范:最佳参考,请参阅第 110 页。
None 表示该属性没有聚合语义。
Shared 表示该属性具有共享聚合语义。共享聚合的精确语义因应用领域和建模者而异。
Composite 表示属性是复合聚合的,即复合对象负责 组合对象的存在和存储(见11.2.3部分的定义)。
【讨论】:
以上是关于聚合阅读的主要内容,如果未能解决你的问题,请参考以下文章