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

同事喜欢说把组里谁谁谁写的库“hack”一下,还喜欢说“魔改”,请教一下这俩词的含义?

  •  
  •   northisland · 2019-01-17 11:03:21 +08:00 · 4500 次点击
    这是一个创建于 2139 天前的主题,其中的信息可能已经有所发展或是发生改变。

    词汇量跟不上,多谢各位。

    我感觉 hack 是没有从设计源头出发,作出违背设计初衷的改动,但为了支持某种功能。

    魔改也差不多。

    举个栗子:

    调查一下为什么 xxtool 在这种情况下会报错。hack 上叠 hack 是没有前途的。
    
    

    但感觉有可能出错。向各位熟悉这些词汇的同学请教了。

    17 条回复    2019-01-17 13:54:25 +08:00
    sbw
        1
    sbw  
       2019-01-17 11:14:22 +08:00
    workaround
    murmur
        2
    murmur  
       2019-01-17 11:15:07 +08:00
    没啥含义,就是看你平时喜欢拽英文词还是说汉化词
    eric6356
        3
    eric6356  
       2019-01-17 11:21:23 +08:00
    魔改这个词我挺喜欢的,应该是从 acg 圈来的
    https://zh.moegirl.org/%E9%AD%94%E6%94%B9
    fuxiaohei
        4
    fuxiaohei  
       2019-01-17 11:23:09 +08:00
    我这边理解 hack 像是为了自己的功能给程序打补丁,魔改 是为了自己的业务全面乱写各种功能
    woodensail
        5
    woodensail  
       2019-01-17 11:27:32 +08:00
    我觉得,访问或、修改或替换各种未暴露方法,原型链方法;以及直接对源码动手的行为都符合你的描述。
    northisland
        6
    northisland  
    OP
       2019-01-17 11:35:24 +08:00 via iPhone
    @fuxiaohei 这么理解 hack 是只在外面包层皮么,魔改是自己开个随便的分支?
    fuxiaohei
        7
    fuxiaohei  
       2019-01-17 11:37:38 +08:00
    @northisland hack 不一定是包层皮,改了一下绝大部分还是原来那个东西;魔改就会改的不像原来的样子了
    Debiancc
        8
    Debiancc  
       2019-01-17 11:47:15 +08:00   ❤️ 1
    一个意思。如果你觉得 hack 是比较是正面的话,hack = 质量较高的魔改。那么 魔改 = 🌶🐔hack
    across
        9
    across  
       2019-01-17 12:06:06 +08:00   ❤️ 1
    啥,我看游戏引擎对 hack 和魔改的理解一直都是:
    hack: 在代码某处进行特例处理(一般是 bug 修复),当然显得不那么优雅。
    魔改:使用艰深的技术,比如模板元编程,搞出一套非常强大却又无比复杂的系统,对使用者要求都很高,用好了能大炮,一不小心能把自己给轰没了。
    yuikns
        10
    yuikns  
       2019-01-17 12:10:05 +08:00   ❤️ 1
    hack 和魔改意思差不多吧。

    比如现在有个除草机,现在有发动机功能,有轮子,烧汽油。很好,我们 hack 下这个机器,把它改成卡丁车吧。
    简单说就是复用原来功能,做一些新的需求。


    和 workaround 应该有所区别。workaround 是已知 bug,但是修改比较麻烦,那么做下防御性编程,把可能遇到的分支判断暂时用 hard code 引到别的地方。实际上功能可能缺失,但整体可以工作。
    yuikns
        11
    yuikns  
       2019-01-17 12:31:10 +08:00   ❤️ 1
    如果我没有记错的话,依稀记得,这个语境下讲的 hack 应该是来自上个世纪六七十年代,来自 MIT/CMU 那些大学折腾出来的概念。小时候看 C 缺陷与陷阱还是 C 与指针,作者写一段就喜欢科普下那会儿的小笑话。

    彼时一切都在雏形,互联网还是军用比较多,少量大企业,实验室和学校蹭个基建。大家对这玩意儿什么能做,什么不能做都还没概念。不过和真实世界交互毫无疑问是非常有吸引力的。

    于是他们给 hack 了个可乐机,给它联了网,然后那群 hacker 可以在网上给可乐机的人在线付钱,下一个使用者就被请了一杯。
    还有 hack 了个咖啡机,全网的人都可以检查咖啡机是否煮沸了。
    诸如此类。

    作者介绍说,这就是最早的 hack 了。然后又介绍了一下 hack 的大致意思云云。我理解大致就是楼上我讲的。

    -----

    当然,需要说明的是,这是很久以前在床头读物看到的。可能有所疏漏乃至记错了。
    l00t
        12
    l00t  
       2019-01-17 12:43:16 +08:00
    我的理解中,hack 是小修改,只针对一两个问题;魔改是功能性地大改。
    murmur
        13
    murmur  
       2019-01-17 12:45:45 +08:00
    @l00t 那叫爆改
    honeycomb
        14
    honeycomb  
       2019-01-17 12:46:22 +08:00 via Android
    hack 的味道比 workaround 更接近魔改,workaround 更接近 shim,polyfill
    honeycomb
        15
    honeycomb  
       2019-01-17 12:48:25 +08:00 via Android
    workaround 是此路不通,我造条临时的路绕到,hack 则是我把这个车轮胎从公路胎换成全地形胎,然后强上。
    LxExExl
        16
    LxExExl  
       2019-01-17 12:57:56 +08:00   ❤️ 1
    1. To program a computer in a clever, virtuosic, and wizardly manner. Ordinary computer jockeys merely write programs; hacking is the domain of digital poets. Hacking is a subtle and arguably mystical art, equal parts wit and technical ability, that is rarely appreciated by non-hackers. See hacker.


    https://www.urbandictionary.com/define.php?term=hack
    abclearner
        17
    abclearner  
       2019-01-17 13:54:25 +08:00   ❤️ 1
    hack 是指提高改善创造 避免浪费时间 提升效率
    英文中常用的如
    life hack 生活技巧
    growth hack 增长营销
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4697 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 04:05 · PVG 12:05 · LAX 20:05 · JFK 23:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.