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

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

  •  
  •   flowyi · 2014-05-30 17:21:24 +08:00 · 8791 次点击
    这是一个创建于 3865 天前的主题,其中的信息可能已经有所发展或是发生改变。
    rt.

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

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

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

    全部转go,出于啥目的啊,作死的节奏....
    bakac
        14
    bakac  
       2014-05-30 18:34:32 +08:00 via iPad
    你不会还想连框架都翻译成Go吧
    canesten
        15
    canesten  
       2014-05-30 18:39:37 +08:00
    PHP->HipHop
    行不行?
    zoowii
        16
    zoowii  
       2014-05-30 19:01:38 +08:00
    为什么逐步替换部分服务为go, 逐步蚕食. 一次性几十万行...

    好奇一个yii项目这么多代码怎么写出来的...
    wuxqing
        17
    wuxqing  
       2014-05-30 20:04:23 +08:00
    50W行的PHP代码,实在是猛!
    jarlyyn
        18
    jarlyyn  
       2014-05-30 21:09:29 +08:00
    看了下自己写的yii模块,大概7w代码,对60w的代码表示下敬意。

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

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

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

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

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


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

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

    再就是,Yii那么好,居然让转Go……
    NCE
        34
    NCE  
       2014-06-13 10:38:28 +08:00
    你见过有人说php内存泄露过吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1793 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 16:25 · PVG 00:25 · LAX 08:25 · JFK 11:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.