Go 语言的自省能力是不是很弱? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
yuankui

Go 语言的自省能力是不是很弱?

  •  2
     
  •   yuankui Jan 6, 2016 3419 views
    This topic created in 3764 days ago, the information mentioned may be changed or developed.
    这么一来,设计一些框架感觉难度好高.

    要设计像 rails 这样灵活的一个框架简直不可能了?

    我是不是不应该有这样的想法?
    28 replies    2016-02-19 09:14:37 +08:00
    ixiaohei
        1
    ixiaohei  
       Jan 6, 2016
    不知所云啊
    sophymax
        2
    sophymax  
       Jan 6, 2016
    编译型的语言做自省这个事情,有可能是选错了方案
    eric
        3
    eric  
       Jan 6, 2016
    你确定要用一个强类型的语言实现 Rails 级别的灵活性?像 `Time.now + 1.day` 这种写法如果直接 port 到 Go 根本过不了编译器这关。
    firefox12
        4
    firefox12  
       Jan 6, 2016   8
    你不知道 动态一时爽,重构火葬场吗?
    itfanr
        5
    itfanr  
       Jan 6, 2016
    @firefox12 哈哈!!!
    500miles
        6
    500miles  
       Jan 6, 2016
    自省什么鬼....

    反射吗? 还是和 反射 不太一样的另一种东西 . ..
    lightening
        7
    lightening  
       Jan 6, 2016
    @500miles 就是反射,翻译不同。
    nareix
        8
    nareix  
       Jan 6, 2016
    请使用 go generate
    loading
        9
    loading  
       Jan 6, 2016 via Android   1
    框架不是设计出来的,是实际项目做的过程中,剥离出来的,你路没走对。

    东西都没做过就谈写框架?
    qian19876025
        10
    qian19876025  
       Jan 6, 2016
    看球不懂 什么是反射? 什么是自省
    hqdmy
        11
    hqdmy  
       Jan 6, 2016
    楼主解释一下什么叫自省能力?学习一下
    firemiles
        12
    firemiles  
       Jan 6, 2016
    @lightening 我一直理解的自省和反射是不同的功能,自省只有查看属性功能,反射还能修改属性。
    firemiles
        13
    firemiles  
       Jan 6, 2016
    自省是 inspect ,反射是 reflect
    mcfog
        14
    mcfog  
       Jan 6, 2016
    @firemiles

    自省是 introspection 吧
    firemiles
        15
    firemiles  
       Jan 6, 2016
    @mcfog 我看的是 python 的自省模块叫 insect ,可能不是很正式的叫法。
    aisk
        16
    aisk  
       Jan 6, 2016
    不弱,但是语法太蛋疼。
    KentY
        17
    KentY  
       Jan 6, 2016
    @firefox12 "动态一时爽,重构火葬场" 这句翻译成英语应该怎么说才妙?
    mfaner
        18
    mfaner  
       Jan 6, 2016
    java 里面 introspection 都叫内省
    zwy
        19
    zwy  
       Jan 6, 2016
    楼上各位说的自省,反射
    是不是指 meta-programming ?
    如果是的话,静态语言的这类能力非常弱, 不要指望了
    angelface
        20
    angelface  
       Jan 6, 2016
    go1.5 bootstrap 以后应该会改善多了, 静态语言也可以啊, 只是程度问题。 不过要达到 ruby 的程度,不太现实, 这是一个语言设计时的调调决定的。
    assassinpig
        21
    assassinpig  
       Jan 6, 2016
    dynamic makes you holy good then all your famliy will die when reflection happens later
    @KentY 随手提供了下素材
    lightening
        22
    lightening  
       Jan 7, 2016
    @firemiles 我好像是被误导了,以前看哪本 Python 书把 reflection 翻译成自省了……
    KentY
        23
    KentY  
       Jan 7, 2016
    @assassinpig 我觉得不够妙, 至少不如中文这个那么有意思, 还押韵... :)
    重构也不是 reflection, 是 refactory 吧
    mengzhuo
        24
    mengzhuo  
       Jan 7, 2016
    有没有好好看入门的书,怎么会没有自省?!

    reflect 可以检查 struct 、指针
    runtime 可以检查运行状态,执行栈

    楼主你还要什么?!
    njutree
        25
    njutree  
       Jan 7, 2016
    @KentY dynamic makes you shuangbility until Refactoring is coming !
    repus911
        26
    repus911  
       Jan 7, 2016
    动态语言重构怎么了 你们没有单元测试么
    smalltalk
        27
    smalltalk  
       Feb 19, 2016
    @repus911 静态语言改一处,所有使用的地方,都会自动改。
    个人觉得,对于没有外部兼容性要求的项目,单元测试真没意义。 对于我这种,编写边重构的人,单元测试执行一次就过时了。
    smalltalk
        28
    smalltalk  
       Feb 19, 2016
    单元测试是一种 adhoc 说明规格,虽然强大,但大部分时间不必要且不充分。依赖于单元测试,不如依赖于静态语言和集成测试。
    About     Help     Advertise     Blog     API     FAQ     Solana     969 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 71ms UTC 19:54 PVG 03:54LAX 12:54 JFK 15:54
    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