|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
是不是实质都是API?有的好像不只是API那么简单的,有的也是一种框架就像MFC一样。有的还是一种思想(就是做软件的思想)(好像很深奥,其实我也不懂^_^)静态代码剖析,在Windows平台上临时遭到无视,近几年却变得愈来愈主要。静态剖析从头取得存眷,始于一款Microsoft外部的工具——FXCop,因为它十分受接待,以是微软将其公然公布。在VisualStudio2005中,FXCop作为VisualStudio团队开辟版的一部分集成到该IDE中。
带有附加功效或免去单位测试必要的第二代工具正在研发傍边,包含.NET4的CodeContracts和自立研发的NStatic。
托管代码并非独一取得存眷的范畴。Ubitsoft公司正对T-SQL使用不异的手艺。跟着数据库增加,封装在T-SQL中的营业逻辑数目变更相称分明,偶然候乃至在主要性方面赛过一般代码。要帮忙办理这一情形,Ubitsoft公司创立了SQLEnlight。我们就此和他们的开辟主管IliyanStoyanov举行了相同。
这是个相称新奇的产物,你能够给我们一些关于SQLEnlight怎样出生的背景吗?我们计划SQLEnlight作为T-SQL办理和反射工具,但因为我们必要更多的工夫来完成心中的一切设法,以是决意先公布T-SQL重格局化功效,稍后慢慢来增加新功效。 你决意对Transact-SQL剧本剖析供应撑持是基于哪一点思索呢?从本项目入手下手,该剖析功效就是我们个中一个方针,但我们决意推延它的公布,直到我们完成T-SQL语法剖析器扩大为止,它撑持新的SQLSever2005T-SQL语法。 你怎样决意给剖析增加哪些划定规矩呢?我们完成的剖析划定规矩基础下去自互联网找到的提醒和理论,大概来自SQLEnlight用户提交给我们的剖析划定规矩哀求。 你们的手艺撑持提到过你正研发一个新版本,它会对全部数据库举行剖析。能够给我供应一些关于它的信息吗?是的。我们正研发新的1.6版本,它将是我们SQLEnlight1.x版本的里程碑。该新版本会包括两项主要特征——创立自界说剖析划定规矩功效和撑持在数据库上运转剖析。我们也盘算包括命令行工具和MsBuild义务。 SQLEnlight以后版本撑持这些剖析划定规矩。
计划
- 包含NULL常量在内的相称和不等对照
- 非ANSI内部连接语法
- 非ANSI外部连接语法
- 过期的语法,字符串_别号=表达式
- 在实行数据操纵语句(像INSERT/UPDATE/DELETE)以后,利用TRY..CATCH布局大概反省该@@ERROR变量
- 在存储历程、视图和表值函数中撑持SELECT*
- 利用SCOPE_IDENTITY()交换@@IDENTITY
- 撑持ORDERBY子句中利用常量已过期
- TOP子句用在不带ORDERBY子句的查询
- 在INSERT语句中老是利用列的列表
- 否决不带WITH关头字的表提醒用法
- (会萃或非会萃)索引范例未指定
- 制止利用GOTO语句来改良可读性
- 思索利用括号来改良可读性和制止因为逻辑操纵符的优先级招致的毛病。
定名
- 在定名函数的时分制止利用“fn_”前缀
- 在定名存储历程的时分制止利用“sp_”前缀
功能
- 变量@variable已声明但从未利用
- 变量@variable已利用但之前未分派
- 变量@variable已分派但其值从未利用
- 在LIKE谓词中以“%”入手下手的形式
- 思索利用表变量来取代一时表
- 在触发器中制止前往了局
- 利用十分小的变量长度范例(巨细为1大概2)
- 在存储历程和触发器中利用“SETNOCOUNTON”选项
- 在WHERE子句中制止利用不等操纵符(,!=)
- 当地游标没有封闭
- 当地游标无明白开释
- 当地游标援用无明白开释
- 在WHERE子句的函数中制止封装过滤列
- 能够从WHERE子句中提取断定性函数挪用,制止不用要的表扫描
- 输出参数从未利用
- 输入参数从未赋值
- 在WHERE子句中制止利用“NOTIN”谓词
- 不要利用不带聚合函数的“GROUPBY”子句
检察英文原文:StaticCodeAnalysisforT-SQL
本文出自:http://www.infoq.com/cn/news/2008/12/TSQL-Analysis
其实net网页编程之所以在曾经独步天下,就是因为他的跨平台、安全性,这两方面,效率可不是net网页编程的强项,反而是他最短的一块挡板,虽然net总是用理论证明比.NET快。 |
|