微信号:frontshow

介绍:InfoQ大前端技术社群:囊括前端、移动、Node全栈一线技术,紧跟业界发展步伐。

你不是一个前端

2018-06-07 17:40 花生 PeA
作者|花生 PeA
编辑|覃云

Mentor:“你不是一个前端”。

我:”???”。

Mentor:“你不要老想着自己是一个前端,你不是一个前端”。

我:“可是把我招来不就是写前端的吗??”

Mentor:“你可以写前端,但是你不要限制自己只作为一个前端,不要把自己的眼光局限在前端。你应该从整个项目、从工程的角度 blablablabla…”

我:(打断)“不,我就是一名前端,我特别喜欢前端,特别喜欢 JS”。

Mentor:“我靠,你不要老说……你说你自己是一名前端,作为你们 Mentor,我就感觉很丢人”。

——以上对话发生于我前往百度实习的第二个周,我与我的 Mentor 之间。

大四拿到了百度 Offer 后不久,便开始了在百度的实习。

热爱前端,热爱 JS,有自己偏执的审美,认为整个宇宙其实是一个用 JS 编写的程序——这当然是不可能的。不过热爱 JS 确实是这样。

随着前后端分离,前端变得可以只需要关注接口而不用管那该死的后台——鬼才想知道你数据表是怎么存的,我只想要我的 JSON 数据,然后完成酷炫的前端功能,让用户惊叹,让自己惊叹,然后让世界惊叹!

这就是我,一个华丽丽的前端~~

华丽丽的我接到了我的第一个 Task——为页面开发导入功能,我负责前端,我的 Mentor 负责后端。

前端改动比较小的,我三下五除二写完了界面与交互逻辑,一切非常顺利~~ 除了一开始想要把后台程序跑在我本地电脑上,用一个奇奇怪怪的 Docker Compose 时遇到了点麻烦。

不过无所谓,我并不想知道那东西是什么,也不想知道为什么想跑 Docker Compose 需要改那么多的参数。

总之,Docker Compose 现在愉快的跑在我的电脑上了,除了吃掉我一半内存,导致我的 WebStorm 有些卡外,没什么不好的。只要能拿到约定好的数据,我就可以让前端界面就正常工作。

前后端分离万岁~!

然后 Mentor 告诉我说接口请求要用 RESTful,这是什么?好像以前听说过。查了下资料——不就是用 HTTP 状态码来返回结果,顺便语义下请求的方法(GET、POST、PATCH、PUT、DELETE…)嘛,前端改下 Ajax 请求就好了。

然后 Mentor 说,我们要用 RESTful:

  • 第一次创建数据要 POST,以后要用 PUT。OK

  • 检测 HTTP 状态码来确定请求结果。OK

  • 把 Token 写在 HTTP Header 里。OK

毕竟是工作嘛,只要项目要求,让我把数据放 Header 里我也没意见。

但是 Mentor 向我解释了这些,告诉我后端的实现逻辑和一些细节,为什么这样更好,为什么会有这些行为。我觉得好麻烦,难道我不是只做好前端工作就好了吗?

于是我向 Mentor 表示:

  1. 我不想了解那么多的后端实现,你说这种接口调用方式会很大的影响后端性能,我改成你期望的格式就好。

  2. 我不想了解那么多的项目配置,我只要按住流程走下去,最终跑起来一个可以提供数据的服务器就好了。

  3. 我只想知道,你期望什么格式的数据,又返回什么格式的数据。

  4. 我只是一个前端。

然后 Mentor 非常生气,说出了“你不是一个前端”这句令我十分震惊的话。

我不是一个前端?

为什么我不是一个前端?我明明是一个前端!我就是凭着对前端的一腔热血支撑着我一路走到了这里,我热爱前端,热爱互联网,热爱 JS。

或许在别人眼里前端很 Low,P 技术含量没有。

但是作为热爱前端的我知道,前端有多么深邃、多么灵活、多么优雅、有多么多的可能。每一种“外人看来毫无作用的新技术”解决了前端多么痛的问题,每一代“频繁升级的 ECMAScript”更新带来了多么棒的特性。

“你说你自己是一名前端,作为你们 Mentor,我就感觉很丢人”。

