Closed. This question is opinion-based。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
                        
                        4年前关闭。
                                                                                            
                
        
在过去的几周中,我一直在研究html / css,现在正尝试使用DRY原理(以及SMACSS / OOCSS / BEM)优化代码。我相信我对这一切有一个不错的了解,但是我仍然不清楚一件事。

DRY原则是否应该100%地适用?举例来说,假设您的文字转换为大写;被应用于两个不同的类。根据DRY原理,您将从每个单独的类中删除规则集,并将其放在两个类的逗号分隔列表下。但是过了一会儿,这是否会使您的样式表变得一团糟,在同一个表中多次声明每个类?还是表的外观真的不重要,因为如果需要将来进行任何更改,只需在搜索框中搜索“大写”即可?

在这种情况下,您似乎无法获得任何性能改进。是的,您将要从工作表中删除一个属性,但是您还将添加一个全新的规则集并重复类名。

我知道可以根据喜好和每个项目采用任何一种方法,但是我更担心哪种方法最有效(尤其是在构建大型复杂站点时)。我希望在以后的所有项目中保持一致。

有什么指导方针吗?例如,如果要删除的属性数量大于X,也许仅合并重复的代码?还是仅在语义上相关时组合重复的代码?

最佳答案

如果您针对可维护性进行了优化,而不是严格遵循任何特定的教条,那么在之后阅读您的代码的程序员将感谢您。

请不要误会。 DRY很重要,但是您应该通过简单的健全性检查的变体来调整它(或任何其他设计模式):“这有意义吗?”。在DRY的情况下,这可能与“这些内容真的相关吗?”类似。

如果答案是“是”,则强烈暗示如果其中一个类将删除text-transform:uppercase;,另一个也将删除它。

如果答案为“否”,那么实际上会使以后维护起来更加困难,因为您需要取消两个类之间的人为耦合。

在这种情况下,简单地拥有一个使用特定属性的类的洗衣清单是伪造的DRY,因为您肯定是在重复自己。重复只是从属性移到了类。

关于html - DRY原理的精确性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28179649/

10-09 14:10