为什么所有人都对 HTML、CSS 失望了?

640?wx_fmt=gif

640?wx_fmt=jpeg

作者 | Rachel Andrew,Web 开发者

译者 | 罗昭成

责编 | 沭   七

出品 | CSDN(ID:CSDNnews)

所有的人再一次对 CSS 失望。我不打算去总结这些让人失望的点。事实上,CSS 太容易被覆盖修改,如果要让它实时生效,你需要将它用 JavaScript 包裹起来。你可以在《The Great Divide》文章中看到更好的思路。

在我们的技术栈中,有关于工具、框架和技术相关的描述。我在前端和 Web 服务端工作了将近 20 年,我看到它们在不停地转换。事实上,标准的技术有它自有的局限性,当我们遇到问题,我们会想办法解决问题。通常,我们会抛弃旧的东西,使用新的方法来解决问题。旧的东西很糟糕,当我们找不到更好的东西时,我们会用我们的知识,发明新的轮子,让工作更轻松。

我们在数据领域可以看到,人们通常会避免使用关系数据库来完成需求,尽管你是真的需要关系数据库。

我们可以看到以静态页面驱动的网站,经常会将速度与缺乏数据库混为一谈,并且最终会在文件系统中创建数据或者依靠大量的第三方插件来填充原需要使用传统 CMS 处理的内容。

在上述两种场景中,都可以使用关系数据库管理系统来实现,静态页面可以更好的适配待发布的内容。这是一个针对特定问题的最佳实践。然而,在很多情况下,采用新技术或其它技术会让项目陷入混乱 ,最终必须花费昂贵的代价进行重构/重写。

以前稳定运行的轮子,需要我们去改造。我们乐观的希望有更好的东西来替换这些旧的东西,但并没有,而是一团糟。由于使用了新的技术栈,只有少数人了解他,整个团队没有人能修复项目中的问题。企业交给外包公司开发的网站,所使用的技术会很快的落伍,当企业想升级网站时,下一个外包公司就会建议重建网站。

然而,当我们谈论到构建围绕 HTML 和 CSS 的框架时,不得不让企业抛弃之前几年工作创建的内容,并且,有一些使用不当的框架,无法兼容。

以上我们谈论的 HTML 和 CSS ,都会影响职业的切入点。无论是前端还是后端,我们中的很多人并没有计算机科学的专业背景,HTML 和 CSS 入门很简单,很方便就能够看到自己的代码在网页上显示,这个很神奇。我们已经失去了很多切入点,现在没有人在论坛上教授 HTML 和 CSS 如何去制作家庭相册。这些人现在开始使用 Facebook ,或者使用 wordpress/SquareSpace 创建的标准博客。我们没有他们的个人主页,也没有通过 Neopets 来学习 HTML 。现在很少有人进入这个行业,尤其是女性,因为管理网站现在被认为是管理员的职责,并且需要学习 HTML。

对于非传统教育毕业的人,切入点就是培训班。培训班通常教授的是框架式开发方式,让学生们学习这些技术,并快速的找到工作。在这些培训的人中,我发现他们有一个共同的问题,他们的基础知识薄弱,如果把这些新人招募进来,并把他们放在不能填补基础知识的环境中,就会对他们造成极大的伤害。因为我的 HTML 和 CSS 基础知识扎实,所以我能很快的适应各种不同的网站构建方式。从以前的经验中,我能很轻松的掌握建立在他们之上的工具并且快速切换。

值得注意的是,在过去的 20 年里,我们创造了所有的东西,我依然可以使用简单的 HTML 和 CSS 教导一个初学者,并且让他们能够在一天内使用 HTML 和 CSS 创建一个简单的网页。我们不需要谈论框架和工具,如何发送请求,如何通过 npm 将代码库拉到本地并运行。我们只需要一个文本编辑器,和几个小时。将我们要显示的内容显示到网页上。

如果您在项目中遇到了问题,并且有解决这些问题的方案,或者可以使用 JavaScript 解决这些问题,非常好!我们很多从事 CSS 工作的人都想要听到你的建议。如果,你告诉我,你并没有深入学习过 CSS,在你要替换他们时,你想听取我的建议,我并不能给你实质性的建议,因为我不知道你最开始使用的是什么框架。也就是说,我无法帮助你建立我不了解的程序。

我或许是一个“老古董“程序员,但如果这让你认为我无法学习 React 或者其它框架,那么你错了。如果是 22 岁的我,看到那些东西,我也会逃跑。如果我们要学习这些,你必须开始理解编程,我们采取一些开放式的方式,并将其放在已经享有特权的人手中,让足够多的人支持我。

英文原文:HTML, CSS and our vanishing industry entry points

链接:https://rachelandrew.co.uk/archives/2019/01/30/html-css-and-our-vanishing-industry-entry-points/

本文为 CSDN 翻译,如需转载,请注明来源出处。

【END】

 热 文 推 荐 

☞ Python 爬取了猫眼 47858 条评论,告诉你《飞驰人生》值不值得看?!

☞ 如果我回腾讯上班

☞ 微信说不!有何不可?

☞ 移动互联网“大开放”之死

☞ @程序员,沟通这项核心技能你掌握了多少?