我感觉这句话简直否定了我对前端倾注的所有感情,被彻底瞧不起了,我要是一名负责火箭发射的工程师对方绝不会这么说。

于是我很生气,觉得对方不可理喻。

我就是一名前端,我还打算将来加入 TC39 为我心爱的 JS 添砖加瓦呢。

完成的导入的 Task 后,随着时间的推移,我又陆续接到其他的 Task。

在一个新开坑的项目中,我和负责后台开发的 DG 同学 在接口设计上发生了一些分歧。我主张在“返回应用的会话列表的接口”中,返回 会话数据 的同时返回 应用信息,而他表示这样不好。双方僵持了一段时间,于是我和 DG 决定去找隔壁的两位高 T(我的 Mentor 是其中之一)裁决下。

我阐述了下为什么我希望会话列表接口里面带着应用的信息:

  • 在查看调试会话列表接口时更方便

  • 这样前端少请求了一个接口,展现数据会更快

  • 分开接口的意义不大,应用信息非常少,没必要再加一个接口,直接附带在会话列表接口中就好了

  • 虽然分开后 2 个接口各司其职,但是前端要分开处理,很麻烦

听了我的解释,Mentor 和我说:

你发现了吗?你的所有出发点都是为了前端更方便。

确实,你是一名前端,所以你肯定希望前端用的爽。但是,正是因为你只是一名前端,你不了解后台的实现、构架,不知道怎样的设计对于后台是合适的。也不了解这个项目本身,所以也没办法站在一个工程的角度考虑这个问题。

这就是所谓的屁股决定脑袋,因为你只是一名前端,而不是一名工程师。

我突然愣住了。

我确实不知道后台的实现,后台用的什么 ES 完全不知道是什么。我也不知道自己做的这个项目是干什么的,只知道从 UI 那里拿到了一份设计稿,然后将它还原了出来。

我突然想到了学校中,老师反复强调过“一辈子的码农”和“工程师”的区别,那时的我听了不以为然。

而现在,我真真切切的感受到了二者的区别!!!

意识到错误的我感觉超级尴尬,比较刚刚还神气十足头头是道来着。小声承认了下自己的错误,然后赶紧转过头去假装写代码。

内心 OS:啊啊啊啊~~ 好尴尬!!!不过很感谢,但是好尴尬!!或许应该好好谢下 Mentor,但是好尴尬啊啊啊!!

表情复杂的盯着屏幕上的 function 声明语句好长时间,嗯,橘红色的高亮挺好看。然后去找到了刚刚的 DG 同学讨论了下后台实现和构架,并对他的方案表示了肯定。

现在,我终于明白了,“你不是一个前端”的含义。

“教做人”的日常还在继续,前进的脚步也不会停止。

  原文链接

本文转载自花生 PeA 博客:

http://blog.pea3nut.com/e1042

前端之巅

「前端之巅」是 InfoQ 旗下关注大前端技术的垂直社群。紧跟时代潮流,共享一线技术,欢迎关注。


前端之巅

InfoQ大前端技术社群

 活动推荐

GMTC全球大前端技术大会携手顶级共创伙伴:APICloud企业互联网化生态平台,历时半年筹备,为大家梳理了目前大前端领域的最新动态,并邀请到了来自Google、Twitter、Instagram等国外一线前端专家前来分享他们的前端前沿技术和最佳实践,更有iOS社区大神Mattt、Apollo GraphQL负责人等大牛的助阵,可谓干货满满,不容错过。

目前大会倒计时门票热销中,团购更优惠,购票咨询:18514549229(同微信)戳阅读原文或识别下图二维码,了解更多干货详情!


 
前端之巅 更多文章 我从React身上得到的那些经验教训 引擎V8推出“并发标记”,可节省60%-70%的GC时间 我从两年的JavaScript函数式编程中学到了什么? 为什么前端开发这么不稳定? 你需要了解的23种JavaScript设计模式
猜您喜欢 6.25,明日1:30PM,线上直播,快戳开吧!!!!!! 以科技,创新世界,我们在行动 最适合 Python 入门的资源有哪些? 集群管理新模式-Docker Spark如何使用Akka实现进程、节点通信的简明介绍