为什么开发人员不喜欢 CSS?

为什么开发人员不喜欢 CSS?

Peter Griffin — American Dad

Peter Griffin — American Dad

对我来说,写我的第一篇关于这个流行短语的 Web 集成文章似乎很明显:

“我不喜欢 CSS”

谁以前没有听过或说过这句话?

老实说,每次听到它,我都想回答我们喜欢我们掌握的东西。

一种“真正的”语言?

我建议我们解构这个公认的想法:

“CSS 不是编程语言”

SPOILER:是的,CSS 是一种编程语言(HTML 也是如此)。

让我们退后一步,回到基础:
什么是编程?编程就是向计算机发出指令,告诉它们按照我们的意愿做什么。这些语言仅用于提供这些指令,它适用于计算机而不是人类。并且有充分的理由:如果不解释语言,我们的网站将只显示 HTML 标记序列和 CSS 行。

它也不是一种自然语言:它不是用于人与人之间的交流,而是用于程序。诚然,它需要一个浏览器来解释,但任何语言都需要它的支持才能运行。

“CSS 不是图灵完备的”

图灵完备性意味着能够执行与图灵机相同的动作。如果 CSS 确实不是 图灵完备 单独(就像 HTML 和 SQL 语言一样),结合 HTML 和人类交互,我们可以用它来编码著名的 规则 110 ,从而得到图灵完备集。

旨在与 HTML ( 特定领域 ),它向 Web 浏览器指示了许多行为(颜色、动画、过渡、定位、事件……)

然后是一种真正的语言,它提供的所有可能性使我们能够创建不仅美观,而且实用且易于访问的界面,这些界面是为人类设计的。

级联

使 CSS 与其他语言如此不同的是级联概念带来的优先级。

除了浏览器读取代码行的顺序之外,还有几个元素会影响规则的编写方式:与 HTML 标记的接近程度、选择元素(类、id、状态)的精度,甚至一些关键字如 !重要的 .

“CSS 很难”

这种语言是声明性的,因此不可能控制其显式执行顺序(既不是循环也不是条件)。它的规则由浏览器线性执行(逐行)并隐式执行。在没有预处理器的情况下使用 SASS 或者 较少的 ,它不包括对象类、命名空间,也不可能编写自己的函数……因此,与 Python 等通用的显式或动态语言相比,它会不会更难使用?

让我们添加一个事实,即与 JavaScript 之类的语言相比,它的发展并不频繁。因此,花最少的时间学习级联、优先级、选择器和定位的概念就足以让您对样式表感到满意。

在专业环境中,我很快注意到后端开发在许多人中引起了更多的声望。确实,在将设计时间花在架构和设计模式上或解决复杂的错误之后,偶然发现页面中元素的位置是令人沮丧的……但同样,优先考虑创建应用程序的步骤是一种耻辱。

UI 和 UX 的重要性已经确立,无论是出于可访问性、品牌形象还是在我们的应用程序上产生流量的原因。我们越掌握我们的工具,就越容易实现这些目标。

掌握原力

另一个可以解释 CSS 遇到困难的原因来自于我们专业的初始培训。

以我的经验,学习 CSS 是在教授代码的过程中以闪电般的方式完成的。在某种程度上,这是可以理解的:有很多重要而复杂的概念需要学习,但很遗憾错过了创建网站的关键步骤之一。知道使用这种语言的进展印象非常快且非常愉快:需要简单的刷新来检查我们的工作结果。

然后,并非所有项目都需要开发具有图形界面的应用程序。对于针对内部企业用户的项目,像 Bootstrap 这样的预制 UI 工具包通常就足够了。许多使用 WordPress 制作的公共网站都是基于社区提供的优秀主题。

取决于业务领域,定期面对 CSS 并因此取得进展并不容易。而且,当您必须编辑一些由不掌握该语言且不受其工具驱动的人编写的代码时,通常会令人沮丧并且匆忙完成。

因此,它是代码中技术质量低的地方,而我们需要可维护和可扩展的应用程序。正如文中所写 敏捷宣言 “持续关注卓越的技术和良好的设计可提高敏捷性。”和 软件工匠宣言 “不仅是工作软件,而且是精心制作的软件”。就这样。

高贵的艺术

一般来说,当我说我是一名开发人员和网络集成商时,并没有给人留下太多印象。充其量,它可能会给一些人带来解脱,因为我可以潜在地帮助团队的其他成员处理可怕的 UI 错误票。

Meme où le héro Captain America annonce faire du CSS et est violemment attrapé par les autres représentants de langages

Credits @Geoffrey Dieffenbach

另一方面,当我说我是“全栈”开发人员和 CSS 专家时,我注意到它激发了更多灵感。然而我已经听说了:

“整合、色彩、设计,这更像是女人的事”

这种关于理解颜色和创建“性感”界面的刻板印象并不新鲜,但仍然存在:在业务端开发应用程序比在 UI 端开发应用程序更有价值(和男性化),甚至集成其设计。

这一点值得单独写一篇文章,但我认为这是将开发的一部分的重要性和价值优先于其他部分的另一种尝试。

“我不想仅仅为了放置一个按钮而头疼”

在困难的印象和归因于语言的缺乏高贵之间存在一个悖论。它既太简单而不能被认为是一种编程语言,又太难于享受。

有些人犹豫甚至删除了他们简历中提到的 HTML 和 CSS。这是真实的:

Spiderman victime de moquerie d’un autre homme quand il répond développer en HTML et CSS

Exemple d’entretien technique 😄

总而言之:CSS 是一种声明性和特定领域的语言,它的复杂性太低了,但太复杂了。然而,我向你保证,它不仅非常有用,而且:

Logo CSS is awesome avec le texte qui dépasse du cadre

Bold statement

谁说编程语言说干净的代码。然后我们可以解决调试、linter、架构、优化、预处理器的概念……但那是以后的文章;)

我绝对想向您展示编写出色应用程序的所有这些潜力、最佳实践和技巧。
所以,在我的社交网络上关注我,这样你就不会错过任何事情。

其他来源

简介——“HTML 是一种编程语言吗?”
https://briefs.video/videos/is-html-a-programming-language/

Lara Schenck — CSS 是一种声明性的、特定于领域的编程语言
https://notlaura.com/css-is-a-programming-language/

Lara Schenck — CSS 图灵完备吗?
https://notlaura.com/is-css-turing-complete/

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/38730/06362310

posted @ 2022-09-23 10:07  哈哈哈来了啊啊啊  阅读(46)  评论(0编辑  收藏  举报