V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
spademan
V2EX  ›  PHP

PHP 是前端的范畴了?在大公司里面

  •  
  •   spademan · 2016-07-04 15:27:05 +08:00 · 11155 次点击
    这是一个创建于 3096 天前的主题,其中的信息可能已经有所发展或是发生改变。

    是我太孤陋寡闻了吗?

    今天和一个同事聊,他说 PHP 是前端范畴的了

    80 条回复    2016-07-05 20:08:32 +08:00
    shyling
        1
    shyling  
       2016-07-04 15:28:03 +08:00
    大公司不是用 node 替换了前端的 php 嘛?
    LevineChen
        2
    LevineChen  
       2016-07-04 15:31:26 +08:00
    的确是前端, php 主要业务 底层交互都是 C++开放的接口
    XianZaiZhuCe
        3
    XianZaiZhuCe  
       2016-07-04 15:34:34 +08:00 via iPhone
    相对来说是前端
    kumakiti
        5
    kumakiti  
       2016-07-04 15:45:20 +08:00
    技术上的前端肯定不算啊,毕竟还是要跑在服务器上的,只用浏览器肯定不行
    估计是在整个产品结构里,偏向展现给用户那一块的,所以在公司内部被叫做『前端』
    spademan
        6
    spademan  
    OP
       2016-07-04 15:48:06 +08:00
    @LevineChen 这么说是有道理~~
    @calidion 哈哈我一直是这么觉得,所以才发了这么问题

    @kumakiti 大概明白了
    @XianZaiZhuCe 恩 相对来说的话 就比较好理解了
    calidion
        7
    calidion  
       2016-07-04 15:48:16 +08:00   ❤️ 1
    需要区分项目前端与 Web 前端。
    Web 前后端的区分依据是浏览器与服务器。
    项目前后端区分的依据是所在项目的位置。
    不能混为一谈。
    zeus255
        8
    zeus255  
       2016-07-04 15:49:12 +08:00
    这个前端和传统意义上说的 web 前端不太一样。
    html/js/css ==> node/php/python ==> java/c++, 一般现在大型网站架构的层次和语言是这样的关系。
    在大企业, java 的比重越来越大,脚本语言基本上只会用来处理模板渲染等跟 view 有直接交互的内容,所以就有被归类到前端去的说法。
    calidion
        9
    calidion  
       2016-07-04 15:49:51 +08:00
    @spademan

    嗯。为了概念的正确而努力。
    calidion
        10
    calidion  
       2016-07-04 15:53:12 +08:00
    @zeus255

    但是这样的归类是错误的。
    项目前端因公司不同而不同。 Web 前后端是确定的。

    任何语言都可以处理 VIEW ,那么我问你,那个语言是专门处理后端的?
    jakehu
        11
    jakehu  
       2016-07-04 16:06:13 +08:00
    相对而言
    66beta
        12
    66beta  
       2016-07-04 16:51:59 +08:00
    可能是因为 web 前端都会 PHP 的缘故吧
    lslqtz
        13
    lslqtz  
       2016-07-04 16:54:21 +08:00 via iPhone
    html/css 才是前端
    hasbug
        14
    hasbug  
       2016-07-04 16:55:43 +08:00
    怎么会有这种说法?
    感觉现在都玩坑里去了,前端还是原来的概念,只不过现在前端可以能做更多罢了。
    murmur
        15
    murmur  
       2016-07-04 16:59:25 +08:00
    现在前端不都必须会一门后台语言么
    murmur
        16
    murmur  
       2016-07-04 16:59:53 +08:00
    @shyling 我感觉越大的公司越不会轻易用 node 做主要后端。。。
    sfree2005
        17
    sfree2005  
       2016-07-04 17:03:02 +08:00
    很多 php 框架都是 MVC , 他这里应该指的是这里的‘ V ’吧。
    TangMonk
        18
    TangMonk  
       2016-07-04 17:05:03 +08:00
    相对而言,淘宝原来就是
    learnshare
        19
    learnshare  
       2016-07-04 17:06:23 +08:00
    前后都是相对的,许多业务中的前端指的是更靠近用户的那部分,不一定指的是 GUI 部分。
    keinx
        20
    keinx  
       2016-07-04 17:13:52 +08:00
    在我们公司, java 是底层做数据的, php 就是前段配合 html5 做用户展示数据的
    otakustay
        21
    otakustay  
       2016-07-04 17:19:44 +08:00
    在百度好像 PHP 真算前端的
    aksoft
        22
    aksoft  
       2016-07-04 17:24:15 +08:00
    C 说 php 是前端
    html css js 说 php 是后端。。
    pasturn
        23
    pasturn  
       2016-07-04 17:32:40 +08:00
    狭义算后端,广义算前端
    alwayssmile
        24
    alwayssmile  
       2016-07-04 17:33:09 +08:00
    不是哇,既有偏前端也有偏后端的啊
    wavingclear
        25
    wavingclear  
       2016-07-04 17:34:03 +08:00
    http://2014.jsconf.cn/slides/herman-taobaoweb/index.html#/61

    前端扩张了, PHP 大概处于蝙蝠的位置
    xuyifei
        26
    xuyifei  
       2016-07-04 17:34:45 +08:00
    看你用来做什么了,做页面展示部分的逻辑,算前端吧
    kideny
        27
    kideny  
       2016-07-04 17:48:45 +08:00
    我觉得,应该处于中间层吧。
    用 nodejs 替代 php ,很大一部分原因是为了省钱吧。
    jerray
        28
    jerray  
       2016-07-04 17:51:51 +08:00
    前端后端跟语言关系不大,而且前后也总是相对的。有人用 Java 写 Web ,有人用 Java 写桌面,有人用 Java 写中间件,有人用 Java 写数据库。 Java 是前端还是后端?
    ck65
        29
    ck65  
       2016-07-04 17:52:09 +08:00
    看 PHP 用来承载什么业务了吧。习惯 Java 、 Node 等后台的公司, PHP 会叫做前端,顶多叫中间层。整个业务就是一个 PHP 网站的公司, PHP 自然可以叫后端了。叫法其实不重要。
    lightening
        30
    lightening  
       2016-07-04 17:54:05 +08:00   ❤️ 6
    每个人都有自己对前后端的概念。
    Web 工程师觉得 html/js/css 是前端, php 是后端。
    架构师觉得 web 是前端,核心逻辑是后端。
    库的维护者觉得应用是前端, infrastructure 是后端。
    硬件工程师觉得软件是前端,硬件是后端。
    电路设计人员觉得芯片内布局布线是前端,电路逻辑表达是后端。
    硬件工艺研究人员觉得电路逻辑是前端,半导体物理是后端。
    odirus
        31
    odirus  
       2016-07-04 17:56:03 +08:00
    每个公司业务不同都嘛, Java 也阔以写前端呀,只是比较丑而已。
    dxwwym
        32
    dxwwym  
       2016-07-04 17:56:06 +08:00 via iPhone
    看完帖子觉得应该有一个中端的概念
    ichou
        33
    ichou  
       2016-07-04 18:47:11 +08:00 via iPhone
    我们虽然小公司 但 php 也是前端
    Patrick95
        34
    Patrick95  
       2016-07-04 18:52:38 +08:00
    @dxwwym 叫中间层语言比较合适
    Light3
        35
    Light3  
       2016-07-04 19:02:23 +08:00
    概念不一样。。不过很老的梗了。。而且不少地方都不用 php 用 node.js 来替换了。。
    genffy
        36
    genffy  
       2016-07-04 19:07:09 +08:00
    显然,,,,对于 web 来说,后端只是 API 了, ios android 也都是前端。
    ibigbug
        37
    ibigbug  
       2016-07-04 19:21:02 +08:00
    是前端还不好,都说前端天花板
    dongm2ez
        38
    dongm2ez  
       2016-07-04 19:23:06 +08:00
    php 在小公司是全栈,在大公司是中间件
    calidion
        39
    calidion  
       2016-07-04 19:25:25 +08:00
    @genffy

    显然你又错了。
    ios android 是客户端。
    与前后端完全是两个概念。

    看来一个概念建立起来很难,混淆很容易。
    shyling
        40
    shyling  
       2016-07-04 20:55:30 +08:00 via iPad
    @murmur 我说的是替换了前端的 php ,没有说做主要后端啊。。。
    Jaylee
        41
    Jaylee  
       2016-07-04 21:46:43 +08:00
    架构上是,但技术上不上
    Jaylee
        42
    Jaylee  
       2016-07-04 21:46:56 +08:00
    架构上是,但技术上不是
    eoo
        43
    eoo  
       2016-07-04 21:51:18 +08:00 via Android
    看你怎么用咯
    codelegant
        44
    codelegant  
       2016-07-04 22:36:51 +08:00
    在我们公司,浏览器 + web 服务器( PHP )称为前端(有时候也称 Web App 客户端,与 ios, andrioid 平级),后端是数据库+服务器。
    miaotaizi
        45
    miaotaizi  
       2016-07-04 22:38:39 +08:00
    是又如何, 不是又如何? 快速切换自己的位置才是王道
    miaotaizi
        46
    miaotaizi  
       2016-07-04 22:40:01 +08:00
    我在公司就是, 不用 java 做后端我就用 PHP 写, 一旦 java 上后端, 我就去写 js.....
    calidion
        47
    calidion  
       2016-07-04 22:52:13 +08:00
    @codelegant

    Web 服务器不属于服务器?

    将 Web 前端与其它的前端混淆的基本都是基本概念不清楚的人。

    概念清楚不会说 PHP 之类的为前端的。
    codelegant
        48
    codelegant  
       2016-07-04 23:15:42 +08:00
    @calidion Web 服务器是属于服务器,但现在前端的工作已经从浏览器往 Web 服务器延伸了,并且与数据服务器有了很明显的界线,所以出了一个新名称:“大前端”。
    genffy
        49
    genffy  
       2016-07-04 23:18:07 +08:00 via iPhone
    @calidion 其实吧,就是些用着跑在服务器 /强类型语言的人写着千篇一律的 curd 的自我安慰吧,不涉及并发,不涉及多线程,不涉及底层调用 /开发的即便是跑服务器说是后端的都是耍流氓。假如有用 c++写 nose/php 扩展的,这个成为后端,我服。
    以上,仅代表作为一个页面仔的我的观点,没有针对任何人,也不代表雇主。
    mingyun
        50
    mingyun  
       2016-07-04 23:25:44 +08:00
    php 作为接口提供方
    calidion
        51
    calidion  
       2016-07-05 01:33:13 +08:00
    @codelegant

    大前端就是错误的胡扯的结果。大前端试问大在那里?既然有大前端,试问什么是小前端?
    中国的 IT 界的可恨之处在于喜欢制造错误的名词,然后传播错误的理念。

    正确的叫法其实就是全栈工程师。

    @genffy

    后端与前端并没有那个更高大上的差别。差别只在于位置的不同。
    你对前后端的理解本身就是错误的。
    你的意思是前端必然比后端要弱?显然实际情况并非如此。

    可见基于以上多位对于前后端的讨论,基本上都是源于错误。

    所以我认为将前端扩大,与将后端缩小都是因为错误与无知。
    即无法界定前端,也无法界定后端。所以稀里糊涂的人云亦云。

    因为对于前端后分不清,然后才会搞出什么前后端分离这种可笑的提法。

    这种提法的前提是根本不知道什么是前后端,也不知道分了什么。
    然后分离的是什么也没有搞清楚。

    前后端分离与大前端,还有将 PHP , JAVA , NODEJS 叫做前端。本身就是中国 IT 界最大的耻辱。
    genffy
        52
    genffy  
       2016-07-05 01:55:02 +08:00 via iPhone
    @calidion u win
    litpen
        53
    litpen  
       2016-07-05 09:40:01 +08:00
    如果是同构型的架构那后端的一部分工作属前端
    spademan
        54
    spademan  
    OP
       2016-07-05 09:42:11 +08:00
    哇塞 感谢大家的回答,大体都了解了,我是一个 web 小前端,所以才觉得说 php 是前端比较惊讶,如果说相对而言的话就好理解了 ~~~
    madao
        55
    madao  
       2016-07-05 10:30:13 +08:00
    @calidion 一部分人概念上把 PHP 列为前端,是因为在架构上 PHP 在项目设计里不涉及数据的操作,仅仅做 view 和 helper 的缘故吧,你也别急着灌注给别人概念的对和错。

    PS :「全栈工程师」不是会那么点就算的。
    PPS :前端和后端的区分,也不是绝对性的,方便工作理解即可。
    PPPS :「耻辱」二字别乱用。
    kidult
        56
    kidult  
       2016-07-05 10:41:10 +08:00
    管它是什么端,工资不低就对了
    tairan2006
        57
    tairan2006  
       2016-07-05 10:49:54 +08:00
    前后端是相对的。。
    codelegant
        58
    codelegant  
       2016-07-05 10:52:39 +08:00
    @calidion
    小前端就是纯浏览器,在大前端中, web 服务器相当于 model 层(控制逻辑与交互逻辑),只不过不是与数据库交互,而是通过 API 与数据服务器(业务逻辑)交互。如果是全栈,那是需要包括数据库操作的。

    所以现在有种前后端的看法就是:不涉及数据库的就划分到前端。 所以有时候会称:“前端服务器”,“ web 服务器”,与之对应的:“后端服务器”,“数据服务器”。

    淘宝的前端服务器语言是 node ,后端服务器语言是 java ,之所以前端服务器的语言使用 node ,正是为了把这部分工作归到前端。

    我之前公司的前端服务器语言是 php (与页面结构较紧密,方便操作),后端服务器语言是 golang (性能高)。

    所以呢,现在前后端概念可能如果你所说,但工作的范围已经不局限于原来的概念了。
    calidion
        59
    calidion  
       2016-07-05 11:07:38 +08:00
    @madao

    你的意思是涉及数据的操作的就是后端?
    HTML5 里支持多种数据库与数据操作,是不是表示 HTML5 是后端?
    这种思路得好好检讨自己了,这种简单,基本的逻辑错误通常应该默认不会出现的。
    你没有搞清楚什么是前端,什么是后端。
    从上面的分析来看,数据还是划分前后端的依据吗?
    答案显然是否定的。

    这种么简单的逻辑这么多人搞不清楚,难道不是一件很可耻的事情。

    显然你并没有搞清楚。

    因为操作数据根本不是前后端的划分依据。

    前后的划分本质上是依据调用层次来看的。

    作为数据通常是需要持久化的,所以与 OS 与文件系统的联系比较紧密的。

    也就是相对来讲处于整个调用链的末端,只不过是一个存储业务或者数据业务而已。

    由于大多数据库也是基于 TCP/IP 连接的,跟 Web 服务器基于 TCP/IP 是一样的。
    本质上并没有明显的谁前谁后的界线。

    所以认为数据库比 Web 服务器更后面,本身就是错误的理解。

    关于你回复的两点,再统一回复下:

    1. 关于全栈工程师不是以技能多少来论的,而是以涉及的技术领域来论的。如果没有涉及前后端,就算技能再多,也不见得是全栈工程师。如果认为全栈工程师技术少了。你可以说说少在那里了。
    2. 前后端不是完全绝对的,但是 Web 前后端是绝对的。大部分的前后端虽然不绝对,但是也是有基础的区分的。所以持不可知论的人是可耻的。如果前后端你分不清楚,你为什么能分清楚 NODEJS 与 PHP ?从更无耻的角度,我还可以认为 PHP 与 NODEJS 无法区分。
    3. 耻辱这两个字用的还是恰如其分的。体现了国内技术不可知论者太多,混淆视听的人太多的现状。
    calidion
        60
    calidion  
       2016-07-05 11:09:45 +08:00
    @codelegant

    看你的回复,好象你对 MVC 的理解是错误的。

    model 层(控制逻辑与交互逻辑)

    这个显然应该是 C 层。

    麻烦先好好看看 MVC 是什么。。
    calidion
        61
    calidion  
       2016-07-05 11:19:16 +08:00
    @codelegant


    麻烦你区分下 Web 前后端与业务的前后端。

    不要混为一谈。

    将 Web 前后端与业务前后端混为一谈的人就是基本概念不清的表现。

    我一样可以将你分成前后端。前端是肚皮,脸皮,后端是背与臀。

    当我说你的前端与你的后端时,你也可能理解我说的是什么,但是这样是没有意义的,可笑的。

    因为我们讨论不在一个层面。

    我说你有一个全栈的身体,你有一个大前端的肚子?


    将 Web 前后端与业务的前后端混淆,本质是没有逻辑的表现。无它。
    allce231
        62
    allce231  
       2016-07-05 11:20:05 +08:00
    c++提供接口拿数据的话, php 只是 MVC 中的 C 层,可以说是属于前端的了

    腾讯很多是用 C++写后台, protobuf 协议 可以用 php 去拿数据然后显示这就属于前端范畴了

    当然 pb 协议也支持 js 了
    codeyung
        63
    codeyung  
       2016-07-05 11:27:56 +08:00
    逻辑没问题 说的通
    calidion
        64
    calidion  
       2016-07-05 11:29:27 +08:00
    @allce231

    麻烦通读一下这个帖子,然后看下我分享的链接。

    你们的错误在于没有分清楚 Web 前后端与业务前后端。
    allce231
        65
    allce231  
       2016-07-05 11:50:31 +08:00
    @calidion 没必要分那么清啊 就比如我们前后端分离一般是用 js 通过 json 去拿数据 然后才做 view 操作

    就拿 protobuf 来说 c++写好后台 但不提供 http 协议接口只提供 pb 接口 需要一个中间层( php )来解释 pb 协议 然后进行 view 操作

    你让后写后台的来操作的 html 代码是不是会更乱? php 做为 C 层也是我们前端来写是不是也前后端分离了?

    最后我说一句 php 作为 C 层很简单 不用操作数据库那些,写 php 跟写 js 代码没差多少 语法很像

    艺多不压身
    fsy0718
        66
    fsy0718  
       2016-07-05 11:52:00 +08:00
    我们公司除了与数据库直接打交道的中枢,其余都称之为前端展示。。。哈哈,哪怕你是写 csharp 的
    sunshinewu85
        67
    sunshinewu85  
       2016-07-05 11:53:41 +08:00 via Android
    为何我们老喜欢纠结于这些概念?这,相对而言是不是又反映了我们的浮躁?

    每一种语言的设计者,各有各的野心,而这些野心,会慢慢随着发展共荣和趋向相同呈现得不可思议,甚至一些语言能够把前后端都能揽入怀中,不足为奇,那就能一概而论地说这是前端这是后端?用什么做前后端,关键还得看项目,看到底你要解决或达到哪个层级的优化吧?当然,还得看市场人力资源的招募成本
    madao
        68
    madao  
       2016-07-05 11:55:35 +08:00
    @calidion https://en.wikipedia.org/wiki/Front_and_back_ends

    你开心就好,顺带一提, THRIFT 这个框架, Facebook 对它实践里说的是「 PHP is used for the front-end 」。

    PS: 一口一个层面,这种对话习惯很不好。
    madao
        69
    madao  
       2016-07-05 11:56:51 +08:00
    @calidion 另外,你的对话有大量的二元论,非此即彼的逻辑其实是不好的思考习惯。

    如果尝试着思考的时候加上「不同的场景」作为预设判断,那会想得更全面些。
    lookfeel
        70
    lookfeel  
       2016-07-05 12:05:40 +08:00
    @shyling node 代替 php 普遍吗现在?
    calidion
        71
    calidion  
       2016-07-05 12:22:04 +08:00
    @madao

    科学技术就是要讲求唯一性的,消除二义性的。
    如果无法消除,那就别个限定条件。
    比如我说 1+1 = 3 ,你说 1+1 =5 。
    难道我们就是对的?
    显然科学技术不是这样的,科学技术不是民主自由。
    科学技术并不会因为相信的人多就对,相信的人少就错。
    对于科学技术来说,通常需要有一个明确的结论。


    @allce231

    我们讨论的问题并不是简单不简单的问题。而是如何区分前后端的问题。
    任何时候 我们做的事情都是去复杂化。变简单是应该的。
    现在的问题是应该好好区分前后端。

    将 Web 前后端与业务前后端混淆对于目前来讲是很常见的错误。

    前后端是一个泛与相对的概念。
    而我主张要区分开是因为混乱导致概念不清,导致理解的错误。

    将 PHP 当成是前端就是扯蛋的结果。

    因为 PHP 本来就不是前端。

    PHP 只是可以在后端里从事相对比较靠前的业务。

    当然称为服务器前端也是可以的。但是这个前端与我们通常意义的 Web 前端完全是两码事。

    所以通常我们说前端是指 Web 前端,而不是服务器前端。

    如果说 PHP 是服务器前端,我不会有意见,但是将 PHP 称为前端,那就是对概念的混淆。
    madao
        72
    madao  
       2016-07-05 12:38:49 +08:00
    @calidion
    你这样说我就不乐意了,这个「唯一性」是错误的,严厉地说,是愚蠢的。
    如果 1 + 1 一定等于 2 ,咱不需要哥德巴赫猜想,不需要 Sierpinski-Mazurkiewicz 悖论,只需要知道 1 + 1 等于 2 ,事实上只是在特定语境和条件下, 1 + 1 等于 2 ,这个特定语境对于大部分人而言是普适语境罢了。

    另外你在遣词酌句的死胡同里快出不来了,专业名词的用处,是为了让我们更好地工作,而不是用来提升优越感。

    总而言之,我不会再往下说了,日安,祝你今天过得好。
    hqs123
        73
    hqs123  
       2016-07-05 13:07:01 +08:00
    PHP 世上最好语言^_^
    calidion
        74
    calidion  
       2016-07-05 13:10:08 +08:00
    @madao

    刚好是你在表现优越感。

    限定就是为了说明问题。

    唯一性当然不是在任何时候都是对的。

    但是只有有了唯一性,问题才是可解的。

    如果 1+1 不是等于 2,那任何的数据计算都没有意义。

    别跟我扯什么哥德巴赫猜想,跟 1+1 等于 2 没有任何关系。

    哥德巴赫猜想本身就是试图找到唯一性与确定性。

    你用一个科学家试图寻找确定性的事件说明事情是不唯一的?这不是很可笑的事情吗?

    如果科学不是寻找唯一性,他就没有必要猜了。因为如果结果都是不确定的,猜也是没有任何意义的,。

    所以说谁愚蠢呢? 祝你一生都过得好。

    既然真理掌握在你手里,为什么就不能有点优越感呢?优越感难道不是求真的动力之一吗?呵呵。
    chuhemiao
        75
    chuhemiao  
       2016-07-05 14:00:17 +08:00
    @hqs123 看到了真爱
    HarveyDent
        76
    HarveyDent  
       2016-07-05 14:29:28 +08:00
    各位长老,收了神通吧。
    jsyzchen
        77
    jsyzchen  
       2016-07-05 16:18:03 +08:00   ❤️ 1
    后端的前端,可以这样理解
    tttwww18
        78
    tttwww18  
       2016-07-05 19:02:12 +08:00
    没错!
    dbfox
        79
    dbfox  
       2016-07-05 20:06:49 +08:00 via iPhone
    php 是属于套 html 展示 ui 层的语言
    而后端更多的是一个一个的服务 是没有 ui 的
    比如搜索服务
    分布式文件存储服务

    当然 php 也可以写一些服务,但并不是优势
    比如 c++ 可以写更底层的东西
    dbfox
        80
    dbfox  
       2016-07-05 20:08:32 +08:00 via iPhone
    php 更多的是调用这些服务,实现一些表层的工作
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5275 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 08:00 · PVG 16:00 · LAX 00:00 · JFK 03:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.