当前位置:  开发笔记 > 数据库 > 正文

是否存在不值得产生的具体"技术债务"?

如何解决《是否存在不值得产生的具体"技术债务"?》经验,为你挑选了4个好方法。

技术债务有(至少)两种方式进入项目.首先是有意识的决定.有些问题不值得提前解决,因此有意识地允许他们积累技术债务.第二是无知.从事这个项目的人不知道或者没有意识到他们正在承担技术债务.这个问题涉及第二个问题.您是否存在技术性债务,这些技术债务可以放在您的项目中(如果我只知道......),但是一旦将它们嵌入到项目中,它们的成本就会大大增加?



1> Kornel..:

完全忽略安全问题.

跨站点脚本就是这样一个例子.它会被认为是无害的,直到您alert('hello there!')在管理界面中弹出(如果您很幸运 - 脚本可能会默默地复制管理员可以访问的所有数据,或者向您的客户提供恶意软件).

然后你需要修复昨天的 500个模板.仓促修复会导致数据被双重转义,并且不会堵塞所有漏洞.



2> Brandon DuRe..:

以本地时区在数据库中存储日期.在某些时候,您的应用程序将迁移到另一个时区,您将遇到麻烦.如果你最终得到混合日期,你永远无法解开它们.只需将它们存储在UTC中.



3> Brandon DuRe..:

其中一个例子是以不支持Unicode的模式运行数据库.它一直有效,直到您被迫支持数据库中的Unicode字符串.迁移路径非常重要,具体取决于您的数据库.

例如,SQL Server具有固定的最大行长度(以字节为单位),因此当您将列转换为Unicode字符串(NCHAR,NVARCHAR等)时,表中可能没有足够的空间来保存您已有的数据.现在,您的迁移代码必须做出有关截断的决定,或者您必须完全更改表格布局.无论哪种方式,它都比开始使用所有Unicode字符串要多得多.



4> Brian Genisi..:

单元测试 - 我认为在你去的时候没有编写测试会产生很难弥补的巨额债务.虽然我是TDD的粉丝,但是如果你在实现代码之前或之后编写测试,我真的不在乎...只要你让你的测试与你的代码同步.

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有