Gopher Daily支持Feed订阅

在《Russ Cox“退位”,Go语言将迎来新领袖,未来将如何发展[1]。Gopher Daily以前没有官方邮件订阅功能,该邮件列表弥补了广大Gopher通过邮件订阅Gopher Daily的需求,这里再次表示感谢。

不过,一年前,我为Gopher Daily增加了官方邮件列表[2],大家可以在Gopher Daily主页实现邮件订阅[3]

接下来,还是那位提问的Gopher又询问Gopher Daily是否支持RSS订阅,我当时如实相告:暂不支持。

不过,这个周末针对邮件列表支持RSS订阅的功能需求,我也简单调研了一下,似乎很多技术类Newsletter都不支持。不过,我询问了一下Claude 3.5 Sonnet邮件列表和RSS订阅的优缺点,下面是它的回答摘录:

邮件列表和RSS订阅都是传播信息的有效方式,但各有优缺点。

邮件列表的优点:

1. 直接送达:信息直接发送到订阅者的收件箱,更容易引起注意。
2. 个性化:可以根据订阅者的兴趣定制内容。
3. 互动性:读者可以直接回复邮件与发送者交流。
4. 数据分析:可以追踪打开率、点击率等数据。
5. 无需额外软件:用户只需要邮箱就可以接收。

邮件列表的缺点:

1. 可能被当作垃圾邮件:有时会被误分类或过滤。
2. 信息过载:频繁的邮件可能让订阅者感到烦扰。
3. 隐私问题:需要收集用户的邮箱地址。
4. 送达率:不能保证100%送达。

RSS订阅的优点:

1. 实时更新:内容一发布就可以被获取。
2. 集中阅读:可以在一个RSS阅读器中浏览多个来源的内容。
3. 无垃圾邮件风险:不会被误认为是垃圾邮件。
4. 匿名性:不需要提供个人信息。

RSS订阅的缺点:

1. 需要额外软件:用户需要使用RSS阅读器。
2. 缺乏个性化:难以针对个别用户定制内容。
3. 互动性较差:不易与内容创作者直接交流。
4. 数据分析有限:难以获得详细的用户行为数据。

总的来说,邮件列表更适合需要个性化、互动性强的内容传播,而RSS则更适合频繁更新、希望读者自主选择阅读时间的内容。选择哪种方式取决于你的目标受众和内容类型。

我觉得邮件列表最大的问题就是到达率问题,现在各大电邮服务对于垃圾邮件的过滤还是很严格的,甚至“宁可错杀三千,不可放走一人”,我个人订阅的很多Newsletter也总是被误杀,导致偶尔收不到。出于让更多人能看到Gopher Daily考虑,我决定给Gopher Daily Newsletter增加RSS订阅功能

给一个站点或邮件列表增加RSS订阅功能至少有两种方案,一种是利用一些RSSHub之类的信息聚合服务站点直接将站点转换为一个RSS源,这种方案就需要依赖这样的RSS源转换服务。另外一种就是自己实现RSS源服务。

RSS(Really Simple Syndication)实际上是在Web 1.0时代发展起来的,但它在Web 2.0的环境中得到了广泛应用。Web 2.0强调用户生成内容和互动,而RSS允许用户方便地订阅和获取来自不同网站的内容更新,促进了信息的分发和共享。

信息订阅技术目前演进到RSS 2.0和Atom订阅阶段。RSS 2.0是最广泛使用的RSS版本,但它并不是一个正式的IETF(Internet Engineering Task Force)标准,因此没有官方的RFC。然而,它有一个详细的规范文档,在RSS Advisory Board[4]上可以看到。

鉴于RSS缺乏标准化,Atom格式被开发出来作为一个标准化的替代品。Atom是有正式的RFC规范的:RFC 4287: The Atom Syndication Format[5]。不过,无论是RSS 2.0还是Atom规范,都不复杂。

Atom规范中举的一个最简单的single entry的Feed源的响应数据示例如下:

<?xml version="1.0" encoding="utf-8"?>
   <feed xmlns="http://www.w3.org/2005/Atom">

     <title>Example Feed</title>
     <link href="http://example.org/"/>
     <updated>2003-12-13T18:30:02Z</updated>
     <author>
       <name>John Doe</name>
     </author>
     <id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6</id>

     <entry>
       <title>Atom-Powered Robots Run Amok</title>
       <link href="http://example.org/2003/12/13/atom03"/>
       <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id>
       <updated>2003-12-13T18:30:02Z</updated>
       <summary>Some text.</summary>
     </entry>

   </feed>