年薪 10 万的程序员,如何积累人生的第一个 100 万?

新鲜出炉,Python 告诉你程序员最关注的技术竟然是……

☞ BAT 鼎立格局被打破,2019 年这些互联网公司是程序员跳槽首选!

☞ 微信帝国进化史:一个通讯工具如何在八年内制霸互联网?

程序员如何用“撞针“拯救 35 亿地球人?

我是如何 6 天面试了 6 家硅谷顶级公司并拿下了 6 份 Offer 的?

print_r('点个好看吧!');
var_dump('点个好看吧!');
NSLog(@"点个好看吧!");
System.out.println("点个好看吧!");
console.log("点个好看吧!");
print("点个好看吧!");
printf("点个好看吧!\n");
cout << "点个好看吧!" << endl;
Console.WriteLine("点个好看吧!");
fmt.Println("点个好看吧!");
Response.Write("点个好看吧!");
alert("点个好看吧!")
echo "点个好看吧!"

640?wx_fmt=gif点击“阅读原文”,打开 CSDN App 阅读更贴心!

640?wx_fmt=png喜欢就点击“好看”吧!
展开阅读全文

对.net 2.0失望失望失望失望失望

11-10

刚听到泛型啊(自以为能用上C++的模版功能了),操作符重载啊,类型转换重载啊,我是那个激动啊兴奋啊,心想.net的语法终于拨云见日可以和c++媲美啦。哪知道 一用才发现~~~~~~rnrn写个类叫TestClassrnrn Public Shared Widening Operator CType(ByVal tc As TestClass) As String rn return "爽爽爽"rn End Operatorrnrn--------------------------------------------------------------------------------------rn做个测试rndim s as string rndim tc as new TestClassrns=tcrnrn编译pass,执行passrn爽了一把rnrn--------------------------------------------------------------------------------------rndim s as stringrndim obj as objectrndim tc as new new TestClassrnobj=tcrns=objrnrn编译通过rn执行rnUnhandled Exception: System.InvalidCastException: Conversion from type 'TestClasrns' to type 'String' is not valid.rn at Microsoft.VisualBasic.CompilerServices.Conversions.ToString(Object Value)rnrn操!!Conversion from type 'TestClass' to type 'String' is not validrn明明可以转换,却说无法从TestClass转为String,睁眼说瞎话啊rn--------------------------------------------------------------------------------------rnrnrn受了一个小打击,算了,去那个被宣传的神乎其神的泛型上找点安慰吧rn 创建泛型函数rn public sub ShowItem(of ItemType)(byval Item as ItemType)rn dim s as string rn s=itemrn console.writeline(s)rn end subrnrn---------------------------------------------------------------------------------------rndim tc as new TestClassrnShowItem(tc)rnrn编译:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\a.vb(21) : error BC30311: Value ofrn type 'ItemType' cannot be converted to 'String'.rnrn s=itemrn ~~~~rn晕,第一次玩就受打击,Value of type 'ItemType' cannot be converted to 'String'.看来想把不知类型的东东转化为某个类型是不可能的了,即使你重载了装换。rnrn----------------------------------------------------------------------------------------rnrnrn还是玩玩操作符重载吧rnrn Public Shared Operator >(byval a as TestClass,byval b as TestClass) as Booleanrn return truern end Operatorrnrn rn Public Shared Operator <(byval a as TestClass,byval b as TestClass) as Booleanrn return falsern end Operatorrnrn------------------------------------------------------------------------------------rn因为受了刚才的打击,不敢随便玩泛型了rn写个简单的rn sub Test(byval a as object,b as object)rn console.writeline(ctype(a,string))rn end subrnrndim a as new TestClassrndim b as new TestClassrnTest(a,b)rn编译pass,运行pass,不容易,那个操作重载的功能,看来还是有用的rn--------------------------------------------------------------------------------------rn被鼓励了一次,还是不能忘了那个泛型老大啊rnrn public sub Test(of ItemType)(byval a as ItemType,byval b as ItemType)rn console.writeline(a>b)rn end subrnrn这种写法充分体现了模版语法的优势,你可以写个容器,里面放各种类型的东西,同时还可以对其进行排序,比较大小的操作…………(题外话能不能少一点啊~~~~)rnrnOKOK,编译!!!!!!!!!!!!!!rnC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\a.vb(35) : error BC30452: Operatorrn '>' is not defined for types 'ItemType' and 'ItemType'.rn我靠,这都通不过,本人当时顿时傻了5秒钟rnrnrnrnObject都可以过,泛型居然就不行,微软该不会这么弱吧~~~rn为了证明我的想法,把泛型函数改了一下rn public sub Test(of ItemType)(byval a as ItemType,byval b as ItemType)rn dim oa ,ob as objectrn oa=arn ob=brn console.writeline(a>b)rn end subrn本函数简直就是弱智写的,不过我就当一次弱智好了rn编译pass,执行passrn晕泛型本来就是用来提高效率,避免值类型转换为引用类型的装箱操作,如果要这么写,那还有P个优势啊~~~~~rnrn我就测试了这几项,这个net2.0的框架还是从windows update上更新下来的,我只能说好伤心啊,难道是我期望太高了嘛???~~~~ 论坛

没有更多推荐了,返回首页