编程

GitLab 打脸“Ruby on Rails 已死”言论:我还在用呢!

Ruby语言曾在2013至2015年期间非常流行,但随后流行度下降。早在3年前就在业界传出过“Ruby及Ruby on Rails已死”的言论,然而时至今日,连GitLab的CEO Sid Sijbrandij都发文表示:Ruby on Rails仍然是GitLab的坚定选择。那么,这项正走向没落技术究竟具有何种魔力?

“两全其美”的Ruby on Rails

Ruby on Rails(官方简称为Rails,亦被简称为RoR),是一个使用Ruby语言写的开源Web应用框架。Rails的设计原则包括“不做重复的事”(Don't Repeat Yourself)和“惯例优于设定”(Convention Over Configuration,因此一经发布便被不少开发者及大厂采用。…

推特的推荐算法

Twitter 旨在为您提供当今世界上发生的最好的事情。这需要一种推荐算法,将每天发布的大约 5 亿条推文提炼成少数几条热门推文,最终显示在您设备的For You时间轴上。该博客介绍了该算法如何为您的时间线选择推文。

我们的推荐系统由许多相互关联的服务和工作组成,我们将在本文中详细介绍。虽然应用程序的许多区域都推荐推文——搜索、探索、广告——但这篇文章将重点关注主页时间线的“为你推荐”提要。

我们如何选择推文?

Twitter 推荐的基础是一组核心模型和功能,它们从推文、用户和参与数据中提取潜在信息。这些模型旨在回答有关 Twitter 网络的重要问题,例如“您将来与其他用户互动的可能性有多大?” 或者,“Twitter 上有哪些社区,其中有哪些热门推文?” 准确回答这些问题使 Twitter 能够提供更相关的推荐。

推荐管道由使用这些功能的三个主要阶段组成:

  1. 在称为候选采购的过程中从不同的推荐来源获取最佳推文。
  2. 使用机器学习模型对每条推文进行排名。
  3. 应用启发式和过滤器,例如过滤掉来自您已阻止的用户的推文、NSFW 内容和您已经看过的推文。

负责构建和提供 For You 时间线的服务称为 Home Mixer。Home Mixer 建立在 Product Mixer 之上,Product

C 语言学习注意点

作者整理了自己学习 C 语言过程的一些笔记,相当于列出了 C 语言一些的学习难点。

学习C对我来说是相当困难的。语言本身的基础还不错,但是“用 C 编程”需要很多其他种类的知识,这些知识并不那么容易掌握:

  • C 没有消除平台或操作系统差异的环境;你也需要了解你的平台
  • 有许多 C 编译器选项和构建工具,即使运行一个简单的程序也需要做出很多决定
  • 通常有与 CPU、操作系统、编译代码相关的重要概念
  • 它的使用方式多种多样,以至于与其他语言相比,集中的“社区”或风格要少得多

C# 11正式发布

C# 11 现已发布。公告称,“随着每个版本的发布,社区的参与度越来越高,贡献了从建议、见解和错误报告到整个功能实现的所有内容。这真的是每个人的 C#。”
新版本中的一些亮点更新内容包括:

UTF-8 字符串(UTF-8 String Literals)

默认情况下,C# 字符串被硬编码为 UTF-16,而 Internet 上通行的字符串编码是 UTF-8。为了最大限度地减少转换的麻烦和性能开销,现在可以简单地为你的 string literals 附加一个u8后缀,以便立即将它们转换为 UTF-8:…

在初创公司使用 Rust:一个警示故事

在某些方面,Rust 很棒。但是,在为需要快速行动的初创公司选择它之前请三思。

我在写这篇文章时犹豫不决,因为我不想开始或卷入一场关于编程语言的圣战。(只是为了摆脱火焰诱饵,Visual Basic 是有史以来最好的语言!)但是我有很多人问我关于 Rust 的经验以及他们是否应该为他们的项目选择 Rust。因此,我想分享一些我在创业环境中使用 Rust 的利弊,在这种环境中快速移动和扩展团队非常重要。

我想明确一点,我在某些方面是 Rust 的粉丝。这篇文章不是关于 Rust 作为一种语言或任何类似的语言有多糟糕。然而,我确实想谈的是,使用 Rust 几乎肯定会对生产力造成重大影响,如果你想快速行动,这可能是一个主要因素。仔细权衡速度影响是否值得您的公司和产品使用该语言带来的好处。

就在前面,我应该说Rust 非常擅长它的设计目的,如果你的项目需要 Rust 的特定好处(一种具有高性能、超强类型、不需要垃圾收集等的系统语言)那么 Rust 是一个不错的选择。但我认为 Rust 通常用于不太适合的情况,团队付出了 Rust 的复杂性和开销的代价,却没有获得太多好处。

我对 Rust 的主要体验来自于在之前的一家初创公司使用它工作了 2 年多一点。这个项目是一个基于云的 SaaS 产品,或多或少是一个传统的 CRUD