分享本人对 Web 前端开发的看法,比较偏门的视角

2016-01-17 18:01:51 +08:00
 civet
http://made.withflash.net/2016/01/17/wtf-is-web-development/

最近郁闷着准备找新工作,充电之余写了点牢骚话
某些术语用得不太准确,请无视
因为个人涉足的领域有限,可能某些地方理解较肤浅,比较主观
但我不是来伤害某些人的感情的,欢迎评论及提 issue
8739 次点击
所在节点    JavaScript
73 条回复
wizardforcel
2016-01-28 08:27:30 +08:00
@jokcy 你睁大眼睛看看是不是一样?

```
// angular
$http.get(url).success(function(data) {
$scope.name = data.name;
$scope.age = data.age;
$scope.click = function() {...};
});
```

```
// jq
$.get(url).done(function(data) {
$('xxx-name').text(data.name);
$('xxx-age').text(data.age);
$('xxx-button').click(function() { ... });
});
```

还 promise , jq 早就支持 promise 了你造吗?
jokcy
2016-01-28 09:07:01 +08:00
@wizardforcel 哟,还跟我讨论 angular 的原理呢,你要是知道 angular 原理还能说出来跟 jquery 一样你的脸皮真是厚道原子弹都打不破。你举的例子叫一样?上面的代码能在 view 层复用,下面的代码改个 id 你还能复用么? angular 是 data=>UI 的驱动模型你知道么?看起来像就是一样?“看来前端视野太局限了,还需要学习一个”这句话用在你身上那是再好不过了。不懂别在那装懂,看着都觉得羞耻
jokcy
2016-01-28 09:09:22 +08:00
@wizardforcel 还有,举例子举得详细一点,获取数据每个框架都差不多。当然深度的例子估计你也举不出来,毕竟眼界就那样。估计在你看来 react 跟 angular 也就是一个东西,估计你也不知道如何模块化。另外过了这么多天才回复我,是先去学习了 angular 再回来给我举例子吧?这么久还只能举出这样的例子,哎~劝你别玩前端了。
wizardforcel
2016-01-28 14:08:45 +08:00
@jokcy 你前端除了给后端做展示, curd ,还能干嘛?

我告诉你, mvvm 这种东西在 gui 编程里也有(比如 wpf ),但是不吃香的原因就是前端做的事情都是 curd ,太简单了。 gui 应用(特别是那些功能性的)不存在一个单一的数据源,你想 mvvm 也没办法。也就是你们前端 curd 用 mvvm 方便。

我以前是做 gui 应用的,维护的应用少说 5 个窗体,多了要十几个,我照样不用任何绑定,就是获取控件然后访问,我完全控制得了。

说你眼界低还不相信,你知道网页加载完了之后 angular 首先要干嘛吗? angular 不需要遍历 dom 树然后解析双花括号?解析双花括号不是后端模板引擎的做法?你 angular 的语法不是跟 jinja 学的?就知道什么业务逻辑驱动模型,让你写个 parser 估计都跟抽筋似的。你根本没写过这些东西,所以跟你说移植到后端也是对牛弹琴。
wizardforcel
2016-01-28 14:23:24 +08:00
@jokcy angular 的代码还复用呢,笑死我了,把 ng-app 和 ng-controller 一改,连$scope 都取不到了,还复用呢。

另外我啥时候说过 jq 和 angular 原理一样了?我只是说,数据先用后端模板渲染好,回调用 jq 来做,完全可以实现一样的功能。(实际上这一直是传统 web 的做法)至于你们前端怎么舒服,我是搞后端的管你们干嘛。

从执行效率来看, angular 的确解放了后端渲染模板的压力。浏览器开缓存的话也可以省一部分流量。

从开发效率来看,处理数组在 angular 里就是一行赋值,而在 jq 里面,需要写个循环、创建节点、赋值、插入节点。

但是 so what ?难道大部分网站不迁移至 angular 的原因是这些优点比不过带来的重构成本和学习成本吗?
jokcy
2016-01-28 14:35:13 +08:00
@wizardforcel 噗,还跟 jinja 学的,后端模板引擎一大堆,目的是为了渲染,前端模板引擎也是渲染,看上去当然差不多,但是意义一样么?你用后端引擎能实现前后端分离么?知道为什么要分离么?你公司如果有 app 和网页客户端,用的接口都是类似的,你不分离后端就要多写一套,后端服务化听说过没?

