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

9102 年了,真的有公司不用框架写 PHP 吗

  •  
  •   emeab · 2019-04-19 10:52:20 +08:00 via iPhone · 12997 次点击
    这是一个创建于 1805 天前的主题,其中的信息可能已经有所发展或是发生改变。
    今天面试一家公司(小公司 20 人不到)。问了几个问题,回答的时候面试官全程在干别的事情。有个问题是,你可以不用框架写项目吗? 我当时想了想 回答 需要 2-3 星期。
    第 1 条附言  ·  2019-04-19 19:12:42 +08:00
    这贴本来就是个吐槽.. 我自我介绍的时候全程在干别的事情. 全部下来什么技术问题都不问. 就问这个问题. 我说完就叫我等通知了. 幸好下午面的还行.和面试官聊的还可以. 感觉有戏
    88 条回复    2019-05-29 17:23:22 +08:00
    seeingrun
        1
    seeingrun  
       2019-04-19 11:00:38 +08:00
    我也面试过公司说用原生 PHP 写项目,面试官说这样会安全
    liuxu
        2
    liuxu  
       2019-04-19 11:01:44 +08:00
    我司
    mamahaha
        3
    mamahaha  
       2019-04-19 11:02:23 +08:00   ❤️ 1
    你瞧不起小公司,小公司也瞧不起你,每个人都应该反思一下这样的面试为啥会存在?
    emeab
        4
    emeab  
    OP
       2019-04-19 11:05:51 +08:00 via iPhone
    @mamahaha 我又没有瞧不起小公司 我要是瞧不起还去面试干什么。。。 小公司不用框架不更加累吗?框架写好的你又要实现一遍。。。
    emeab
        5
    emeab  
    OP
       2019-04-19 11:06:22 +08:00 via iPhone
    @liuxu 用原生写感觉如何。。。。
    lihongjie0209
        6
    lihongjie0209  
       2019-04-19 11:08:08 +08:00
    @emeab 框架 or library 这是一个问题

    有时候可能只需要一个 library 的功能, 结果引入了框架,那就得不偿失了。

    框架属于用起来爽,改起来麻烦。
    emeab
        7
    emeab  
    OP
       2019-04-19 11:14:00 +08:00 via iPhone
    @lihongjie0209 个人理解 小公司 基本上也就是写业务逻辑。基本上不会到改框架这地步。这楼基本上就是我面试失败的吐槽 因为面试官很不尊重我。。
    downstairs
        8
    downstairs  
       2019-04-19 11:17:19 +08:00
    当然有。根据需求来,就跟为什么还有人用 C 而不是 C#或者 C++进行编程一样
    agdhole
        9
    agdhole  
       2019-04-19 11:21:39 +08:00   ❤️ 2
    不用框架写,引入各种库写着写着自己就造了个框架
    emeab
        10
    emeab  
    OP
       2019-04-19 11:23:57 +08:00 via iPhone
    @agdhole 感觉不用引入自己写也基本是个基础框架了吧。。
    lihongjie0209
        11
    lihongjie0209  
       2019-04-19 11:32:22 +08:00
    @agdhole

    写代码核心框架除了 IOC 和 AOP,还需要什么库?
    DavidNineRoc
        12
    DavidNineRoc  
       2019-04-19 11:33:16 +08:00
    我觉得你应该回答他, 可以. 不要回答多少时间.
    可能面试官误以为你只会用框架, 而需要几周的时间去熟悉原生
    falcon05
        13
    falcon05  
       2019-04-19 11:35:39 +08:00 via iPhone
    估计之前这公司被只会用 thinkphp 写代码的坑过……
    zhanglp888
        14
    zhanglp888  
       2019-04-19 11:57:49 +08:00
    @agdhole 确实如此
    heraldic
        15
    heraldic  
       2019-04-19 11:58:13 +08:00
    框架是好东西,但是原生的也要会有一点的,要不真的没法沟通
    xiangyuecn
        16
    xiangyuecn  
       2019-04-19 12:13:24 +08:00
    面试造航母,上班拧螺丝。基础的框架怎么来的?人家原生代码写了一堆东西,然后感觉不错,就封装调整一下喂给别人吃,说不定人家就是看重你要有这个基础能力呢。
    ben1024
        17
    ben1024  
       2019-04-19 12:14:21 +08:00
    有原生的,但是多数用原生的目的是框架满足不了需求的情况,而不是为了其他的某些原因(安全,性能)
    wispx
        18
    wispx  
       2019-04-19 12:21:52 +08:00 via iPhone
    我司自己写的框架自己用
    xiaotuzi
        19
    xiaotuzi  
       2019-04-19 12:30:44 +08:00 via iPhone
    用一个数据库封装的 CURD,就可以写得很爽了,框架加了太多东西,很多你不需要的。
    如果原生都不擅长写,那框架出了 bug 就坏事了
    worldtongfb
        20
    worldtongfb  
       2019-04-19 12:40:03 +08:00 via Android
    前天面了一个 10 年的老系统 全部原生 听说几十 w 代码文件 不是行 是文件个数
    caoyouming
        21
    caoyouming  
       2019-04-19 12:53:39 +08:00
    php 原生,是指的将 php 和 h5 混在一起吗[/手动滑稽]
    eret9616
        22
    eret9616  
       2019-04-19 12:53:50 +08:00
    支持 3 楼 你要反思一下你为什么被邀请到这样的公司面试 这样的公司为什么会邀请你
    caoyouming
        23
    caoyouming  
       2019-04-19 12:56:21 +08:00
    如果大家觉得框架会限制很多,并且太多东西不需要,那你可以去尝试一下 yaf,这个就仅仅是你几十层建筑下的房基,你想装窗户或者建什么东西,自己去决定就好了吧。
    emeab
        24
    emeab  
    OP
       2019-04-19 12:57:45 +08:00 via iPhone
    @eret9616 因为我水平不行啊 而且我在小地方 工资不高 也就 5k 左右 税前的
    liuxu
        25
    liuxu  
       2019-04-19 12:58:23 +08:00
    @emeab 没什么感觉,框架无非就是有个路由,容器之类的使用方便,不用框架但依然会用一些组建,smarty 之类,其实还好
    emeab
        26
    emeab  
    OP
       2019-04-19 12:59:49 +08:00 via iPhone
    @caoyouming 有可能 因为我给他看的是 laraveel-admin 写的简单页面。。 我也说了有些页面是我自己写的 他没看
    whatsmyip
        27
    whatsmyip  
       2019-04-19 13:03:15 +08:00
    个人项目,不用框架,感觉太臃肿了

    自己整理了一套通用库,crud 够用了

    https://github.com/newnius/util4p
    caoyouming
        28
    caoyouming  
       2019-04-19 13:09:31 +08:00
    @emeab 那没啥说的了,php+h5 后期维护的代价有点大的呀,并且也就只有开发者自己才最懂代码。
    emeab
        29
    emeab  
    OP
       2019-04-19 13:10:33 +08:00 via iPhone
    @whatsmyip 如果遇到队列 延迟任务 这种呢? 引入包来解决吗 还有路由 鉴权
    dream7758522
        30
    dream7758522  
       2019-04-19 13:10:49 +08:00 via Android
    我在用 ci,太舒服了
    emeab
        31
    emeab  
    OP
       2019-04-19 13:13:00 +08:00 via iPhone
    @liuxu 主要是怕遇到需要用到队列这种的
    xnode
        32
    xnode  
       2019-04-19 13:15:28 +08:00
    如果简单的东西直接用 composer 算框架吗 直接撸就好了
    emeab
        33
    emeab  
    OP
       2019-04-19 13:17:20 +08:00 via iPhone
    @caoyouming 我这边小公司大部分都这样 前端就写用户界面 后台管理系统的后端全包 之前我也自己用过 vue-admin 来开发 后面觉得太累了 那些领导也不管你 反正做出来就行 所以现在我就用 laraveel-admin 来做 特别需求的页面也就自己写
    xiongliuhua
        34
    xiongliuhua  
       2019-04-19 13:17:52 +08:00
    不都是为了开发效率嘛
    whatsmyip
        35
    whatsmyip  
       2019-04-19 13:18:09 +08:00
    @emeab 后期打算放 redis,或者其他 mq,然后前端或者另外的进程 flush。php 原生就不支持异步,啥框架都没用吧。
    emeab
        36
    emeab  
    OP
       2019-04-19 13:21:52 +08:00 via iPhone
    @whatsmyip 我现在的 项目用的是 beanstalk redis 只用来做缓存
    janxin
        37
    janxin  
       2019-04-19 13:25:05 +08:00
    真的有=。=
    jhdxr
        38
    jhdxr  
       2019-04-19 13:28:57 +08:00
    我很好奇他们是否能够区分 framework 和 library。不用 framework 我觉得当然是可行的,实际上现在不少主流的 framework 本身也是在大量的 library 上拼出来的,或者反过来会把自身拆成不少 library,按需索取即可。
    caoyouming
        39
    caoyouming  
       2019-04-19 13:33:20 +08:00
    @emeab 这种我也写过,基本上可以说 php 开发人员承担整个项目所有,包括一部分前端。
    G900
        40
    G900  
       2019-04-19 13:47:33 +08:00
    说 9012 年的,我很期待明年你们怎么说,0202 年?
    hiddendeerer
        41
    hiddendeerer  
       2019-04-19 13:48:07 +08:00
    这要看技术老大怎么决定的,我第一家实习自己产品就是纯原生,不过后面遇到的公司都是框架了
    kid1412621
        42
    kid1412621  
       2019-04-19 14:39:59 +08:00
    Php 是什么
    kwklover
        43
    kwklover  
       2019-04-19 14:57:43 +08:00
    用框架未必好啊,现在框架那么多,不是每个开发人员熟悉的框架都一样,如果一个公司每个项目都了用不同技术体系,以后员工离职了,维护就麻烦了。用一些库来复用代码,提高效率到时可以。
    kwklover
        44
    kwklover  
       2019-04-19 14:59:24 +08:00
    而且有一些框架还是涉及授权问题,引入一个新框架,需要授权的成本评估的。
    hugee
        45
    hugee  
       2019-04-19 15:01:16 +08:00 via Android
    我公司纯原生 php。。。
    imdong
        46
    imdong  
       2019-04-19 15:03:56 +08:00
    遇到问题,先从自身找问题。
    想一下,你为什么会去这家公司面试。
    luanguang
        47
    luanguang  
       2019-04-19 15:09:55 +08:00
    有吧……
    KasonPasser
        48
    KasonPasser  
       2019-04-19 15:20:54 +08:00
    看做什么项目,有时原生比框架要爽得太多了。根本就用不到那么多复杂的东西。
    weiqk
        49
    weiqk  
       2019-04-19 15:35:44 +08:00 via Android
    我一直想不通为什么要框架,是开发效率高还是运行效率高?还是找会框架的程序员成本低?
    FantaMole
        50
    FantaMole  
       2019-04-19 16:10:32 +08:00
    是个坑,一般来说拿原生写也没什么,但是公司一般不会给这个时间,真全都不用可太麻烦了,赶进度的话至少 ORM 还是要的吧。以前拿 yaf 写新的微服务,很多都要自己造轮子,然后那个 sprint 东西就没做完,你拿原生写的性能好不好,领导在还没出成品的时候不会管的。
    encro
        51
    encro  
       2019-04-19 16:26:35 +08:00
    根据我的经验,不用框架的小公司,基本不靠谱
    emeab
        52
    emeab  
    OP
       2019-04-19 16:40:50 +08:00 via iPhone
    @weiqk 开发快 特别团队开发
    hero2040407
        53
    hero2040407  
       2019-04-19 16:46:05 +08:00
    @falcon05 只会 thinkphp 又如何?一个能把框架用好的程序员对于小公司足够了
    Kylin30
        54
    Kylin30  
       2019-04-19 16:52:52 +08:00   ❤️ 1
    我的比特币都是手挖的
    ershisi
        55
    ershisi  
       2019-04-19 16:54:23 +08:00
    我还见过到现在仍然在用 asp 的。神奇的是还活了下来。
    way2create
        56
    way2create  
       2019-04-19 17:14:54 +08:00
    我只比较烦写的很乱格式很乱的老旧臃肿代码 用不用框架另说
    linxb
        57
    linxb  
       2019-04-19 17:26:34 +08:00
    很多人都觉得自己写的东西比现成的好,然而往往事与愿违
    falcon05
        58
    falcon05  
       2019-04-19 17:26:37 +08:00 via iPhone
    @hero2040407 没如何,你这么激动干嘛?
    wmhx
        59
    wmhx  
       2019-04-19 17:32:10 +08:00
    我还见过把 php 当 shell 来写脚本做运维的呢, 有什么不可以?
    dabaibai
        60
    dabaibai  
       2019-04-19 17:41:15 +08:00
    用原生是基础 用框架显得很 low?
    sbhtdgg
        61
    sbhtdgg  
       2019-04-19 17:47:26 +08:00
    因为很多公司老项目是原生的,需要人维护。
    duola
        62
    duola  
       2019-04-19 18:44:25 +08:00
    @whatsmyip https://github.com/newnius/util4p/blob/master/examples.md#Validator
    if()Validator::isEmail($email)){
    echo 'valid email';
    }
    是不是错了。
    emeab
        63
    emeab  
    OP
       2019-04-19 19:10:09 +08:00
    @sbhtdgg 16 年才建的公司能有多老...
    whatsmyip
        64
    whatsmyip  
       2019-04-19 19:29:26 +08:00
    @duola 非常感谢,已修正
    Seanfuck
        65
    Seanfuck  
       2019-04-19 20:10:33 +08:00 via iPhone
    现在的框架越来越臃肿,封得越来越深,不用也有好处,要用就用简单的
    tanszhe
        66
    tanszhe  
       2019-04-19 20:57:02 +08:00
    极简 . 高性能 . 松耦合 . 分布式 . 可运行于多种环境(cli,apache/php-fpm,swoole)
    https://github.com/lizhichao/one
    earthyan
        67
    earthyan  
       2019-04-19 21:03:26 +08:00 via iPhone
    需要什么引入什么就好了
    yuekcc
        68
    yuekcc  
       2019-04-19 23:10:04 +08:00
    可能是 thinkphp 教育了一代人。现在的 php 框架也的确太重了。
    orvice
        69
    orvice  
       2019-04-20 00:16:01 +08:00
    属于可以但没必要
    shiji
        70
    shiji  
       2019-04-20 00:54:23 +08:00
    不用框架的原生 PHP 其实很考验 PHP 功底的。。
    AbrahamGreyson
        71
    AbrahamGreyson  
       2019-04-20 01:01:46 +08:00 via iPhone
    其实就是玩文字游戏,不用框架,也得七七八八引入一大堆开源项目来保证项目的基础设施。
    ORM,路由,验证,模板引擎,跨站过滤,加密解密,请求和响应接口,api,随便就能想到十几二十个。
    这些东西全都自己写,保证质量不是不可能,但是成本太高。
    jinliming2
        72
    jinliming2  
       2019-04-20 01:06:15 +08:00 via iPhone
    越小的公司,业务逻辑越简单。
    你说我就提供一个文件下载的接口,原生写也就几行代码,你却要引入一整个框架,只是为了只写“一行代码”来实现,是不是有点得不偿失?
    只有业务逻辑大到一定程度,复杂到一定程度,才需要引入框架。

    现在很多培训班出来的人,写代码离不开框架,根本连编程语言的基本功都没有,这样的人你敢要?
    问你能否脱离开框架写东西就是在问你语言基本功怎么样。如果框架不提供某个功能,你能否自行实现这个功能;如果框架里的某个功能存在缺陷或是安全漏洞,你能否自行进行修复。
    jinliming2
        73
    jinliming2  
       2019-04-20 01:10:48 +08:00 via iPhone
    如果仅仅只是做一个公司的官网,上面动态展示几条公告新闻,这样的需求你甚至直接写个 php 文件,html 嵌套 <?php 来写都是完全 OK 的,简单高效。
    cooaer
        74
    cooaer  
       2019-04-20 02:06:33 +08:00 via iPhone
    我司+ 1。开始业务少的时候还好,复杂了之后,那代码不能看,太混乱了!
    lincanbin
        75
    lincanbin  
       2019-04-20 02:52:18 +08:00
    PHP 本身路径即路由,文件即模板。
    没有框架也不是什么大问题。
    KasuganoSoras
        76
    KasuganoSoras  
       2019-04-20 03:20:22 +08:00
    此时一位热爱手写原生 PHP 的网友路过
    能用原生 PHP、在指定时间内能实现的,就不会去用框架。原本简简单单几十行代码能搞定的东西还要引入个框架,多累啊……

    从 2012 年开始写 PHP 到现在,各种主流框架 ThinkPHP、Laravel、Yii 都摸过了,自己造的框架也是多的数不过来,但是还是觉得写原生舒服,只要手快脑子灵活,用框架和不用框架没什么区别。要是框架出了 bug,翻文档找社区搞半天累得要死;自己写的出了 bug,快速定位问题,瞬间修复上线,毕竟还是自己写的东西自己最了解。
    KasuganoSoras
        77
    KasuganoSoras  
       2019-04-20 03:36:30 +08:00
    现在我服务器上很多服务,例如各大 Minecraft 服务端 Jenkins 的爬虫,MySQL 定期备份,大大小小的一些脚本我都用 PHP 来写,论效率和便捷性丝毫不输 Python,配合 pthreads 和 swoole 这些优秀的多线程扩展,可以把 PHP 玩出各种花样。
    真正熟练掌握原生写法后,大脑就像自带 PHP 解释器,几乎不需要运行都能预测出执行结果,有很多次我开项目都是从开始到完工都不需要测试,写完了运行一下一次过,0 warning 0 errors。
    jadeity
        78
    jadeity  
       2019-04-20 08:59:02 +08:00
    我猜面试官的意思是“能不用框架写项目,一定可以更好的用框架写项目”。
    shench
        79
    shench  
       2019-04-20 09:24:28 +08:00
    你这个回答是什么意思,2、3 个星期学习一下?
    weiqk
        80
    weiqk  
       2019-04-20 09:38:40 +08:00 via Android
    @emeab 经过实践证明,框架开发比原生开发慢的多,尤其是复杂项目,感觉框架是给设计师用的
    alexmy
        81
    alexmy  
       2019-04-20 10:28:10 +08:00
    我们的 PHP 项目中只有官网是用的 yii。别的都是自己手撸的。

    我自己的小项目,nginx 日志里面都是各种开源框架的 admin 路径探测。
    t2doo
        82
    t2doo  
       2019-04-20 17:51:39 +08:00
    看完全楼,就没有发现有人这么说:不用框架,原生自己写要花那么多时间,工资 Double 我是没问题的:)
    sandersyao
        83
    sandersyao  
       2019-04-20 18:45:05 +08:00
    看多大的任务了,我偶尔也会接到一些让我写爬虫爬网站的,最近爬了一个有赞的店铺代码量 367 行,就感觉不值当用框架了,况且我是 vim 党
    kekxv
        84
    kekxv  
       2019-04-20 20:03:48 +08:00 via Android
    你见过用原生 js 写前端的不,就是 jq 都不用的
    emeab
        85
    emeab  
    OP
       2019-04-21 05:38:37 +08:00 via iPhone
    @kekxv js 原生能接受啊 我就这样写的
    jjzhanhun
        86
    jjzhanhun  
       2019-04-21 14:00:39 +08:00
    一个 index.php 文件闯天下
    baiban
        87
    baiban  
       2019-04-28 20:10:20 +08:00
    其实 PHP 不用框架也没啥大问题。现在大部分程序用框架,其实也就是主要利用它的路由、DB 类还有 LOG 日志。
    AbrahamGreyson
        88
    AbrahamGreyson  
       2019-05-29 17:23:22 +08:00
    @sandersyao 想必阁下这 367 行代码中一定也包含了网络异常的处理,有赞店铺防爬虫(如果有)逻辑的处理,还包含了一个合格爬虫大体上应该具备的多线程抓取,中途异常的进度保存以及日志功能喽

    我想表达的是,绝大多数夸夸其谈不需要用框架的人,其实压根也没对健壮性有那么强的要求,并不意味着他们水平多棒棒。这个角度上来看,用与不用,很可能是两拨追求不同东西的人。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1311 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 17:47 · PVG 01:47 · LAX 10:47 · JFK 13:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.