(评论)
(comments)
原始链接: https://news.ycombinator.com/item?id=38384952
然而,故意更改第三方 DLL 中的代码是 AMD 有意采取的行动,而不是由于 AMD 软件和其他第三方应用程序之间通过 API 公开的接口而产生的固有问题的结果。 否则就意味着通过对这些 DLL 进行逆向工程发现的任何错误、漏洞和安全漏洞都是无关的,因此 AMD 无需承担发布有缺陷的产品或暴露容易被恶意行为者操纵的关键软件组件的责任。
此外,在相应 API 提供的标准通道之外向第三方应用程序注入附加功能可能会显着增加攻击面、降低代码可读性、阻碍故障排除工作并引入意外的副作用。 此类实践通常违反软件开发原则、行业最佳实践以及既定的编码约定和标准。 因此,在评估出版物提交、拨款提案或合同交付成果时,同行评审委员会、学术机构和专业实践团体常常不赞成它。 此外,它还可能导致供应商的声誉受损,因为这些供应商的旗舰产品会因此类修改而出现性能下降、兼容性问题和稳定性问题。 因此,硬件制造商在管理产品集成策略的明确协议范围之外,故意采取影响由竞争软件包控制的可执行模块的操作和完整性的行为,代表着潜在的破坏性、容易产生风险的行为,充满了重大的下游后果,无论任何感知到的结果如何。 通过这种方法实现的短期收益、竞争优势或运营协同效应。 最终,它是误导策略的一个典型例子,表明决策者将自身利益置于更广泛的社会关注之上,表现出了可疑的判断力。
Not to say that learning how things work on the ground level isn't immeasureably valuable, but I think trying to do that first is the slow approach. Learning is accelerated when 1) you enter the industry (so you should prioritize output up-front and let the deeper learning happen when you're earning a paycheck for it) and 2) you get a better conceptual understanding of what's happening under the hood offered by tools of abstraction like a game engine or visual programming paradigm.
This comes from someone who spent many years trying to learn cpp and opengl the hard way only to endure a long battle against an internal sunk cost fallacy I've harbored that kept me from taking the no-code approach. Don't waste your time taking this path if it doesn't help you make what you actually want to be making at the end of the day.
reply