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

2019-01-17 11:03:21 +08:00
 northisland

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

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

魔改也差不多。

举个栗子:

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

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

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

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


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

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

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

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

-----

当然,需要说明的是,这是很久以前在床头读物看到的。可能有所疏漏乃至记错了。
l00t
2019-01-17 12:43:16 +08:00
我的理解中,hack 是小修改,只针对一两个问题;魔改是功能性地大改。
murmur
2019-01-17 12:45:45 +08:00
@l00t 那叫爆改
honeycomb
2019-01-17 12:46:22 +08:00
hack 的味道比 workaround 更接近魔改,workaround 更接近 shim,polyfill
honeycomb
2019-01-17 12:48:25 +08:00
workaround 是此路不通,我造条临时的路绕到,hack 则是我把这个车轮胎从公路胎换成全地形胎,然后强上。
LxExExl
2019-01-17 12:57:56 +08:00
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
2019-01-17 13:54:25 +08:00
hack 是指提高改善创造 避免浪费时间 提升效率
英文中常用的如
life hack 生活技巧
growth hack 增长营销

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/527855

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX