发布于 2026-01-06 3 阅读
0

过去一周最热门的 5 条开发者评论

过去一周最热门的 5 条开发者评论

这是每周精选的精彩开发者评论,您可能错过了。欢迎并鼓励您使用#bestofdev标签来推广帖子和评论。

@leightondarkins就“您对‘单体架构 vs 微服务架构’的最新看法是什么?”发表了自己的看法

先从单体架构开始,等到出现问题再拆分成服务。

固守一块给你带来痛苦的“巨石”是不明智的。

如果不清楚自己会遇到哪些痛点,就贸然采用微服务也是不好的做法。

通常情况下,细微差别才是最重要的。两者都有优点,也有缺点。至于哪个好哪个坏,完全是主观的。

总的来说,为了扩展规模,将事物逻辑地拆分成较小的部分是个好主意。保持数据隔离也是个好主意。服务之间异步通信又是一个好主意。

请注意,以上内容并非完全属于微服务范畴。您完全可以在不拆分单体应用的情况下实现很多功能。

为了便于理解,我先介绍一下目前的情况:我们需要重写并重新架构一个非常庞大且老旧的单体应用。凭借多年的开发经验,我们已经了解了哪些方面存在问题,因此我们首先要明确哪些部分需要独立运行。我们也知道,我们的交付目标非常远大,技术团队规模庞大(超过 100 人),因此我们需要确保各个团队和服务能够尽可能减少依赖关系,从而实现高效协作和部署。

微服务架构正是为了解决这类问题而诞生的。所以,就像互联网上的猫一样,只要位置合适,我就待在那里。

@chadalen 在《扁平化代码的神奇力量》一书中谈到了守卫条款

这个 if 语句

  if(!isNotUnset) {
    return null
  }
Enter fullscreen mode Exit fullscreen mode

正如你所说,这叫做守卫子句,它是一种减少 if-else 代码块的方法。最终,它能让你的代码更简洁、更易读。

@sidvishnoi为“你(可能)不知道可以用 JavaScript 扩展运算符做的 3 件奇怪的事”这篇文章添加了一条有用的评论

由于扩展运算符的作用类似于使用`String[Symbol.iterator]` ,因此当字符串可能包含 Unicode 字符时,最好使用扩展运算符而不是常规String.prototype.split运算符来拆分给定的字符串
。虽然这并非万无一失,但更好一些。 例如:

"😂👻".split("") // (4) ["�", "�", "�", "�"] <- wut?
[..."😂👻"] //  2) ["😂", "👻"]
Enter fullscreen mode Exit fullscreen mode
Enter fullscreen mode Exit fullscreen mode

Enter fullscreen mode Exit fullscreen mode

所以,如果在面试中被要求用 JavaScript 反转字符串,以下代码可能被认为过于简单:

function reverse(str) {
  return str.split('').reverse().join('');
}
reverse('foo') // "oof"
reverse('𝄞') // "��"
Enter fullscreen mode Exit fullscreen mode
Enter fullscreen mode Exit fullscreen mode

Enter fullscreen mode Exit fullscreen mode

下面这个稍微好一些:

function reverse(str) {
  return [...str].reverse().join('');
}
reverse('foo') // "oof"
reverse('𝄞') // "𝄞"
Enter fullscreen mode Exit fullscreen mode
Enter fullscreen mode Exit fullscreen mode

Enter fullscreen mode Exit fullscreen mode
</div>
Enter fullscreen mode Exit fullscreen mode

@tiguchi提供了一种希望能够让大家都满意的解决方案,以回应🙏 请将 .gitattributes 添加到您的 Git 仓库

还有一种让大家都满意的选项:让用户机器上的 git 安装决定在检出存储库时使用哪种行尾符:

* text=auto
Enter fullscreen mode Exit fullscreen mode
Enter fullscreen mode Exit fullscreen mode

Enter fullscreen mode Exit fullscreen mode

这样一来,就真的没什么关系了,Windows 用户如果愿意的话,仍然可以使用记事本打开他们的文件(我不会评判的😄)。

据我所知,换行符以“规范化”的形式提交到存储库LF,但检出的版本取决于操作系统默认的换行符。

如果某些特定文件类型需要保留行尾符(例如 shell 脚本或 Windows 批处理文件),还可以通过额外的覆盖设置来微调该设置。

另请参阅:help.github.com/en/github/using-gi...git-scm.com/docs/gitattributes

</div>
Enter fullscreen mode Exit fullscreen mode

@steveblue在回复“你会教前端初学者什么?(2020 年)”时分享了一份很棒的清单:

  • HTML:元素、DOM
  • CSS:盒模型、优先级、层叠样式表、变量、SCSS
  • JavaScript:let、const、prototype、function、object、array、class、Promise
  • 使用开发工具进行调试
  • 使用代码检查器
  • Git
  • Web 组件:Shadow DOM、自定义元素、模板
  • XMLHttpRequest,获取
  • Node.js:Express、REST API

下周见,期待更多精彩评论✌

文章来源:https://dev.to/devteam/top-5-dev-comments-from-the-past-week-13ah