弱弱的问下在实际工作中,后端工程师也会鄙视前端工程师的工作么

2015-05-26 09:35:00 +08:00
 bigfa

故事的地点发生在五线城市哈尔滨。

今天和联通一个技术主管在电话里聊了聊相互的情况。当了解到我只想写JS和CSS的时候表示这些东西太简单了,美工都能做。。。

说实话虽然自己不是大神级别的,但感觉有些东西自己研究的还是挺深入的,但是在对方眼里不会java就是战5渣啊。。作为一个从没有在公司工作过的码农,内心受到了深深的打击!

对方的原话是PHP就是拖拽出来的,毫无技术含量。作为一个技术主管这样评价PHP真的好么?还是说是我太菜了不会拖拽PHP。。

弱弱的问下在实际工作中,后端工程师也会鄙视前端工程师的工作么?

最后对方表示如果你想写JAVA的话是可以过来的,我相信你有这样的实力。。

15391 次点击
所在节点    职场话题
101 条回复
garodie
2015-05-26 14:37:20 +08:00
我觉得UI交互是很重要的呵呵。
wity_lv
2015-05-26 15:42:45 +08:00
@bigfa 我公司有个技术大牛.. 18年的程序员. 他说他工作时参与的第一个程序叫 3721 ( 360安全卫士他祖宗) , 之后工作一直跟着他老大拼, client端安全大牛.
这位大牛现在在搞"前端". 对你没听错,18年的程序员在搞『被b4的前端』.
按照现在的技术框架,大部分时间不用怎么写后段代码,前段代码和部署方面所用的成本越来越高.

为什么后台coding在变弱?
做一个项目,做一个产品. 后台服务器多数情况负责数据存取,流程处理, 支付 balalala....
如果用Rails, 多数情况是找个中 gem, 然后拼接到自己的数据结构上.
用Java, 找各种framework, 配置各种@anotation, 各种xml

为了保证后台代码的健壮性, BDD/TDD的方式开发, 代码很少会失控.

为什么部署成本高?
曾经遇见过的情况, 2天用Playframework 2 for Java在客户原有的基础上server 做了一个活动+评论系统的API, 部署到集成ok, 用了5天. 后期客户自己运营, 算是松了口气.
自己机器上好好的, 跑production环境各种挂. 开发xx月上线x月, 很容易发生.

持续继承,持续发布能够解决这个问题. 其中会涉及 feature toggle, docker, AWS balabala ...

最后,前端为毛高呢?
以前系统刚从C/S => B/S架构时, 能用就行. 现在已经变得必须好用.
直接面向用户
运行环境很苛刻. ( 客户会用各种奇葩浏览器: IE 6 ~ IE x, 浏览器会有各种奇葩插件).
前端交互方式直接影响客户用的爽不爽
安全问题, CSRF, XXS....
奇葩的javascript
奇葩的CSS
奇葩的DOM
... ...



最后,贴短代码玩玩. javascript callback 也是一个问题. 不懂functional programming也理解不了js function的精髓.
```
function changeSharing (uri, originVal) {
var shared = parseInt(originVal) === 1 ? 0 : 1;
update(uri, { shared: shared }, function(obj) {
toggleSharingButton(parseInt(obj.shared));
});
}

function shareAction(func) {
return function(e) {
e.preventDefault();
$(this).disable();
func($(this).attr('href'), $(this).data('shared'));
};
}

function showProject (project) {
$('#detail').html(projectTmpl(project));
$('#share-button').click(shareAction(changeSharing));
}
```
xxer
2015-05-26 15:43:38 +08:00
好的前端很难招的
aveline
2015-05-26 15:49:03 +08:00
跪求能拖拽的 PHP!
qige023
2015-05-26 16:02:47 +08:00
@wity_lv 前端er现在也尽量少用callback,转用 promise 为多
wity_lv
2015-05-26 16:33:47 +08:00
@qige023 赞同, 异步处理promise好一些.
函数组合也是一种方式. 混合使用效果也不错.


比如一个网络请求请求API更新字段: (node.js + Coffeescript):

