[Code翻译]Stack Overflow时代的技术博客

174 阅读5分钟

原文地址:ognjen.io/technical-b…

原文作者:ognjen.io/

发布时间:2021年8月2日

在最近的一个HN主题中,我看到了下面的评论。

对于技术含量高的编程/操作方法或错误修复内容,Stack Overflow对我来说是致命的。

我绝对能体会到这一点。有很多事情我没有写,因为已经有了一个完整的SO答案,有几个备选方案。

但我已经意识到,基于工具的经验或非常具体的使用案例,描述解决方案的技术内容是有空间的。

这种类型的内容与SO的目标受众不一样。它是为更有经验的开发人员提供的,他们正在寻找解决一个非常具体的问题。更有经验的开发人员不太可能首先发布问题,而更有可能黑掉他们自己的解决方案。

对于Stack Overflow来说,这也太小众了,因为它需要大量的时间来研究,而且往往取决于背景。

这里有一些例子。

拼凑起来的解决方案,以适应一个非常具体的使用案例

在很多情况下,Stack Overflow的答案只提供了解决方案的个别部分,你必须把它们拼凑起来,以适应你的使用情况。

随着经验的积累,你就能更好地把这些碎片拼凑起来。

例如,我的博客上有一篇5年多前的文章,描述了如何在Rails上设置活动目录和数据库登录,点击率达到了数千。当我写这篇文章时,Stack Overflow上有几个关于如何设置LDAP登录的答案,但都没有涵盖我的整个用例。

解决方案或你学到的东西,因为你能够阅读源代码或文档

阅读文档和源代码是学来的技能。如果你能做到这一点,并且你想出了解决方案,或者学到了有趣的东西,那么这就值得一写。

例如,我复制了mysql2 gem版本和MySQL服务器的兼容性列表,该列表只在mysql gem的rdoc页面底部以点列表形式出现,而我之前至少错过了三次。

你想出的解决方案,因为你有足够的技能来覆盖或扩展库的一部分

凭借经验,你可以想出修改库的解决方案。这很有帮助,因为这意味着不必在你的代码中单独处理每种情况。相反,库将能够一致地处理它们。

在某些情况下,你甚至可以对原始库做出贡献。

例如,我写了关于覆盖carrierwave_backgrounder gem的preform

你在使用工具时发现的怪癖

当你对工具越来越有经验时,你一定会发现一些不太明显的东西。它们可能被记录下来,但有副作用或不完全是直观的。其他人可能没有意识到这些东西,可能会认为他们的代码有其他问题。一个典型的(但众所周知的)例子是JavaScript的atob和btoa

例如,我发现MySQL不能解析没有日期的yyyy-ww日期格式,当时在文档中没有明确提到。尽管现在的文档确实提到了这一点,但我仍然偶尔会在那个帖子上得到点击。

为新事物提供更好的教程

当新工具发布时,针对初学者的教程往往不是那么充实。所以,如果你喜欢尝试新事物,你也可以为它们编写更好的教程。这可能是完整的教程,也可能只是具体的片段。

例如,当我实验Flutter时,访问共享偏好和消息传递的教程并不是很清楚。他们把几个不同的主题合并到一个教程中,并错过了一些常见的边缘案例。因此,我写了关于在Flutter中访问共享首选项和本地代码消息传递的简单指南。在过去的两年里,它们已经有了成千上万的浏览量。

你自己关于如何做事情的笔记

如果你总是忘记一些简单的事情,其他人也有可能。所以,把事情写下来供你参考是有价值的。

我的第一个帖子是如何在Ubuntu 14.0中添加一个交换分区,虽然它可能不是最受欢迎的帖子,但对我来说仍然很有价值,因为我总是知道该参考什么。

对你有用的模式或最佳做法

随着你的经验越来越丰富,你会想出自己的做事方法,这些方法可能不是公认的最佳实践,但对你来说是有效的。

我的例子是把rails的作用域放在靠近使用的地方,而不是放在上面,还有 "演员模型 "模式

所以,写

所以,如果你想写,有很多内容你可以根据你的经验来创造。写非常具体的情况可能意味着,如果你先到了那里,一个问题甚至最终都不会被发布。


来自Hacker News讨论的有趣的评论

dspillett指出,博客的另一个好用途是作为更清晰地沟通的练习。

LandR说。

我写技术性的东西是为了让自己相信我了解某个主题。我会为自己写一个关于它的教程,期间会问一些完全不懂的人会问的问题,有时候我不知道答案,所以我需要多研究。


www.deepl.com 翻译