展开讨论

经验与复盘经验摘录 · 机器翻译

我在一个没有使用框架的网站上工作,只是在上面加了一点jQuery……

我正在一个没有使用框架的网站上工作,只是在传统的MVC框架上添加了一点jQuery。这在一开始运行得很好,但随着业务的增长,软件变得比一个工程师能记住的要大得多。我们现在有很多需要修复的问题。一个很好的例子是页面加载需要5秒钟,因为它们要做很多事情,然后你提交一个表单,页面重新加载需要5秒钟,但没有UI反馈,所以你会多次点击按钮,因为可能没成功?然后你会得到一个错误,因为第一次操作成功了,但后续操作由于唯一性约束而失败。现在作为用户你会感到困惑:你是否下过订单?你得到了一个错误,但订单也出现在你的历史记录中。嗯。作为工程师,我们很难理解什么在范围内,什么不在范围内。你修改的这个javascript文件只会影响你想要的功能,还是会影响你甚至不知道的另外50个页面?当你在模板中添加一个新东西时,你刚刚造成了多少个N+1问题,跨多少个页面?…

源讨论纯原生网页原帖 685 条评论 · 导入时统计
5

这条内容在回应什么?

父级讨论 · 节选

LO

我认为这条评论是这些对话总是存在完全脱节的一个很好的例子。 一方面,这里有很多人正在构建功能齐全的网络应用,而不是网站,他们的团队有30多人。这些人看到无框架的选项时,会立即提出关于你的无框架设计如何处理他们用例中绝对需要的十几个不同功能的问题,而答案是它不处理这些功能,因为它不需要,因为它只是一个博客。 同时,这里也有很多从未在大型网络应用上工作过的人,他们想知道为什么框架存在,因为显然很容易在没有它们的情况下构建一个博客。 如果我们可以同意网络上拥有各种不同类型的软件,并在讨论时明确我们所谈论的是哪种软件,那会很好。 …

完整原文

社区评论 0

还没有社区评论,来聊聊你的看法。

原讨论中的回复 5

仅展示本次导入中包含的直接回复。中文为机器翻译,可查看英文原文。

SA

说得很对。很多一开始就说“这听起来像一个应用,让我们选择一个应用框架来使用”的人,都是经历过你目前所经历的人。但很难向从未有过同样经历的人有说服力地描述这一点。

完整原文
DE

我同意你对普通网站在面向客户的问题上出现的用户体验不佳的看法。 不过,我对框架如何解决你提到的开发者体验问题很感兴趣: > 你修改的这个javascript文件只会对你想修改的功能产生影响,还是会影响你甚至不知道的另外50个页面? > 当你在模板中添加一个新东西时,你是否导致了跨多少页面的N+1问题? > 数据到底在哪里加载? 这不就变成了 - "修改这个React组件只会对我想修改的功能产生影响,还是会影响其他页面?" - "当在模板中添加一个新组件时,是否会破坏使用该模板的其他页面?" - "数据到底在哪里加载?"

完整原文
ZE

我觉得我永远无法理解,为什么人们会以如此杂乱无章的方式编写代码,以至于不清楚修改某段代码是否会影响其他50个页面的行为。对我来说,这说明代码结构很差,抽象层次不好,可能把太多内容塞进了一个模块中,或者如果语言仍然落后,不支持模块的话,就是塞进了一个文件中。尤其是对于网站来说,渲染页面的路径应该很清晰。有一些奇怪的JS需要菜单功能?那把它放在“menu.js”里吧。它会影响其他50个页面吗?不会,它只会影响菜单。或者,如果你把菜单算作这些页面的一部分,那可能会有影响。有一些视频播放器相关的代码?那它会影响所有有视频播放器的页面。有一些表单相关的代码?那它会影响所有有这种表单的页面。然后还有一些像动画或者复选框状态之类的东西。但我无法理解…

完整原文
LE

一个好的例子是那些需要5秒钟才能加载的页面,因为它们要做太多事情,然后你提交一个表单,页面重新加载需要5秒钟,但没有任何用户界面反馈,所以你会多次点击按钮,因为可能以为它没起作用?然后你就会得到一个错误,因为第一次操作已经成功,但后续操作由于唯一性约束而失败。 至少25年来,标准做法是一旦点击提交按钮就禁用它。如果你作为开发者没有这样做,那你几乎是在自找麻烦,而避免这种麻烦真的非常简单。

完整原文
MI

我会采用向导式(分步骤)的界面和事务处理方式,这与JS框架无关。

完整原文
在 Hacker News 阅读

尊重不同观点,分享具体经验。

登录后即可发帖、评论、转发和引用。