1.使用promise抽象异步调用
put_form = (relative_path, data) ->
deferred = Q.defer()
request.put {
url: api_url(relative_path),
form: data
}, (error, resp, body) ->
deferred.reject(new Error(error)) if error
ret = JSON.parse(body)
deferred.reject(new Error('unacceptable server status.')) unless success(ret.status)
deferred.resolve(ret)
deferred.promise

2.然后curry请求函数, 支持partial function:
curried_put_form = (data) -> (relative_path) -> put_form(relative_path, data)

3.使用partial function抽象参数
enable_share = curried_put_form enable_share: 1
disable_share = curried_put_form enable_share: 0

4.2类参数 * 2个api url => 生成 4 个 function.
share_project = (id) -> enable_share project_url_of id
close_project = (id) -> disable_share project_url_of id
share_activity = (id) -> enable_share activity_url_of id
close_activity = (id) -> disable_share activity_url_of id

5.调用(mocha + chai):
describe '#enable_share', ->
it 'should share project', (done) ->
projects.enable_share(1)
.then (result) ->
expect(result).to.eql .... (expected data)
done()
.fail (error) -> done(error)
qige023
2015-05-26 17:17:00 +08:00
@wity_lv
2.然后curry请求函数, 支持partial function:
3.使用partial function抽象参数

这里闭包用的很优雅!
julyclyde
2015-05-26 17:39:12 +08:00
想想nodejs为什么被发明就能理解了
benjiam
2015-05-26 17:41:39 +08:00
@wity_lv 如果实现一下浏览器 你就知道 你说的东西不过了了。
itaotao
2015-05-26 17:55:56 +08:00
PHP什么时候能拖拽了!!JS能拖拽还差不多,其实前端和后端同样复杂,只是大多数前端工程师做的很简单的工作,让人误以为很简单。
barbery
2015-05-26 18:38:41 +08:00
跪求能拖拽的PHP!
ameba
2015-05-26 18:44:38 +08:00
@pedestrianc 我是回来在哈尔滨做iOS的 其实~很坑。去北上广深吧,我有点想回去了
ameba
2015-05-26 18:46:21 +08:00
@angelhorn 这是正确的话
ameba
2015-05-26 18:47:35 +08:00
@spark 黑得好
bigfa
2015-05-26 18:51:12 +08:00
@ameba 哈尔滨还是有公司找IOS的,但是我感觉很难招到人。。。估计你应该在公司里是宝了哈哈。
flynngao
2015-05-26 19:01:26 +08:00
这有啥好扯的,回答一下楼主问题,有,其实做啥工种都会被鄙视,而且作为一个人,没必要限制自己的领域,谁说前端就只懂前端?
wity_lv
2015-05-26 19:25:20 +08:00
@benjiam 这段代码在浏览器跑不的。依赖的node.js + coffeescript 环境。
如果说curry和partial function,
这种用法依赖javascript 闭包和高阶函数。属于javascript语言特性,跟环境没关系。
fyh1807008
2015-05-26 19:37:06 +08:00
知乎上看到的 http://zhi.hu/lDxF
JavaScript算是严格意义上的编程语言吗?

JS当然不算是『严格意义』的编程语言
因为它除了if/else/for还var/for/in
不仅var还var x = function
它不class但object
它不仅new还.prototype
它不new不class照样{}
它不new ArrayList<String>但[]
它不doSth(&fnPtr),但它doSth(fn)
它不* funcion但它lambda
它不static但(function () { var x; return { increX: function () { x++; } }())
它不范型但它*.*
是的,它不gcc也不dbg,更不make,不过它debug;它console.
它不QT,GTK,但DOM,html5/css3
它不boost但asm
它不STL但jQuery,_,Backbone
它不Thread但Promise
它是编程语言
只不过它没你要的『严格意义』
只不过我说的是『是』
而你要的是『算』
Biwood
2015-05-26 22:21:38 +08:00
一句话:这与公司本身的技术水准有关。

亲身体会
shuangchun
2015-05-26 23:06:26 +08:00
@bingfan 没几个美工和前端敢说自己会写CSS吧,只能说是可以写写罢了

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

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

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

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

© 2021 V2EX