如何模块化Web应用程序?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (12)

我想知道大公司如何倾向于在他们的页面上模块化组件。Facebook是一个很好的例子:

有一个团队在Search上有自己的CSS,javascript,html等。 有一个团队正在处理新闻Feed,它有自己的CSS,javascript,html等等...... ... 而这样的例子不胜枚举

他们不可能都知道每个人都在命名他们的div标签什么的,那么控制器(?)在最终页面上将所有这些组件挂钩在做什么?

注意:这不仅适用于Facebook - 任何拥有独立组件的团队都有一些逻辑可以帮助他们。

提问于
用户回答回答于

Web开发必然带来一些组织上的挑战。HTML / CSS并不完全是分裂工作的理想环境。定义某些规则并严格遵守它们是非常重要的。

我接触到的个人策略是在共享源代码(如CSS或标记组件)前面添加一些模块后缀。如果你坚持这一战略,它将在全球独一无二。

例如:

代替

div.question_title
div.question_body

你可以使用

div.so_question_title
div.so_question_body

div.su_question_title
div.su_question_body

同时与团队就颜色方案的颜色等共享数据达成一致。在全球范围内定义它们并在任何地方重复使用。

当团队在同一页面的不同部分工作时,还会出现另一个问题。在这里,如果你正在开发一个页面组件,你可能会发现有一天某些东西被破坏了,因为在页面上工作的人本身改变了一些东西,并且改变了元素层次结构。

例如,如果你以这种方式定义CSS样式:

div.main_news *
{
    /* ... */
}

它会要求麻烦。我建议你有一个规则,用尽可能小的范围来定义CSS样式,这对于某些技术来说是足够的。

一种可能的解决方法:每个子模块首先重置顶级层次结构元素的所有样式,如:

div.news_container
{
    /* Reset styles */
}

以便你现在可以在模块上工作,确保某些父元素的更改会在你的边界停止。

用户回答回答于

我们使用一些技术来保持管理层的一致性:

  • 维护开发人员的工具以通知其余人员。这包括Wiki,内部讨论论坛等。
  • 有足够的中层管理人员。没有任何人可以意识到所有事情,但是对于一个人来说,意识到他所处的一切是有意义的。这样,用户管理组可以与安全组同步,并且安全组可以与内容管理组同步。这个中层管理人员的任务是充分了解所有事情,不需要知道每一个细节,只需将知识传递给它就足够了。
  • 如果你认为合适的话可以增加水平,但是在每个级别都应该有一个人查找每个人所做的或多或少的相同的事情。如果两个小组以完全不同的方式做事,他将负责发出警报。
  • 保持良好的信息流。制定标准非常重要,但是如果你想保持严格的操作,那么通过代码修改和每周会议就可以让人们真正了解他们退出是否更好,并确保他们使用它们。

我知道很多人不喜欢“管理”。他们认为是一个无所事事的额外层。那么,这是不正确的。管理层有助于解决像这样的问题。帮助沟通大型团队并对所发生的事情有一个全面的了解......有许多“技术”来定义一个关于如何做事情的标准......当没有人确定时,所有这些技巧都会失败人们遵循知识并遵循这些标准。

扫码关注云+社区