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

小生求问 公司为什么要用一些小框架

  •  1
     
  •   adminnn · 2018-08-10 14:16:39 +08:00 · 8553 次点击
    这是一个创建于 2331 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我是实习生,来到一家小公司,发现这个公司用 ci 框架配合自己封装的框架。这里并不是说 ci 不好,我也是才学 php,只是感觉 ci 并不是那么火,而且个人拙见 ci 不如 tp 和 laravel。而且他自己封装的框架貌似也没有多好用,还必须要让我们学让我们开发?为什么?
    77 条回复    2018-08-12 18:31:37 +08:00
    ferock
        1
    ferock  
       2018-08-10 14:17:32 +08:00 via iPhone
    可以选择离职…
    898601566
        2
    898601566  
       2018-08-10 14:19:21 +08:00
    因为重构是要成本的
    NotNil1
        3
    NotNil1  
       2018-08-10 14:19:23 +08:00
    小公司用小框架没啥问题吧,问题是你不该来这里吧
    doublleft
        4
    doublleft  
       2018-08-10 14:19:52 +08:00   ❤️ 1
    CI 设计的还不错的,也曾经“火”过,只是后来不活跃了
    adminnn
        5
    adminnn  
    OP
       2018-08-10 14:20:30 +08:00
    @ferock 实习工作太难找。我比较想知道原因
    malaohu
        6
    malaohu  
       2018-08-10 14:21:05 +08:00
    没有最好的,只有更合适自己公司的
    Jimrussell
        7
    Jimrussell  
       2018-08-10 14:21:25 +08:00
    不知道多少年前,最初起事的那个猿贪图简单选了一个小框架,然后又修修补补 N 年满足该公司的各项业务需求、开发需求。很简单的道理,时至今日这套框架虽然代码丑陋,而且对于新入公司坑的员工来说镀金价值很小,但是站在公司角度来看是成本最低的选择。

    楼下补充 6 字箴言。
    eb22fbb4
        8
    eb22fbb4  
       2018-08-10 14:22:55 +08:00   ❤️ 1
    用什么框架这跟公司历历史遗留和初期员工技术喜好有关,不要太再意用什么框架,重要的是框架背后的设计思想,熟悉这些思想之后用什么框架都不会太难,另外不要轻易去主观评价一个框架的好坏,尤其是你对它缺乏足够了解的时候。
    jookr
        9
    jookr  
       2018-08-10 14:25:34 +08:00
    忍还是滚
    It's your call.
    gclove
        10
    gclove  
       2018-08-10 14:26:19 +08:00
    ci 用的人不少吧
    adminnn
        11
    adminnn  
    OP
       2018-08-10 14:27:02 +08:00
    @898601566 受教了
    adminnn
        12
    adminnn  
    OP
       2018-08-10 14:27:17 +08:00
    @ljtletters 为什么不该来这里
    adminnn
        13
    adminnn  
    OP
       2018-08-10 14:27:25 +08:00
    @doublleft 受教了
    adminnn
        14
    adminnn  
    OP
       2018-08-10 14:27:47 +08:00
    adminnn
        15
    adminnn  
    OP
       2018-08-10 14:28:14 +08:00
    @jookr 忍~~~~~~~~~~~~~~
    adminnn
        16
    adminnn  
    OP
       2018-08-10 14:28:31 +08:00
    @gclove 可能是太基础了,很少听人说过
    crist
        17
    crist  
       2018-08-10 14:37:13 +08:00
    是你的志向太远大了,It's your call。
    NotNil1
        18
    NotNil1  
       2018-08-10 14:38:28 +08:00
    @adminnn 楼上把理由说差不多了啊
    qiayue
        19
    qiayue  
       2018-08-10 14:38:29 +08:00
    ci 文档很详细,跟着教程一学就会
    之前我们公司一个写 c 的女生,完全不懂 php 的情况下,花了一周就学会使用 ci 了
    k9982874
        20
    k9982874  
       2018-08-10 14:43:12 +08:00
    @qiayue #19 c/c++的转什么都快,基本都是 1 星期左右,毕竟当初学 c/c++是以年为单位的,底子牢。
    killerv
        21
    killerv  
       2018-08-10 14:45:32 +08:00
    CI 没什么不好的,用框架就是为了开发速度+规范,只要不是太烂的框架没多大区别。
    heww
        22
    heww  
       2018-08-10 14:46:46 +08:00
    10 年前我知道并使用 ci 框架时,tp 和 laravel 还不知道在那里!
    heww
        23
    heww  
       2018-08-10 14:47:27 +08:00
    10 年前大概是在 2008 年吧!
    sonyxperia
        24
    sonyxperia  
       2018-08-10 14:55:16 +08:00
    ci 还是可以的吧,只不过现在有更火的了
    zjsxwc
        25
    zjsxwc  
       2018-08-10 15:05:32 +08:00
    - ci 以前还是很火的.

    - 框架真没有多大的影响,更重要的业务代码质量,代码烂再好的框架也维护不了.
    fcten
        26
    fcten  
       2018-08-10 15:29:30 +08:00
    github 1 万 6 千 star 的小框架还行
    1762628386
        27
    1762628386  
       2018-08-10 15:33:48 +08:00
    ci 框架很赞的
    ferock
        28
    ferock  
       2018-08-10 15:42:38 +08:00
    @adminnn 有一个词叫 ,现状!。。。各种历史原因呗,干嘛纠结。
    gw1992225
        29
    gw1992225  
       2018-08-10 15:45:17 +08:00
    额 其实 CI 框架是很不错的框架 只是定位不同 其次既来之则安之 想用 laravel 的话可以换一家
    learnshare
        30
    learnshare  
       2018-08-10 15:51:11 +08:00
    因为稳,而且懒。谁改谁掉坑里
    est
        31
    est  
       2018-08-10 15:53:55 +08:00
    可能这就是依然还是小公司的原因吧。
    A555
        32
    A555  
       2018-08-10 16:06:09 +08:00
    稳定大于天
    phpnote
        33
    phpnote  
       2018-08-10 16:16:32 +08:00
    这描述好熟悉........公司不会是在浦东吧
    andrewDDC
        34
    andrewDDC  
       2018-08-10 16:29:15 +08:00
    ci 稳定,效率还过得去,学习成本低,灵活。从没觉得他是个小框架。
    jswh
        35
    jswh  
       2018-08-10 16:29:51 +08:00
    micro framework 了解一下
    ioth
        36
    ioth  
       2018-08-10 16:33:45 +08:00
    php,有框架就不错了,这是成本
    adminnn
        37
    adminnn  
    OP
       2018-08-10 16:47:31 +08:00
    @phpnote 不是 二线
    adminnn
        38
    adminnn  
    OP
       2018-08-10 16:48:31 +08:00
    adminnn
        39
    adminnn  
    OP
       2018-08-10 16:48:47 +08:00
    @est 可能吧
    adminnn
        40
    adminnn  
    OP
       2018-08-10 16:49:30 +08:00
    @heww 膜拜大佬
    Mazexal
        41
    Mazexal  
       2018-08-10 17:19:00 +08:00
    @eb22fbb4 大哥你头像我还点进去看了半天, 确实厉害
    grayon
        42
    grayon  
       2018-08-10 18:32:50 +08:00
    ci 就是小巧精炼,简单说就是够用
    laravel 感觉有些复杂,写起来感觉不像是在写 PHP 了
    fleam
        43
    fleam  
       2018-08-10 18:40:54 +08:00 via iPhone
    简单说下什么是大项目……
    codespots
        44
    codespots  
       2018-08-10 20:43:39 +08:00
    我挺喜欢 CI 框架的,但老实说,我觉得还是重了点,还是有一堆不必要的东西在里面,要是能把烂七八糟的关于前端的东西裁剪掉才好呢
    IssacTomatoTan
        45
    IssacTomatoTan  
       2018-08-10 20:55:37 +08:00
    框架只是工具 别纠结吃饭是要筷子还是叉子 东西好吃就行
    sfree2005
        46
    sfree2005  
       2018-08-10 20:59:52 +08:00   ❤️ 1
    我开始工作的时候也是用很冷门的框架,有些轮子需要自己造,相比于热门框架可以直接用来说麻烦很多。虽然自己造的轮子和热门框架的比起来差了一大截,但还是学到了不少东西。之后过渡到热门框架,其实学习成本真的不高。基本功是最重要的,框架怎么变都会很快学会,不必担心太多。
    Cambrian07
        47
    Cambrian07  
       2018-08-10 21:07:49 +08:00 via Android
    有时候我也会有这种疑问,不过我一般会直接问领导,看看是什么样的原因选择了这个框架,如果换其他框架的话可行性已经时间成本分别是多少
    adminnn
        48
    adminnn  
    OP
       2018-08-10 21:49:47 +08:00
    adminnn
        49
    adminnn  
    OP
       2018-08-10 21:50:03 +08:00
    @Cambrian07 好想法 周一我也去问问
    adminnn
        50
    adminnn  
    OP
       2018-08-10 21:50:58 +08:00
    @fleam 就是那种大到膨胀的 (笑哭
    lihongjie0209
        51
    lihongjie0209  
       2018-08-10 21:52:51 +08:00
    只要框架提供一些必备的功能, 并且还在维护中, 那么框架永远是越小越好
    yourimage
        52
    yourimage  
       2018-08-10 22:22:51 +08:00
    归结起来是成本.
    zhengjian
        53
    zhengjian  
       2018-08-10 22:27:52 +08:00
    我觉得 CI 的文档是开源的典范了(个人认为
    kzzhr
        54
    kzzhr  
       2018-08-10 22:29:17 +08:00 via Android
    如果是历史原因可以理解,如果没啥追求赶紧撤
    akira
        55
    akira  
       2018-08-10 22:59:06 +08:00
    要是现在还有哪家公司在用 foxpro cobol 什么的 ,绝对是不差钱的公司
    t6attack
        56
    t6attack  
       2018-08-10 23:02:20 +08:00   ❤️ 1
    学就学呗。公司收学费还是咋的?
    johnnie502
        57
    johnnie502  
       2018-08-11 01:09:00 +08:00
    我大清自有国情在此
    Tyanboot
        58
    Tyanboot  
       2018-08-11 02:16:36 +08:00 via Android
    CI 其实还是挺不错的,简单高效易学,没有 laravel 封装的那么复杂,只提供了一个轻量级的框架,需要什么可以很方便自己拓展。

    CI 还没出 3 的时候我差不多刚学 PHP 一两天,就花了十几分钟看了下 CI 给的一个纯英文的视频,就可以上手写简单的小网站了。后来没多久 CI 3 就出了,尝试看了下 CI 的实现,也是非常轻松的。

    laravel 倒是当初看的一头雾水,半天也不知道一堆概念是什么。

    所以很可能是你们公司当时选的时候大部分人技术水平还一般,在需要快速出成品的时候去学 laravel 之类的太花时间,就选择了简单的 CI。等后来写的越来越多的时候也没办法重构到其他框架了。

    框架什么的都不是重点,只是一个工具,最主要是其中的思想。
    ericgui
        59
    ericgui  
       2018-08-11 04:18:03 +08:00
    其实每个公司的代码,都是历史遗留产物,比如 Facebook 一开始是用 PHP 写的,越做越大了,只能在 php 这一条路上走到黑了。

    说白了,就是成本。

    如果公司下决心花超级大的代价重构,技术上肯定可行,但几乎没有公司会选择这么干。
    swkl86
        60
    swkl86  
       2018-08-11 07:23:56 +08:00 via Android
    故事 1
    我们定当年 ci 框架的时候吧,基本上是公司里那几个领头也就是主程当时用着顺手能快速简单做起来投产,然后发觉框架太精简了,并且 ci2 有个知名的 cookie bug。然后一路升级封装拆分。

    后来我实在受不了那个 bug,导致很多业务线干扰,刚好 ci3 稍微稳定了,我就直接升级上去。
    之后就习得稳定大过天技能,那段时间带来的损失和几个月修 bug 让我之后远离了 ci,也懂得了没事别手欠去对投产项目搞什么新技术就是牛 x 一定要升级,谁在没把握的情况下升级谁傻逼。
    这就是所谓的历史债务吧

    不是说 ci 不好,当然也可能是写的太烂了,做个小项目 ci 还是小巧能干的,以至于小到稍微复杂些的业务就得自己造轮子。

    但是对于入门学习来说还是很快的,当然了,现在各种技术的快速迭代升级和需求的更新 ci 已经显得有点那么力不从心。

    故事 2
    后面到我定前台技术栈的时候,
    个人倾向于 yii2,不为什么,大!! 全!! 不谈什么臃肿复杂,反正不用怎么造轮子。
    但是这方面人稍微比较难招,当时项目比较紧急
    选 tp3 吧,看那语法不是说不好,只是感觉别扭感觉后期也是坑
    当时 tp5 在 a1 阶段,还有的更新,抛弃。
    那 laravel 吧?当时应该还在 4 阶段,看了下版本更新速度跨度过大,不熟,手底下班子也是急忙组的用不了
    zf ?不!这是真臃肿了,本土氛围也不好
    最终选 yii2 ?不,不合适,人员培训,招聘,成本,氛围都很勉强。

    犹豫期间最终看 tp5 到 a2 了,还是 tp5 把,培训班生产,成本低,人多,质量不好可以外包。
    就这么愉快的决定了!

    为啥不选 java ? go ? py ?
    1.成本高,老板不乐意
    2.好的都在隔壁 A 厂和养猪厂了。
    3.公司无法把控技术风险
    所以还是选择我大 php 啦,又快又便宜,还满足当下
    毕竟这个已经是跑着的业务不能轻易跨语言,对已有技术栈这样升级不是闲钱多么(主要是菜 :dog )

    最终定的 tp5 一路打怪升级进行对老业务的系统升级。
    是的,没错,又一次挖了个巨坑,技术人员的整体水平不行以及新需求的不断推进。后面死翘翘了

    故事 3
    从 tp5 一直挖坑下去,多多少少大部分水平都慢慢上来了。都能写精炼框架了。为啥?中间放手他们自己去折腾了其他几个小框架,大大小小几个项目。花钱砸出来的(哭一会)。
    最后,现在基本上就是 tp5 和 laravel5 混着用了,他们顺手用哪个,两个技术部门,交叉开发。
    现在慢慢让他们往 c 拓展框架走
    哦,后面还有一个独立技术小组,走的 java
    前端那边提议开始用 vue,之前用 ag2
    后端那边也开始折腾提议 go
    代价有点大,但是挺开心嗯,就是经常心痛想砍人

    故事 4
    新项目上区块链
    二话不说肯定 go 啦,不好招,java ?也难
    C ?不可能,招不到。(别说钱的问题,问题是没)
    后面定的
    Go 做核心处理 api
    Php 做前台 laravel5
    Py3 爬虫
    外包扎场前端 vue
    不是说不好招么?怎么又搞上了,emmmm 核心逻辑 go 自己几个主程构架去写,php 负责前端业务和数据封装转换,爬虫内推了个
    问题?有的,毕竟扎场还是属于外包,一个单页网站首页白屏 20 多秒体会下。拆页解决中。

    以上就是个人遇见对框架选型以及历史遗产又或是外在影响最终导致的技术或框架选型之类的问题所见。
    可能有点歪楼,手机码字,排版见谅

    以上
    nicevar
        61
    nicevar  
       2018-08-11 09:24:35 +08:00
    看项目情况,盲目的上 tp 或 laravel 更蠢,小公司用 CI 挺好的,代码量少易上手,如果公司技术不是占重要位置,比如一些旅游公司之类的,很多都用 CI,招人方便
    上面还有人忍受不了 CI 的 bug 的,知道有 bug 还不改也真是能忍
    Seanfuck
        62
    Seanfuck  
       2018-08-11 09:39:26 +08:00
    CI 除了 cookie 问题,其他都还好啊,框架不都那样,tp 和 laravel 并没有多好啊,一个系统,大部分功能都是增删查改,出问题不能怪框架。
    githua
        63
    githua  
       2018-08-11 09:59:10 +08:00
    不要在意框架 -> 不要在意语言
    都是工具而已,夏天穿拖鞋,冬天穿棉鞋,各有各的用处。
    最紧要的是揾到钱!!!切记
    githua
        64
    githua  
       2018-08-11 10:02:32 +08:00
    我的站也是基于 CI 创建的,感谢 CI,简单强大。
    ibugeek
        65
    ibugeek  
       2018-08-11 10:21:58 +08:00
    我用 Laravel,前期先考虑项目怎么活下来,后面大了再迭代或者重构。
    yuanwenQQ
        66
    yuanwenQQ  
       2018-08-11 10:34:20 +08:00
    实习,就是接触一些新东西。再小的框架,存在就说明有其合理的地方
    ymj123
        67
    ymj123  
       2018-08-11 10:37:04 +08:00 via Android
    CI 不是持续集成吗?
    PythonAnswer
        68
    PythonAnswer  
       2018-08-11 13:05:09 +08:00 via iPhone
    自己重构出来,写上文档,掏出来给老板。
    wlee1991
        69
    wlee1991  
       2018-08-11 13:28:16 +08:00
    @ymj123 CodeIgniter
    dany813
        70
    dany813  
       2018-08-11 14:11:31 +08:00
    @swkl86 老哥稳
    VinsonGuo
        71
    VinsonGuo  
       2018-08-11 18:12:13 +08:00 via iPhone
    小公司里面没几个人懂技术,框架都 是程序员自己选的
    gouchaoer2
        72
    gouchaoer2  
       2018-08-12 03:30:16 +08:00 via Android
    @swkl86
    ci2 啥 cookie bug 自己不能跟踪解决的。。。能列一下么
    dbpe
        73
    dbpe  
       2018-08-12 12:46:08 +08:00
    emmmmmmmm。。。同。。除了一个代码生成的思想。。其他一无是处。。封装过高。。然后针对一些复杂的情况。。。。比原生写起来更烦。。
    scofieldpeng
        74
    scofieldpeng  
       2018-08-12 13:22:23 +08:00
    所以我没猜错楼主如果当上了什么小领导,第一件事情就是,这些都是垃圾,来,用牛逼的框架,牛逼的语言重写一遍,不要问我为什么,因为我遇到过这种“厉害”的大牛,2333
    swkl86
        75
    swkl86  
       2018-08-12 17:14:58 +08:00
    @nicevar 如果不解决如何投产,只是底层框架没去修正后面也没去修,主程后面都走了,新来的不会,自己为了方便和用 ci3 才升级上去的

    @gouchaoer2 ci2 的 cookie 都会放到一个字段上,而 session 要是没用其他 handle 驱动的话,都会放在 cookie 上,然后 cookie 进行 base64 后长度超过上限,cookie 上限大小是又限制的。
    我们自己会使用第三方 handle 去处理 cookie 问题,session 也会加入驱动解决,可新手不会。这才有后面一系列项目持续出现这个问题,当时是出于教育目的去教他们如何解决如何处理所以没有去根本解决。
    后面就是老是出现在这个问题上才直接去升级框架

    楼上的大佬们脑洞真是可以,我只是阐述极小小小小小小小小小小小小一部分公司面对技术栈是如何选择的,在当前的情况下为何会这么选择。
    选择完后要保证项目可控进度之外,如果不对其框架设计思想和原理进行解刨以及使用框架的目的和意义,那我要人干嘛,直接找个靠谱团队对接完事了。

    使用框架的目的不就是为了保证项目的可控性和进度之外,学习优秀框架的设计思想么?包括框架对本项目的意义?
    你们一群大佬坐在一起当然选择直接造轮子啊,直接选择发明一种语言啊框架啊。
    我们这种菜鸟没本事才只能在前期先选择你们造好的轮子和框架去先活下来。不然我们什么都不懂的情况下造的轮子和框架让你们用?体会下一个项目除了 bug 和一堆眼瞎的代码?这不是纯粹找喷么?

    感觉说多了都是找喷,v2er 都是大佬,你们牛,我就一彩笔,23333
    nicevar
        76
    nicevar  
       2018-08-12 17:53:32 +08:00
    @swkl86 首先 CI 的代码量很少,而且还是开源的,选择这样的框架正是因为它是轻量级的,有问题好自己处理,发现 bug 没人处理的情况下你们一直就放着,那换个框架遇到这种情况怎么办?这种问题是需要技术解决的,而且技术难度也不大,并不是一句我是彩笔逃避就完事了,几乎开源的东西都会遇到各种冷门的 bug,等官方修复要大版本,项目要上线了你肯定等不起。
    mingyun
        77
    mingyun  
       2018-08-12 18:31:37 +08:00
    @swkl86 经验丰富啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2771 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 02:13 · PVG 10:13 · LAX 18:13 · JFK 21:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.