一个刚从 Java 转 Go 的程序员如何看 50W 级别的 PHP 代码 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
flowyi
V2EX    PHP

一个刚从 Java 转 Go 的程序员如何看 50W 级别的 PHP 代码

  •  
  •   flowyi 2014 年 5 月 30 日 9373 次点击
    这是一个创建于 4348 天前的主题,其中的信息可能已经有所发展或是发生改变。
    rt.

    php用的是yii框架,需要转成Go的,我看着到处都是不知道里面有神马的array的弱类型php代码就想死……
    求经验,求指点~ Orz
    第 1 条附言    2014 年 5 月 30 日
    好消息!刚才漏了去掉extensions的代码,去掉之后把所有的yii的代码去掉之后只有20W,好开心~
    34 条回复    2014-06-13 10:38:28 +08:00
    unionx
        1
    unionx  
       2014 年 5 月 30 日
    标题挺有趣。呵呵。
    andybest
        2
    andybest  
       2014 年 5 月 30 日
    什么叫:50W 级别的 PHP 代码
    explon
        3
    explon  
       2014 年 5 月 30 日
    facebook 的代码也就60多万行
    flowyi
        4
    flowyi  
    OP
       2014 年 5 月 30 日
    @andybest 就是50W行
    griffinqiu
        5
    griffinqiu  
       2014 年 5 月 30 日 via iPhone   1
    呵呵,语言是个锤子
    skybr
        6
    skybr  
       2014 年 5 月 30 日
    基于yii还有50w行, 那你做好写300万行Go的打算吧。
    ChiangDi
        7
    ChiangDi  
       2014 年 5 月 30 日
    钓鱼帖,大家勿上当
    flowyi
        8
    flowyi  
    OP
       2014 年 5 月 30 日
    @explon 我粗略统计的,把注释也算进去了, 2000多个文件。
    mortal
        9
    mortal  
       2014 年 5 月 30 日 via Android
    看到标题笑出来了(∩_∩)
    flowyi
        10
    flowyi  
    OP
       2014 年 5 月 30 日
    @skybr ……让我去死的节奏吗?
    xi4oh4o
        11
    xi4oh4o  
       2014 年 5 月 30 日
    不要看代码,直接看功能写功能吧xsk
    zlbruce
        12
    zlbruce  
       2014 年 5 月 30 日
    看标题想到我同学以前找工作
    投的是 C/C++,面试时面的是 Java,最后工作用的是 Flex
    pubby
        13
    pubby  
       2014 年 5 月 30 日
    为啥要全站转go啊

    语言本省造成的瓶颈不会太普遍啊,针对性的改成go版本。

    其他还是保持php现状,多堆几台服务器而已。

    全部转go,出于啥目的啊,作死的节奏....
    bakac
        14
    bakac  
       2014 年 5 月 30 日 via iPad
    你不会还想连框架都翻译成Go吧
    canesten
        15
    canesten  
       2014 年 5 月 30 日
    PHP->HipHop
    行不行?
    zoowii
        16
    zoowii  
       2014 年 5 月 30 日
    为什么逐步替换部分服务为go, 逐步蚕食. 一次性几十万行...

    好奇一个yii项目这么多代码怎么写出来的...
    wuxqing
        17
    wuxqing  
       2014 年 5 月 30 日
    50W行的PHP代码,实在是猛!
    jarlyyn
        18
    jarlyyn  
       2014 年 5 月 30 日
    看了下自己写的yii模块,大概7w代码,对60w的代码表示下敬意。

    就楼主本身的问题而言,不太明白楼主的逻辑。

    去看代码干嘛,研究数据库啊……

    入口一样,结果一样,管他弱了行array self什么呢。

    难不成你还要去实现behavia?event?
    guotie
        19
    guotie  
       2014 年 5 月 30 日
    难道是weibo的代码?
    overlords
        20
    overlords  
       2014 年 5 月 30 日
    欢迎进入go的世界来。
    georgetso
        21
    georgetso  
       2014 年 5 月 30 日
    @jarlyyn 这个是好方法。翻译20W行代码,真心不如维持接口重新实现。
    flowyi
        22
    flowyi  
    OP
       2014 年 5 月 30 日
    @jarlyyn 我也想完全抛弃现有代码照着文档愉快的写代码,但是现实是,没有文档……
    当然也可看前端的请求和返回的结果,但是得知道去哪里查数据,数据格式是怎样,那堆json是什么意思,各种特殊情况等等~ 各种问题,还是要看代码才懂的

    @pubby 数据部分要转Go。php实现的有性能问题,不仅是语言本身比较慢,算法、结构方面也需要重构。
    flowyi
        23
    flowyi  
    OP
       2014 年 5 月 30 日
    @pubby 至于为什么选择Go?因为公司其他项目已经用Go写了,效果良好吧~ 从我的体验来说,Go用来写服务器还是挺爽的,简洁,强大,很多东西直接看源码就会了。
    jarlyyn
        24
    jarlyyn  
       2014 年 5 月 31 日
    @flowyi 不知道你用多少语言写过项目。每个语言都有自己的魔法糖。虽然yii看上去很像ror,但实际用的代码很php,用了不少php特性。
    看着代码翻的话。呵呵。
    jarlyyn
        25
    jarlyyn  
       2014 年 5 月 31 日   1
    @flowyi
    对go语言不熟,但至少知道他应该是强类型的编译型语言,虽然编译的很快。
    首先是yii的基础,也就是components。
    yii的理念是lazyload。所有的组建在使用前都是字典array(或者直接是类名的string。)
    使用时再实例化该类。用很多语言搞定这个基本蛋疼死。
    还有就是import。利用了php的autoload.本质上是和明明空间背道而驰额。用比较重视命名的语言,会哭死吧。
    至少让我用python实现我的yii代码,我都很郁闷。
    regmach
        26
    regmach  
       2014 年 5 月 31 日
    @jarlyyn 嘿..你也在用Yii吗?
    有群吗?交流下
    konakona
        27
    konakona  
       2014 年 5 月 31 日
    光PHP就50W行你确定?呵呵
    说下这个项目的服务行业。
    hitsmaxft
        28
    hitsmaxft  
       2014 年 5 月 31 日
    50w 行? 我不信


    @jarlyyn Yii 的依赖注入特性, Spring 也能做到, 只是得看实现水平. 另外yii 的 Component 虽然方便, 大量使用后期维护基本是死定了, 这玩意就是个全局接口, 没想清楚怎么用, 跟 全局变量 基本没啥区别.
    wulin
        29
    wulin  
       2014 年 5 月 31 日
    50W是算上了yii框架的代码吗....
    不要慌,一定是领导热晕了拍脑袋做的决定
    jarlyyn
        30
    jarlyyn  
       2014 年 5 月 31 日
    @hitsmaxft 是CComponent,不是applcation的compontent.那个是CApplacitonComponent。
    spoonwep
        31
    spoonwep  
       2014 年 5 月 31 日
    20W也是非常厉害……
    flowyi
        32
    flowyi  
    OP
       2014 年 6 月 1 日
    谢谢各位的回复!
    静下心来做吧,目前也只能这样了~
    NCE
        33
    NCE  
       2014 年 6 月 13 日
    不要慌,领导是想让你主动辞职而已~

    话说50w这个完全不可信……

    再就是,Yii那么好,居然让转Go……
    NCE
        34
    NCE  
       2014 年 6 月 13 日
    你见过有人说php内存泄露过吗?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2887 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 78ms UTC 14:11 PVG 22:11 LAX 07:11 JFK 10:11
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86