于是,我决定自己来基于Go http handler[6]和标准库的xml包[7]为Gopher Daily服务加上Atom版的订阅支持,无需使用任何第三方包。增加订阅源后,还可以使用W3C的免费的Feed Validation Service[8]来验证Feed是否是符合规范的:

6aed017c25d873de11935a71bc1e7884.png

下面是使用feeder.co/reader订阅Gopher Daily Atom源的效果图:

fa117a8203868e7d2b266b23fe306396.png

这张图上还保留了调试过程的“痕迹”,从最初的只有summary,到后期的可以输出全文(由于每一期Gopher Daily的篇幅都不多,因此直接在Feed源输出了全文)。

借这次机会,我顺便对Gopher Daily的模板做了调整,在原本放在每一期下方的快捷链接放到了最上方,这样可以更加方便大家的操作:

8c047e39c4dcf7bd503264e827faa019.png

屏幕前的各位Gopher,如果你更喜欢Feed(RSS/Atom)订阅方式查看Gopher Daily,请现在就把Gopher Daily的订阅源[9](右键 -> 复制链接) - https://gopherdaily.tonybai.com/feed 加到你的Feed Reader里吧!


Gopher部落知识星球[10]在2024年将继续致力于打造一个高品质的Go语言学习和交流平台。我们将继续提供优质的Go技术文章首发和阅读体验。同时,我们也会加强代码质量和最佳实践的分享,包括如何编写简洁、可读、可测试的Go代码。此外,我们还会加强星友之间的交流和互动。欢迎大家踊跃提问,分享心得,讨论技术。我会在第一时间进行解答和交流。我衷心希望Gopher部落可以成为大家学习、进步、交流的港湾。让我相聚在Gopher部落,享受coding的快乐! 欢迎大家踊跃加入!

317bf34e20ac474bdfcc8492ec21ba7d.jpeg5469df499ec1e5141acbf4fdbf66f296.png

0e6de606e263d23a077a50daf02d97e5.png99e1913d0a63861fb206ae5f947a0694.jpeg

著名云主机服务厂商DigitalOcean发布最新的主机计划,入门级Droplet配置升级为:1 core CPU、1G内存、25G高速SSD,价格5$/月。有使用DigitalOcean需求的朋友,可以打开这个链接地址[11]:https://m.do.co/c/bff6eed92687 开启你的DO主机之路。

Gopher Daily(Gopher每日新闻) - https://gopherdaily.tonybai.com

我的联系方式:

  • 微博(暂不可用):https://weibo.com/bigwhite20xx

  • 微博2:https://weibo.com/u/6484441286

  • 博客:tonybai.com

  • github: https://github.com/bigwhite

  • Gopher Daily归档 - https://github.com/bigwhite/gopherdaily

305ccebe8a83f5395b1c64fab43e65e8.jpeg

商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。

参考资料

[1] 

Russ Cox“退位”,Go语言将迎来新领袖,未来将如何发展: https://mp.weixin.qq.com/s/2Sy6K_dU1j3tZZiyyfCTDQ

[2] 

Gopher Daily增加了官方邮件列表: https://tonybai.com/2023/08/06/gopherdaily-revamped/

[3] 

Gopher Daily主页实现邮件订阅: https://gopherdaily.tonybai.com/subscribe

[4] 

RSS Advisory Board: https://www.rssboard.org/rss-specification

[5] 

RFC 4287: The Atom Syndication Format: https://datatracker.ietf.org/doc/html/rfc4287

[6] 

Go http handler: https://tonybai.com/2021/01/08/understand-how-http-package-deal-with-keep-alive-connection

[7] 

标准库的xml包: https://tonybai.com/2020/06/04/the-issue-of-go-xml-package-rewrite-carriage-return/

[8] 

Feed Validation Service: https://validator.w3.org/feed/

[9] 

Gopher Daily的订阅源: https://gopherdaily.tonybai.com/feed

[10] 

Gopher部落知识星球: https://public.zsxq.com/groups/51284458844544

[11] 

链接地址: https://m.do.co/c/bff6eed92687

  • 19
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值