写CSS,怎么知道自己的代码很烂?

(预先说明,我下面的回答主要是考虑到面向初学者的一些思路性的说明,因此请各路大神不要来纠缠我说的不够全面之类的,太全面了初学者也消化不了)

嗯,你这个问题其实可以引申到所有的编程活动中去,一个初学者,如何判断自己的代码究竟是好还是不好,如果把代码的味道从0分到10分来打分的话,又应该打几分?

首先,关于什么是好代码,在很多时候是有争议的,大多数语言社区都有好几个同时流行的代码风格,然后在一些细节上,更是分歧无数,因此一段代码,给A看,可能打9分,给B看,可能就只能打8分了。

那么,是不是就完全没法判断了呢?答案是否定的,如上的例子,虽然A和B会给出不同的分数,但我相信A只打5分的代码,B绝对不会给到6分以上。基本上来说,对代码味道的分歧,基本上只会在8分以上的代码中才有意义。

那么,怎么判断呢?说细了,可以写出一篇大论文来,但简单的说,其实主要就是两个标准:

可读性与可维护性

应对变化的能力(叫啥性来着?脑袋卡住了想不出这个词来了。。。)

就第一条来说,并不是说可读性高容易读懂的代码就一定好维护,但反过来,好维护的代码一定是容易读懂的,谁都读不懂的代码谁也没法维护不是?至于如何提高可读性,如何提高可维护性,我这里懒得展开了,大把的文章在谈这个。初学者囿于能力,的确经常很难写出足够可读的代码,我曾经有好几次将手下写的洋洋洒洒几百行的代码清理成二三十行简单代码的事情,这个一方面取决与经验的积累,另一方面,其实也是工作态度的问题,当你用几百行代码解决了一个问题之后,你有没有回过头再想一遍,你是不是把问题想复杂了?就我个人来说其实也是一样,在解决某个不熟悉的问题的时候,刚开始可能会脑洞大开,洋洋洒洒写下好几百上千的代码,但真的完成之后,自己对这个问题从整体上有了更好的把握之后,通常第二步就是着手简化代码。而对于熟悉的问题,通常来说,那洋洋洒洒几百行代码会先在脑海里一闪而过,等打开编辑器开写的时候,就可以直接从第二步开始简化代码了。

第二条,应对变化的能力,这个是初学者最难把握的,因为就可读性来说,老实说,初学者真要写出很复杂的代码后,他自己多半也是清楚的,虽然没有能力将代码简化,但“代码很复杂”这个认识一般还是有的,但应对变化的能力,这个很多时候其实跟经验有关的,对于有经验的开发者来说,很容易预见到代码将来可能的发展方向并预先做一些准备,并且,很容易在预先做准备与开发成本之间找到合理的平衡点。但对初学者来说,首先最大的挑战就是,我怎么知道这个代码将来会变成什么样子?其次就是如何在应对变化和现实的开发成本之间取得最优的平衡。这个一方面是经验的积累,另一方面,其实也还是取决于你的想象力,你要在编程的过程中不停的问自己,这个需求会不会变化,我将这个变量声明成整数,将来有没有可能它会在业务上需要用一个字符串来代表?我在这里声明了一个数组,将来有没有可能这个数组会变得很大,因此内存会不够?哦,就题主说的前端的代码,可以举一个初学者常见的错误来解释你应该如何想象你的代码,比如你定义了一个css class名字叫red-ttile,作用是将标体的字体颜色设为红色,当你写下red-title的时候,你就应该问自己,将来我会不会需要将title的字体变成绿色?是到时候将red-title改成green-title好还是一开始就不要将颜色定义到class name上去。这个例子很浅显,大多数教授css的教材也都会强调这一点,要面向业务对象定义类名而不是实际的式样来定义,理由就是我这里提到的,应对变化的能力了。

最后的结论就是,对于初学者来说,如何判断自己的代码写的好不好呢?第一,反复的问自己,有没有更简单的办法?第二,开脑洞,想象一下你的需求变更后你的代码怎样才能跟上形势。

时间: 2024-09-18 13:34:49

写CSS,怎么知道自己的代码很烂?的相关文章

有一个问题我一直很疑惑,一个软件系统是先有文档呢还是先有代码呢,一个UI前台界面是先写js呢还是先写css呢?

问题描述 有一个问题我一直很疑惑,一个软件系统是先有文档呢还是先有代码呢,一个UI前台界面是先写js呢还是先写css呢? 解决方案 一个软件系统是先有文档呢还是先有代码呢?应该是现有文档.这里文档的概念太宽泛,应该说明的是什么文档,细化到什么程度的文档.我们再撸起袖子准备开发一个软件系统的时候,首先得知道的是要开发什么(需求文档),怎么开发(设计文档).注意的是,这里并一定非得把需求文档写的多么细致,考虑每个业务分支逻辑,也不需要将设计文档细化到某个模块的时序图是怎么样的,逻辑判断是怎么样的.因

CSS 黑魔法小技巧,让你少写不必要的JS,代码更优雅

