为什么每个程序员都应该懂点前端知识?

OneAPM官方技术 OneAPM官方技术     2022-12-09     250

关键词:

【编者按】本文作者为 OneAPM 工程师李哲,文章主要介绍前端知识对于编程的必要性。

这里说的前端知识是比较通俗的前端知识,包括网页,桌面或移动端程序的界面,命令行程序的提示等等,即和用户进行交互的那一部分。我的工作经历中,很多人是不在乎这一部分的,更有很多人觉得这个很 low,在年初的时候,还听到一位这样说,“前端无非就是 Copy Paste”,在前端技术发展这么迅猛的现在,还能说出这样的话,可见这个人的眼界是多么的狭小了,连冲他苦笑的时间都腾不出来。

由于工作内容的关系,大部分情况都是在 Linux 的虚拟终端下,也就是敲击键盘输入各种命令,等着系统的反馈。我使用过很多更好用的命令行程序的替代品,比如 top 命令的替代 htop,看看 top 和 htop 的区别吧,很明显 htop 要更好用。

虚拟终端用了那么多年,也没有什么实质上的改进,只是多了几种 shell 的变种,比如 zsh,fish 等等。实际上有很多人在做这方面的尝试,原因也就是现在的虚拟终端太难用了。让我们看看 black-screen 是什么样子的。black-screen 基于 electron 开发,也就是 github atom 的底层引擎。做的还不是完全兼容,能满足一般使用吧。

即使在虚拟终端这个领域,大家都在追求友好的界面设计,以及交互的友好。如果你认为 black-screen 没有什么技术含量的话,那就大错特错了,一个页面里渲染那么多的内容,如何提升渲染的性能,是一个很大的难题,github 对 electron 有很多的优化,都是在如何渲染字符上下的功夫,可 github 的技术实力,相比微软还是差了一大截,微软的 VSCode 同样基于 electron,但是启动速度,运行速度都甩出 github 的 atom 几条街。有点扯远了,O(∩_∩)O~。

前面两个例子可能有人没有办法理解,这和前端有什么关系?从我使用这两个工具的感觉是,他们更加好用,与原来的 top 和 terminal 来对比的话,我发现他的界面漂亮,使用起来简单,出了错误的时候提示比较友好,比如 black-screen 在执行了一个长时间运行未立即返回运行结果的命令时,它会显示一个滚动的进度条,而传统的终端就是停在那里,也不知道它是不是已经僵死了。

现在通常意义上的前端,就是 HTML,CSS,JavaScript 了,还有无数的前端框架,对于非专职的前端工程师来说,仅仅需要懂些基本的 HTML,CSS,以及一些 CSS 框架就可以了,比如 Twitter 的 Bootstrap,在真正的前端工程师看来,这些都是小菜一碟,而对于一个只搞后端的工程师来讲,那真是全世界最难的事了,他们看不起前端,却又做不出来。缺少界面,你做的工具就没有办法用,界面难用,工具也就很难用,虽然里面的代码可能写的很棒。

拿我们用了一年的 OpenTSDB 说吧,那个界面真是让人想死的心都有,动不动就是直接报错,虽然是好东西,可是这脸面真是不能恭维。对比一下它和Grafana。

其实也不用做这么好看,但是最起码是可用的,看起来是整整齐齐的,就像命令行的帮助文档那样,虽然是基于字符的,但是一看就是认认真真的做出来的,像 OpenTSDB 那个明显是出来糊弄事儿的。

这个都比 OpenTSDB 的界面好

说点历史问题吧,最早的程序员根本不分前后端,VB,Delphi 的 C/S 时代,界面就是妥妥拽拽,写任何程序都是要自己做界面的;后来到了 B/S 时代,做网页的称为美工,终于提取出这样一个工种,还需要懂 PS 切图,又出来一个 Dreamweaver,也是想拖拖拽拽的解决问题。再到后来,网页前端越来越复杂,像 Java 社区出的 JSF ,还有 HTML5 崛起前的那两年,Adobe 的 Flex,AIR,很多工作流软件就是用这两项技术做的,以及 Java 从诞生起最鸡肋功能 — JavaFX。那个时候,真正用软件的人少,其实也是人们不会用,因为界面上也就是前端了,没有人用的明白,太复杂。直到最近五年,到了每个人都会用软件的时代,技术虽然是进步了,但是让人们,从小孩到老人都能去用这些软件的根本原因不仅仅是技术进步,更重要的是界面的交互设计进步了,它让每个人都能很简单的学会如何操作。

现在到了大数据的时代,存储数据是一个要解决的问题,从数据中发现价值是另一个要解决问题,而数据可视化可浅显的归为前端工作,毕竟是要从数据中“看到”价值,当然,这部分工作只是懂前端知识是不够的,所以如果大数据工程师能够懂得如何将数据可视化出来,也许更能体现他们的价值,而不仅仅是把那些大数据的组件玩的滚瓜烂熟,却不能“看到”什么东西。

前端已然发展成为一个和大数据一样热门的职业了,虽然你可能不是一个前端工程师,但是稍微学一点,不要让时代把你给落下了。

OneAPM Browser Insight 是一个基于真实用户的 Web 前端性能监控平台,能帮助大家定位网站性能瓶颈,实现网站加速效果可视化;支持浏览器、微信、App 浏览 HTML 和 HTML5 页面。想阅读更多技术文章,请访问 OneAPM 官方技术博客

本文转自 OneAPM 官方博客

每个程序员都应该了解安全性啥? [关闭]