再次用前端渲染可以做切换效果你用后端模板来个试试?前端渲染可以做更多体验好的交互体验你用后端模板试试?写个 parser 你就高潮了?前端 orm 听说过没?

还移植到后端,大家都在往前走你偏要往后走,还大喊着你们都走错了我也是醉了,你这么牛逼怎么没见你出个文明全球的开发模式?

早跟你说你跟不上时代了还不信~呵呵
wizardforcel
2016-01-28 14:47:57 +08:00
@jokcy 问题是我分离也得写两套。一套是静态页面,一套是 json 。这两个东西显然得分配两个路由。

然后分离之后 req handler 的逻辑是读页面 /数据、刷给 out 。分离之前是读页面、读数据、渲染、刷给 out 。
wizardforcel
2016-01-28 15:03:31 +08:00
@jokcy angular 干的事情就是之前后端模板引擎干的事情,只不过 angular 是遍历 dom 解析的,后端引擎是整块 split 来解析的,我说它是模板引擎,怎么就不对了?

还数据绑定,有必要搞这么高大上的名词嘛?

是, view 移到前端是趋势,以后也会有人移植各种语法的引擎到前端来用。“一切东西都会用前端的技术重做一遍”,但是你说是引擎也好,框架也好,他们的发源地是后端。
jokcy
2016-01-28 15:11:10 +08:00
@wizardforcel 分离之后后端就解放了,只要接口设计得好,比如 restful 化之后就不用管调用数据是 web 还是 app ,而且由于接口和业务是解耦的,所以业务变更你的接口基本不需要动,这就是分层的意义。

如果我理解你的 json 是借口,那么接口就是服务层,定义完之后就不会随着业务变化而变化的。所以等你们公司的网站变成一个两个, aop 出了三个四个,服务只要一个就够了。

所有东西你都可以看成是读数据,渲染数据,输出。至于能把这些结合成什么样那就是你的本事了
jokcy
2016-01-28 15:25:40 +08:00
@wizardforcel angular 可不只是模板引擎,他还是一个组建化框架,你用 jquery 出一个好的组建化方案看?除了组件化还有模块化,你给我来个?需要我跟你强调一下组件化和模块化的意义么?

数据绑定有什么不对么,你更新数据 ui 就变化这么叫有错么?是不是你又要跟我扯“实际上不就是模板渲染么”?

那 react 的虚拟 dom 在你眼里是不是也是模板渲染?知道为什么 react 渲染效率为什么比 angular 好么?

你难道不知道这些框架出现的目的是为了更好得做更好的产品么?
“服务器不就是套接字接收网络请求分析内容然后返回数据么”我是不是应该摔给你做后台的这么句话?
wizardforcel
2016-01-28 15:56:02 +08:00
@jokcy

组件?在正常的开发者眼里,所有程序集都是组件。'angular 是组件,但是 apache 也是组件,这是个非常正确但是没有任何卵用的词。

前端就不要跟我谈什么模块化了。 html 到现在都不支持 include , es 到 6 才支持 import 。后端开发者一开始就接触架构和模块化,无论是包含还是导入。前端之前非常缺少模块化所以现在格外推崇这个词,但是你叫任何一名前端之外的开发者,他肯定会觉得程序不都是模块化的吗?这有什么。

所以我就特别讨厌吹捧名词的人,明明是个模板引擎,非得说成“组件化模块化的解决方案”。这种事情我觉得只有不懂代码的媒体才能干的出来。那我把接口说成“软件即服务”,你听着不一样别扭吗?
jokcy
2016-01-28 16:07:55 +08:00
@wizardforcel 哎哟卧槽~100 多 k 的 angular 被说成模板引擎,笑得我胃疼。我也懒得跟你争,前端组件化都不知道,我再说下去也没意义。你继续用你的服务端模板引擎,我用我的 react
markocen
2016-02-03 00:20:43 +08:00
JS 为啥现在这么流行,我觉得还有一个原因就是它能快速的将技术转化成利润, 想想一个公司仅用 javascript 一种语言就快速上线一个网站去赚钱,这个吸引力是很大的。
楼上很多人喷现在很多所谓全栈 JS developer 都是半吊子,但从不懂技术的高层来看他们就是效率很高,所以他们能拿高薪并不奇怪

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/251383

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX