V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
b821025551b
V2EX  ›  问与答

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

  •  
  •   b821025551b · 2018-01-05 13:48:10 +08:00 · 4999 次点击
    这是一个创建于 2516 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最具代表性的,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
        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
    chunqiuyiyu
        15
    chunqiuyiyu  
       2018-01-05 16:31:23 +08:00 via iPhone
    @ballshapesdsd 真是开眼界了
    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   ·   实用小工具   ·   5668 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 09:02 · PVG 17:02 · LAX 01:02 · JFK 04:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.