有多少国内民科程序员独创的概念或理论? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
b821025551b
V2EX    问与答

有多少国内民科程序员独创的概念或理论?

  •  
  •   b821025551b 2018-01-05 13:48:10 +08:00 5424 次点击
    这是一个创建于 2847 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最具代表性的,i++和++i,上学的时候真的是强背下来应付考试;
    当然理论级的,就是 tcp 的粘包,百度一下一堆复制粘贴的解决方案,还有长篇大论教你怎么去拆包;

    这些东西,真的是坑人不浅。
    第 1 条附言    2018-01-05 17:56:35 +08:00
    举例有些问题,应该是++i++这种。
    56 条回复    2018-01-08 09:59:23 +08:00
    ljsh0102
        1
    ljsh0102  
       2018-01-05 13:51:52 +08:00
    啥叫民科程序员?是学生物转程序员的?还是学 vb 转 python 的?
    CodeCRH
        2
    CodeCRH  
       2018-01-05 13:53:19 +08:00
    “最具代表性的,i++和++i ”
    ljsh0102
        3
    ljsh0102  
       2018-01-05 13:56:03 +08:00
    再说 i++和++i 什么意思?你执行一下试试不就知道了,又不是伪概念?背下来不理解就去嘲讽别人踏坑总结的经验?
    hqdmy
        4
    hqdmy  
       2018-01-05 13:56:53 +08:00
    996
    hqdmy
        5
    hqdmy  
       2018-01-05 13:57:00 +08:00
    247
    ryd994
        6
    ryd994  
       2018-01-05 14:06:10 +08:00 via Android
    粘包真的害人
    TCP 是流,根本不存在包的概念
    eurokingbai2
    nbsp;   7
    eurokingbai2  
       2018-01-05 14:09:39 +08:00   1
    H5
    Andiry
        8
    Andiry  
       2018-01-05 14:15:11 +08:00
    i++和++i 怎么了,区别显而易见,跟民科没关系吧。
    we2ex
        9
    we2ex  
       2018-01-05 14:15:46 +08:00 via Android
    学面向对象的时候重载过++运算符,感觉毫不违和
    h4lbhg1G
        10
    h4lbhg1G  
       2018-01-05 14:17:51 +08:00
    i++和++i,虽然实际上没啥用,然而他是 C 语言的一部分。它在教学上的作用,就是看你的注意力能否集中而已,对于这种有的人一分钟就可以记下来,而有的人一学期都搞不明白。这个例子实际上对于之后的编译原理也有一定帮助。
    coderluan
        11
    coderluan  
       2018-01-05 14:26:51 +08:00
    i++和++i,根本不是中国人创造的啊。爱死抠这个的人,主要是大学老师,不在民间,也不是程序员。
    你想喷那些死扣概念的人没问题,但是你别灵光一现加上什么“国内民科程序员独创”,这不是让人家喷你吗?
    dangyuluo
        12
    dangyuluo  
       2018-01-05 15:00:38 +08:00 via iPhone
    可能我个人水平不行(很可能),我很少用多个++在一行
    xwhxbg
        13
    xwhxbg  
       2018-01-05 15:49:21 +08:00
    我水平不行,C family 学不会,只能用 go 这样人体工程学做的好的
    ballshapesdsd
        14
    ballshapesdsd  
       2018-01-05 16:08:36 +08:00   3
    ballshapesdsd
        16
    ballshapesdsd  
       2018-01-05 16:38:13 +08:00
    h4lbhg1G
        17
    h4lbhg1G  
       2018-01-05 16:52:36 +08:00
    @ballshapesdsd issues 里面不忍直视 O(∩_∩)O 哈哈~
    xwhxbg
        18
    xwhxbg  
       2018-01-05 17:21:25 +08:00
    我估计当年肯定是一帮民科翻译的外国计算机文献,什么套接字,句柄都是那时候搞出来的,我到现在都不知道句柄为毛要这么翻译,人家就是个 handler,翻译成回调都行啊
    carlclone
        19
    carlclone  
       2018-01-05 17:24:37 +08:00
    @xwhxbg 理论派都喜欢搞晦涩难懂的词汇,不奇怪....
    takato
        20
    takato  
       2018-01-05 17:26:04 +08:00
    @xwhxbg handler 直接按照英文词根理解似乎很直白。。处理者- -。。
    pezy
        21
    pezy  
       2018-01-05 17:27:02 +08:00 via iPhone
    现在连学校学的东西也叫民科了?

    你不能因为现在编译器进化了,而忽视 i++ 和 ++i 原本的区别呀。
    geelaw
        22
    geelaw  
       2018-01-05 17:28:08 +08:00   1
    @xwhxbg 您连 handle 和 handler 都没分清。Handler 是处理程序(异常处理、事件处理……),你可以传递一个 handler 的 handle (比如,函数指针); handle 是用来访问一个对象的东西。
    b821025551b
        23
    b821025551b  
    OP
       2018-01-05 17:34:24 +08:00
    @coderluan
    @h4lbhg1G #10
    @pezy #21 i++和++i 当然很正常,我指的是++i++这种。
    zgx030030
        24
    zgx030030  
       2018-01-05 17:35:16 +08:00
    代码生成真随机数??
    h4lbhg1G
        25
    h4lbhg1G  
       2018-01-05 17:36:35 +08:00
    @xwhxbg 似乎只有民科才会真真于热衷于黑谭浩强 C 以及一些国内的翻译的国外技术书籍吧。术语嘛,用多了也就习惯了,或者眼不见心不烦只看英文原版就好了。
    Keyes
        26
    Keyes  
       2018-01-05 17:39:31 +08:00
    @ballshapesdsd 明哥好歹也是 800star 的人了
    h4lbhg1G
        27
    h4lbhg1G  
       2018-01-05 17:40:03 +08:00
    @b821025551b 这种确实比较恶心,不过想想如果你要自己动手写一个 C 编译器,就会理解这个也是有道理的。当然对于非计算机专业的,这个理解知道了纯属应付考试之用,或者让他们知道有这么回事,可以很复杂。好了我洗不下去了,滑稽

    其实大学专业课有很多专业都在扣这种细节,考试前的辅导,也大约都是在讲一堆今后无用的特化技巧。
    Keyes
        28
    Keyes  
       2018-01-05 17:49:43 +08:00
    @b821025551b ++i++编的通 = =?
    x86vk
        29
    x86vk  
       2018-01-05 17:49:52 +08:00 via Android
    讲道理 i++和++i 不算民科吧,都是进了标准的。
    举例用++i++++这种 ub 还差不多
    jiangzhuo
        30
    jiangzhuo  
       2018-01-05 17:52:19 +08:00
    007
    h4lbhg1G
        31
    h4lbhg1G  
       2018-01-05 17:59:09 +08:00
    @x86vk 我记得 C++里面 Pre-increment 比 Post-increment 优先级要低一些,然后也有左右结合优先顺序问题。不一定是 undefined behavior。
    b821025551b
        32
    b821025551b  
    OP
       2018-01-05 18:00:53 +08:00
    @Keyes #28 看编译器,有的可以通过,而且不同编译器运行结果不同。
    viator42
        33
    viator42  
       2018-01-05 18:18:29 +08:00 via iPhone
    a==1 故意写成 1==a
    feather12315
        34
    feather12315  
       2018-01-05 18:21:27 +08:00 via Android
    @viator42 #33 …那你这要把某本经典书批判一番了,忘记是 KR 的 C 还是 C 的缺陷与陷阱了
    LeoNG
        35
    LeoNG  
       2018-01-05 18:22:14 +08:00
    让我想起之前看《图解 HTTP 》一书,里面对于 HTTP 的中文译名的注释。HTTP 通常是被译作"超文本传输协议",但是有人觉得这样翻译不恰当,应该是"超文本转移协议"。附上链接 http://www.ituring.com.cn/article/1817
    Luckyray
        36
    Luckyray  
       2018-01-05 18:23:51 +08:00
    @ljsh0102 执行一下还真不一定知道...我一直到前几天才知道这个结果 c 语言标准里没有定义,完全取决于解释器的具体实现方式。所以不同解释器结果可能不同。
    katsusan
        37
    katsusan  
       2018-01-05 18:25:45 +08:00 via iPhone
    @viator42 这种写法好像是有说法的,漏写一个等号的话后者编译不通过
    LeoNG
        38
    LeoNG  
       2018-01-05 18:27:06 +08:00
    @viator42 #33 我同在某本经典书里面见过,作者建议是这种应该是变量放右边,常量放左边。为的就是防止粗心少写一个=号。 但是这个我感觉对于那些非 type safe 的语言来说,是个不错的技巧吧。
    viator42
        39
    viator42  
       2018-01-05 18:43:08 +08:00 via iPhone
    @feather12315
    @katsusan
    @LeoNG 知道为啥这么写,只是感觉这样代码看起来别扭,尤其表达式复杂的时候。而且我也从来没少写过等号
    h4lbhg1G
        40
    h4lbhg1G  
       2018-01-05 18:48:29 +08:00
    @viator42 表达式复杂为啥不加一行 bool cOndition=balabala; if(condition) 这种更加明了,if 语句里面越短越好。
    feather12315
        41
    feather12315  
       2018-01-05 18:51:50 +08:00 via Android
    @viator42 #39,clang 可以探测到各种错误了新版的 GCC 好像也可以了(印象中)
    slack
        42
    slack  
       2018-01-05 18:52:16 +08:00 via Android
    这个帖子让我想起知乎上一个叫薛非的大神。。
    Bryan0Z
        43
    Bryan0Z  
       2018-01-05 18:59:16 +08:00 via Android
    @ballshapesdsd 他不过自己写了一个 jQuery 类库,为啥被黑这么惨,大一的时候我也经常仿写 Java 的 library 练手啊…
    mingyun
        44
    mingyun  
       2018-01-05 23:53:30 +08:00
    @ballshapesdsd 看评论笑了
    ysc3839
        45
    ysc3839  
       2018-01-06 01:53:38 +08:00
    @Bryan0Z 看看 README
    x86vk
        46
    x86vk  
       2018-01-06 08:42:35 +08:00 via Android
    @h4lbhg1G 对,理论上来说是有一个什么最大可读入原则,然后按照那样去 parse 的话这里++(i++)是会出问题的,但很多老编译器不是这么 parse 的,就直接给编译过了,所以说是 ub 的。
    NoBody777
        47
    NoBody777  
       2018-01-06 12:55:51 +08:00
    @Andiry 楼主指的是++i++这种,他后来更正了
    Light3
        48
    Light3  
       2018-01-06 13:07:46 +08:00
    @ballshapesdsd 之前我还用过呢 我感觉这哥们 除了性格比较张扬 自己写成这样 不丢人阿..
    q397064399
        49
    q397064399  
       2018-01-06 13:26:00 +08:00
    @ryd994 #6 从应用来看 就是包啊, 只不过这个包 抽象层次更高了,
    Bryan0Z
        50
    Bryan0Z  
       2018-01-06 19:10:48 +08:00 via Android
    @ysc3839 中文版好像没啥问题,就是个更新日志,英文版没几句正确的
    xwhxbg
        51
    xwhxbg  
       2018-01-07 14:48:22 +08:00
    @geelaw handle 也不能翻译成句柄啊,指针那是 pointer 啊,跟 handle 咋又扯一起了?函数指针难道不是个 pointer ?
    geelaw
        52
    geelaw  
       2018-01-07 15:25:06 +08:00
    @xwhxbg 指针是句柄的一种实现。

    句柄是标志感兴趣的对象的一个东西。指针标志的是感兴趣的内存。
    geelaw
        53
    geelaw  
       2018-01-07 15:39:48 +08:00
    @xwhxbg 此外句柄一词最初是在编译相关的书籍中出现,直到今日编译原理课程中也会使用“句柄”一词(一个句型的最左直接短语),后来是一词不多译导致套用到“用于访问感兴趣对象的事物”上。

    其他领域的一词不多译导致的初学者障碍也是很常见的,例如数学中,研究矩阵的相似时会用到 lambda-矩阵的“法式”((Smith) normal form ),实际上自然的翻译是“ Smith 标准形”,根据猜测是因为代数和几何联系非常紧密,做几何的人以为 normal 是表示垂直、单位化的那个“法”(例如“法线”),因而如此翻译。
    gnaggnoyil
        54
    gnaggnoyil  
       2018-01-07 22:55:32 +08:00
    @geelaw 啊?normal form 国内翻译不一直是"标准形"吗?不然你们是怎么称呼 Jordan normal form 的?
    geelaw
        55
    geelaw  
       2018-01-07 23:30:15 +08:00
    @gnaggnoyil 一词多译啊,我说的是矩阵的特征矩阵的 Smith 标准形会被叫做“法式”。
    xwhxbg
        56
    xwhxbg  
       2018-01-08 09:59:23 +08:00
    @geelaw 看了你的解释更加懵逼了。。。可以说说 handle 会发生什么么?我之前观察的结果是对应注册的函数会被调用,也就是 handler 的用法。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4448 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 55ms UTC 01:03 PVG 09:03 AX 18:03 JFK 21:03
    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