如何在 CSS 中发布 features/refactoring 的 'soft'?
How to do a 'soft' release of features/refactoring in CSS?
本题涉及工作流和.css结构。
tl;dr
我正在寻找重构和重组我的 css 的最佳实践,以便不同的团队可以使用相同的文件,但不会影响其他团队的网站外观。
深度讲解
我在一家大公司工作,有一个很大的 "eCommerce" 部门(超过 1000 名员工)。我是第一个在这里工作的 Webdesigner,我继承了 Java 开发人员 CSS 5 年多的经验。我们有 3 个大团队在他们的网站区域使用相同的 CSS。
我受雇为我们的电子商务解决方案的所有领域带来相同的外观和感觉。这意味着我必须重构很多代码(我猜大约 90%)。我将举一个使用 tables:
的例子
<table class="company-table team-table static-table"></table>
这让我重构 CSS 的工作变得非常困难。我只想总结 one "static" table 中的 table 以供所有团队使用。我可以查看所有 table 并在 class
中重构它们
static-table
这种方法的问题在于每个团队都将此 class 与其他 class 结合使用,这会对 table 进行更改,甚至可能会覆盖重构的class.
每个团队都有不同的冲刺和发布,它们并不同步。我可以要求团队将他们的工作与我的同步。但这不会发生。
我的想法是做一个全新的class,eg:
company-static-table
在这个新的 class 中,我将放置 table 的所有属性:
.company-static-table {border-radius: 0.5em; padding: 1em; ... }
然后我可以告诉团队有一个新的静态 table class 并且他们有(例如)5 个冲刺来实施新的 class。这样我就允许他们在最适合他们的时候添加更改。
如果 table 永远保持不变并且在任何地方看起来都一样,这会很好用。但可能是(例如)我们需要在网站的某个区域(不同的团队)使用不同的填充。我的解决方案是:
.company-static-table { ...
.team-a-table {
padding: 0.5em;
}
}
...好吧,但这又要从问题开始了。这会好一点,因为现在有 4 个或更多 css classes 的对象可以重构为一个。这样我可以将 classes 的数量减少到最多 2 个。
很明显我不能改变他们的工作流程。我不想开始为每个团队提供 CSS。
这对我来说是一个巨大的挑战,我只有 2 年以上的经验,没有同事或老板是网页设计师。我已经破坏了很多试图重构代码的元素。
请提供任何帮助都很棒。我有将近 20k 行(编译时)css 需要重构。我不想开始某个方法只是为了发现这是一个坏主意...
感谢任何输入
对此(以及我所做的)的最佳回应可以在这个视频中看到:
https://www.youtube.com/watch?v=iDhj92tPjYU(从 24:25 开始)
简而言之:制作同时存在一段时间的并行版本,并使用 CSS 文件更改 new 版本以适应变化仍然保持相同的旧结构。
希望这个回答能对其他人有所帮助。
本题涉及工作流和.css结构。
tl;dr
我正在寻找重构和重组我的 css 的最佳实践,以便不同的团队可以使用相同的文件,但不会影响其他团队的网站外观。
深度讲解
我在一家大公司工作,有一个很大的 "eCommerce" 部门(超过 1000 名员工)。我是第一个在这里工作的 Webdesigner,我继承了 Java 开发人员 CSS 5 年多的经验。我们有 3 个大团队在他们的网站区域使用相同的 CSS。
我受雇为我们的电子商务解决方案的所有领域带来相同的外观和感觉。这意味着我必须重构很多代码(我猜大约 90%)。我将举一个使用 tables:
的例子<table class="company-table team-table static-table"></table>
这让我重构 CSS 的工作变得非常困难。我只想总结 one "static" table 中的 table 以供所有团队使用。我可以查看所有 table 并在 class
中重构它们static-table
这种方法的问题在于每个团队都将此 class 与其他 class 结合使用,这会对 table 进行更改,甚至可能会覆盖重构的class.
每个团队都有不同的冲刺和发布,它们并不同步。我可以要求团队将他们的工作与我的同步。但这不会发生。
我的想法是做一个全新的class,eg:
company-static-table
在这个新的 class 中,我将放置 table 的所有属性:
.company-static-table {border-radius: 0.5em; padding: 1em; ... }
然后我可以告诉团队有一个新的静态 table class 并且他们有(例如)5 个冲刺来实施新的 class。这样我就允许他们在最适合他们的时候添加更改。
如果 table 永远保持不变并且在任何地方看起来都一样,这会很好用。但可能是(例如)我们需要在网站的某个区域(不同的团队)使用不同的填充。我的解决方案是:
.company-static-table { ...
.team-a-table {
padding: 0.5em;
}
}
...好吧,但这又要从问题开始了。这会好一点,因为现在有 4 个或更多 css classes 的对象可以重构为一个。这样我可以将 classes 的数量减少到最多 2 个。
很明显我不能改变他们的工作流程。我不想开始为每个团队提供 CSS。
这对我来说是一个巨大的挑战,我只有 2 年以上的经验,没有同事或老板是网页设计师。我已经破坏了很多试图重构代码的元素。
请提供任何帮助都很棒。我有将近 20k 行(编译时)css 需要重构。我不想开始某个方法只是为了发现这是一个坏主意...
感谢任何输入
对此(以及我所做的)的最佳回应可以在这个视频中看到:
https://www.youtube.com/watch?v=iDhj92tPjYU(从 24:25 开始)
简而言之:制作同时存在一段时间的并行版本,并使用 CSS 文件更改 new 版本以适应变化仍然保持相同的旧结构。
希望这个回答能对其他人有所帮助。