】每个程序员都应该了解安全性啥?[关闭]【英文标题】:Whatshouldeveryprogrammerknowaboutsecurity?[closed]每个程序员都应该了解安全性什么?[关闭]【发布时间】:2011-02-1703:38:09【问题描述】:我是一名IT专业的学生,​​现在大学三年... 查看详情

每个前端程序员都应该知道的10个chrome扩展

开发人员一直在寻找使他们的生活更轻松、更高效的方法,因为我们都知道开发应用程序的过程并不像听起来那样结构化。您会遇到各种错误和障碍,可能需要几天时间才能克服。所以为了让这个过程更容易,每个开发人员都应... 查看详情

人人都应该懂点密码学

你可以从别人那里汲取某些思想,但必须用你自己的方式加以思考,在你的模子里铸成你思想的砂型。——兰姆本文已经收录至我的GitHub,欢迎大家踊跃star和issues。https://github.com/midou-tech/articles点关注,不迷路!!! 上次say&a... 查看详情

2021你应该了解的前端知识体系

...结,任何知识都是掌握不牢固的。对于始终要保持学习的程序员来说,学习的新技术不仅要进行实践,还要经常进行反思和复盘,然后通过笔记或者博客将自己的思考记录下来,只有这样做才能真正掌握新技术。前端开发是非常... 查看详情

人人都应该懂点密码学

你可以从别人那里汲取某些思想,但必须用你自己的方式加以思考,在你的模子里铸成你思想的砂型。——兰姆本文已经收录至我的GitHub,欢迎大家踊跃star和issues。https://github.com/midou-tech/articles点关注,不迷路!!!?上次say&se... 查看详情

每个程序员都应该经历一次软考

...行而已,60%的人只是去凑热闹为国家软考办去做贡献的,为什么要说“每个程序员都应该经历一次软考”呢,这是源自于本人从软考中得到的感悟吧,在园子里很多人都是经历过软考的,有的人会说软考没有用,证书在找... 查看详情

小鹿线怎么样?

...开发开发技术在不断地迭代更新,有很多从事前端开发的程序员在技术上会遇到瓶颈,这个时候小伙伴就应该通过不断的学习开发技术知识,来提升自身的开发技术水平,那小伙伴应该怎么来学习呢?1.梳理清楚知识体系框架学... 查看详情

程序员也要懂点设计学

本文首发于微信公众号twowinter,转载请注明作者:http://blog.csdn.net/iotisan/点此进入公众号查看。熟悉twowinter的朋友都知道我喜欢罗永浩,由于这层粉丝情结,受到了很多正面影响,获取了一些专业以外的知识。今天想分享的观点... 查看详情

前端相关知识点

...元素,哪些是行内元素,有什么区别?答:CSS规范规定,每个元素都有display属性,确定该元素的类型,每个元素都有display的值,display为block则代表块级元素,display为inline则为行内元素。行内元素有:a,b,strong,img,input,select... 查看详情

每个人都应该实现自己的人生价值

为什么写博客在之前,写博客是为了记忆python的各种规则、语法。为什么放弃在工作之后渐渐的就没有了写博客的欲望,也知道自己可能会忘一些东西,但是习惯了去google、百度各种解决办法。而不是去翻自己的博客。为什么又... 查看详情

每个java程序员都应该学习10条编码原则

...原则是OOP编程的核心。尽管如此,我还是看到大多数Java程序员都在追逐设计模式,比如单例模式,装饰图案,或观测器模式,而且没有把足够的注意力放在学习上面向对象的分析与设计.学习面向对象编程的基础知识(如抽象、封... 查看详情

每个前端工程师都应该去了解的前端面试题总结(代码片段)

当我们需要找工作的时候,面试对于我们每个程序员来说都是非常重要的环节,掌握一些面试题技巧是非常有必要的,今天主要分享几个js有关的面试题作用域varnum1=55varnum2=66functionf1(num,num1)num=100num1=100num2=100console.log(num)//100console... 查看详情

一名架构师,懂点硬件知识不过分吧?(代码片段)

大家好,我是飘渺。很多架构师都是从软件开发成长起来的,大家在软件领域都有很深的造诣,大部分人对硬件接触的很少。而成为架构师后需要频繁的跟人、硬件、软件、网络打交道,本篇文章就给大家带来服... 查看详情

前端开发面试题目整理分析

...applyPromise实现Generator实现Map、FlatMap和Reduceasync和awaitProxy为什么0.1+0.2!=0.3正则表达式元字符修饰语字符简写V8下的垃圾回收机制新生代算法老生代算法浏览器性能安全框架通识VueReact 查看详情

java小知识点

每个Java程序都是以一个类的声明开始,在声明里类名紧跟在关键字class后面,eg:publicclassComputeArea{}每个Java应用程序都必须有一个mian方法,程序从该方法处开始执行,故程序应该被拓展为publicclassComputeArea{Publicstaticvoidmain(String[]a... 查看详情

14必须懂点cpu那点事儿

CPU对每个程序员来说,是个既熟悉又陌生的东西?如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因... 查看详情

前后端分离后,后端师傅们应该知道的一些基本前端知识

 写下此文,是因为本人作为前端小白,经常遇到同样小白的后端,常常不得不三番五次科普一些前端的基础知识,特此做些总结,也方便有下次的话,直接拿出来给对方看。 1.什么是ajax    对于网络请求分... 查看详情

如何成为前端工程师?

...你觉得应该使用哪一个并说出理由。JSON——它是什么、为什么应该使用它、到底该怎么使用它,说出实现细节来。上述这些知识点都应该是你“想都不用想”就知 查看详情