hard codings 怎么找?

[复制链接]
查看11 | 回复9 | 2011-11-1 16:26:29 | 显示全部楼层 |阅读模式
本人刚刚开始做项目,PM让我找hard codings
表示对这方面很欠缺,不知道怎么做?
求教。
回复

使用道具 举报

千问 | 2011-11-1 16:26:29 | 显示全部楼层
这个不是一时半会就能学会的,找你们pm要规范,不然这活你没有办法干
回复

使用道具 举报

千问 | 2011-11-1 16:26:29 | 显示全部楼层
select from v$sql group by text having count(*) =1
回复

使用道具 举报

千问 | 2011-11-1 16:26:29 | 显示全部楼层
原帖由 〇〇 于 2011-7-8 21:33 发表
select from v$sql group by text having count(*) =1

这是啥意思?LZ说的HARD CODING应该是不灵活的编程。
回复

使用道具 举报

千问 | 2011-11-1 16:26:29 | 显示全部楼层
刚看的某本书,说查出没有绑定变量的SQL
回复

使用道具 举报

千问 | 2011-11-1 16:26:29 | 显示全部楼层
原帖由 〇〇 于 2011-7-9 07:56 发表
刚看的某本书,说查出没有绑定变量的SQL

这跟楼主说的是两码事。而且这个代码也不对劲,凭什么COUNT(*)=1就没用绑定变量?我记得TOM有写过。
回复

使用道具 举报

千问 | 2011-11-1 16:26:29 | 显示全部楼层
原帖由 newkid 于 2011-7-9 10:54 发表

这跟楼主说的是两码事。而且这个代码也不对劲,凭什么COUNT(*)=1就没用绑定变量?我记得TOM有写过。

对,那个不准确
http://asktom.oracle.com/pls/ask ... ON_ID:1163635055580
回复

使用道具 举报

千问 | 2011-11-1 16:26:29 | 显示全部楼层
PM她自己对HARD CODING是如何定义的?
除非你对项目很熟悉,对代码很了解,找全不容易
我的理解, HARD CODING主要是
1. 重复的SQL代码
2. 重复的定义
3. 僵硬的非封装的business rule
一些代码在A项目里是HARD CODING但在B项目里可能就不是,还要根据具体情况来判断
一个简单的入门方法:
查USER_SOURCE里的 数字,引号“ ' ”,注意直接定义的值比如 'abc', 0... 类似的值应该在declaration定义,如果出现在 BEGIN ... END中就要注意了
查 SQL 语句, 看看是否有重复,即使是逻辑上的重复也要避免
业务逻辑尽量封装在FUNCTION PROCEDURE中
你先找直接定义的值应付一下PM再慢慢来吧
回复

使用道具 举报

千问 | 2011-11-1 16:26:29 | 显示全部楼层
我想请教一下,这个查找的规范,比如只是去查找where语句
具体的话,一般如何去找hard coding比较好
回复

使用道具 举报

千问 | 2011-11-1 16:26:29 | 显示全部楼层
原帖由 〇〇 于 2011-7-9 07:56 发表
刚看的某本书,说查出没有绑定变量的SQL


前几天一个alibaba的电话面试中(几经没戏,心中很窝火。。。),对方问我:你们的系统中有没有使用banding变量? banding变量有什么坏处?
我答:1.开发人员写的procedure,function,package 有没有使用,我怎么知道!我又没有一个个去查。。。
系统中banding变量应该是自动使用的吧(cursor_sharing=similar(not exact),当时电话中,这个没说)
2.好像没有什么坏处,只有好处吧,减少同类SQL 的parse嘛

后来回去看了一下,《让ORACLE跑的更快》 这本书上说,OLTP鼓励使用,OLAP不鼓励使用(不完全同意,这个要多方面去平衡)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行