Go 语言的自省能力是不是很弱? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
yuankui
V2EX    Go 编程语言

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

  yuankui 2016 年 1 月 6 日 3273 次点击
这是一个创建于 3657 天前的主题,其中的信息可能已经有所发展或是发生改变。
这么一来,设计一些框架感觉难度好高.

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

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

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

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

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

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

楼主你还要什么?!
njutree
    25
njutree  
   2016 年 1 月 7 日
@KentY dynamic makes you shuangbility until Refactoring is coming !
repus911
    26
repus911  
   2016 年 1 月 7 日
动态语言重构怎么了 你们没有单元测试么
smalltalk
    27
smalltalk  
   2016 年 2 月 19 日
@repus911 静态语言改一处,所有使用的地方,都会自动改。
个人觉得,对于没有外部兼容性要求的项目,单元测试真没意义。 对于我这种,编写边重构的人,单元测试执行一次就过时了。
smalltalk
    28
smalltalk  
   2016 年 2 月 19 日
单元测试是一种 adhoc 说明规格,虽然强大,但大部分时间不必要且不充分。依赖于单元测试,不如依赖于静态语言和集成测试。
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2615 人在线   最高记录 6679    
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 28ms
UTC 06:23 PVG 14:23 LAX 22:23 JFK 01:23
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