之前不久,由于自己平时涉猎还算广泛,总结了一篇博客: 这些JavaScript编程黑科技,装逼指南,高逼格代码,让你惊叹不已 ,没想到受到了大家的欢迎,有人希望能博主还能整理个 CSS的一些黑魔法小技巧,无奈我 CSS 一直很渣,没什么干货,最近写了一个 Chrome 插件 GayHub,算是把 GitHub 的样式审查了个变,在写的过程中,也收获了很多关于 CSS 的小技巧,尤其是开始的第一个技巧,学习到了很多,于是再加上一波搜集,就诞生这篇博文,欢迎补充~~~:joy:. 1.利用 CSS 

关于JAVA的Comparable类不是很理解,写了一个有关比较的代码,但出现了异常,大神帮我看看

问题描述 关于JAVA的Comparable类不是很理解,写了一个有关比较的代码,但出现了异常,大神帮我看看 关于JAVA的Comparable类,我不是很理解,于是,我写了一个有关比较的代码,但出现了异常,大神帮我看看 解决方案 需要实现Comparable接口 Comparable implements Comparable 解决方案二: 首先,Java的array的sort方法要求传入的集合元素必须实现Comparable或者Comparator接口,其次,主要就是提供compareTo方

input标签写CSS时需要注意的几点

飞鱼的声纳顶部的搜索框让我头疼了很长时间,原因是总不能获得跨浏览器的统一样式.主要的问题有这么两个:一是input标签的高度不能统一,Firefox和IE中的高度始终不能一致;二是在IE浏览器中属性为text的input标签中的输入文字不像标准浏览器中的那样垂直居中显示,而是靠输入框的左上角显示. 为了彻底解决搜索框的这些问题,我以GreenGaint主题搜索框的样式为准,重写了一遍代码并且以像素为单位测量了一下在没有任何样式表的情况下<input>标签在默认浏览器中的实际差别. 结果发现:i

CSS实战:写CSS样式表的参考标准实战

文章简介:点分离(SoC).他已经让我们接受膨胀.报废.冗余.缓存甚至更多.现在,我确信唯一的方法是远离这一原则来改善我们的作者样式表. 当谈到CSS,我相信神圣的原则--点分离(SoC).他已经让我们接受膨胀.报废.冗余.缓存甚至更多.现在,我确信唯一的方法是远离这一原则来改善我们的作者样式表. 对于从未听说过SoC原则在Web设计中的上下文,它涉及到一些俗称"三层分离": 结构 表现 行为 为了避免一些担忧,将它划分成独立的资源:一个HTML文档,一个或多个样式文件和一个或多个Ja

新手写css常犯的8个错误

再牛逼的高手也会犯这样的错误,因为当页面结构很复杂,嵌套很多层的时候,很容易搞丢关闭标签. 刚接触css的时候比较茫然,很多时候不知道如何开始,如何下手.拿到一个效果图,很多问题,困扰我们,怎样布局?绝对定位还是相对定位,选择什么标签?采取怎样的结构..等等..当然在写代码的过程中,会遇到很多问题,尤其是我们新手,对各方面只是不是很了解,更缺少经验,遇到问题常常手足无措.我想,我们在遇到问题的时候,要学会总结,避免下次再遇到还是犯相同的错误. 下面是自己在工作中,总结的一些容易犯的错误, 和解决

初学:网页制作是先写HTML还是先写CSS?

css|初学|网页 CSS文件先准备 还是先写好HTML文件?网上有很多种答案:先写HTML后写CSS:先写CSS后写HTML:两者同时写. 我的准则是先写HTML打好基础,然后再写CSS进行表现的控制! 对于初学者我建议两者一起写,先写CSS或者先写HTML对于初学者都不是恰当得的方法. 如果让一个人编写代码,你告诉他先写HTML,写完后 HTML不能修改了,然后你写CSS,如果他可以写出来,那这个人一定是一个水平非常高的Builder了!所以对于初学者,多数情况下我建议同时编写,具体我说一下

不要再在JavaScript中写 CSS了

本文作者是 react-css-modules 和 babel-plugin-react-css-modules 的作者.并不是对 CSS in JavaScript: The future of component-based styling,或是使用样式组件的反对,而是一种补充,web 开发者要了解自己的需求,明白自己使用 styled-components 的真正原因. 9 个谎言 CSS 不应随意放置.许多项目选择将样式写在 JavaScript 中的理由不对.本文列出了常见的误解,以及

css样式表如何进行代码压缩

css代码优化作用与意义 1.减少占用网页字节.在同等条件下缩短浏览器下载css代码时间,相当于加快网页打开速度 2.便于维护.简化和标准化css代码让css代码减少,便于日后维护 3.让自己写的css代码更加专业. css优化方法-需要优化css代码地方 1.缩写css代码. 2.排列css代码. 3.同属性提取共用css选择器. 4.分离网页颜色和背景设置样式(较大站点需要注意). 5.条理化css代码. 实例讲解以上几点div css优化方法 1.缩写css代码 常用需要缩写css属性代码