公司 DDL 规范禁止表名和字段名使用下划线,现有项目必须重构

2014-12-19 13:40:56 +08:00
 tabris17
MySQL数据库。
PHP项目。
项目有用ORM也有执行原生SQL。数据库访问都是基于Zend Db组件。
我尝试写了个SQLParser来替换SQL语句中的表名和字段名,但是因为SELECT * 的关系,返回数据集的字段名没法替换掉。

有没有什么好办法可以尽可能少修改代码来实现,有没有可能在数据库上动手脚?
3132 次点击
所在节点    数据库
72 条回复
tabris17
2014-12-19 14:18:09 +08:00
@cloudzhou 运维脑子进大便了,这点毋庸置疑,现在的问题是如何骗过运维让产品上线,唉
tabris17
2014-12-19 14:19:15 +08:00
@xiaogui 再上级就不管技术了,肯定是加班咯,我也不希望为此让团队里的人加班(主要是我也不想加
raincious
2014-12-19 14:20:41 +08:00
@tabris17

你们公司运维的胆子和权利很大啊。这样没问题么?跟你们老板谈谈。
wdd2007
2014-12-19 14:22:41 +08:00
你是上级。。。你需要有能力拒绝这个要求。。。
tabris17
2014-12-19 14:23:21 +08:00
@raincious 每个部门都想刷存在感。我昨天还经历了我司测试部给开发提功能需求呢
tabris17
2014-12-19 14:23:55 +08:00
@wdd2007 运维部是别人家的部门,管不到
xiaogui
2014-12-19 14:27:26 +08:00
@tabris17 加班的话,也会影响其他项目的进度,把这些都弄清。你肯定是要向上面汇报这样造成的后果。
另测试部可以提功能需求,任何人都可以。但是研发部要有自己的开发计划,以及预估出其他人提的需求需要的开发时间和重要性,结合实际情况,然后同意、拒绝或者放入需求池等等。
tabris17
2014-12-19 14:30:07 +08:00
@xiaogui 测试提需求的意思如果不实现这个功能就认为是程序BUG不让过测试,另外测试直接和开发提,当产品经理死了吗
ls25145
2014-12-19 14:34:03 +08:00
这个必须反映一下,不管上面是不是管技术的。
代码先写的,规范后定的。明显是运维的问题,这个要是不强硬对待,以后有的是办法收拾你。
要么延期,要么无视这个规范。
xiaogui
2014-12-19 14:35:34 +08:00
@tabris17 按这样的话,就只能拖着了,嗯。加班的时候记着拉上测试,随时让他们测试。
另如果你是研发部门的头的话,你是有权力去拒绝任何你感觉不对的研发需求,规范,并参与对这些需求的谈论,规范的制定中的。否则的话,相信我,你们研发部估计是这公司最苦逼的部门,注意部门小伙伴们可能会陆续离开。
tabris17
2014-12-19 14:35:41 +08:00
@ls25145 得罪了运维以后能落下好么
raincious
2014-12-19 14:37:49 +08:00
@tabris17 如果仅仅是想刷存在感:

1、查一下你拿到手的需求以及之前所有的Note,看看运维在开发之前有没有提出规范限定,如果有,但是你的团队没遵守,那就是你的问题,如果没有,那就是没有必要遵守。
2、如果之前没有提出,上线时临门一脚,你直接说明原因和后果报给Boss让他解决这个问题好了。

其实作为Leader有的时候需要问一下各部门的,比如各种规范什么的,只需要一句话就能解决很多问题。

3、运维竟然以非关键(且未知会过)的原因阻止项目上线,这你必须和Boss谈下,了解和规范下他们的权利。
tabris17
2014-12-19 14:39:11 +08:00
我觉得有点跑题了,咱们还是回到技术问题上来好吗
raincious
2014-12-19 14:43:54 +08:00
@tabris17

如果你真的要这么做,那就一点点修改代码,改成符合运维要求的

> 我尝试写了个SQLParser来替换SQL语句中的表名和字段名,但是因为SELECT * 的关系,返回数据集的字段名没法替换掉。

不要这么玩,增加了复杂度和不确定性。未来维护会非常麻烦。
xiaogui
2014-12-19 14:46:05 +08:00
快速替换的方法,有任何后果是需要你承担的。
skybr
2014-12-19 14:46:14 +08:00
我在想, 写django或者rails的没下划线怎么活
cloudzhy
2014-12-19 14:53:02 +08:00
蛇形法明显比驼峰法更容易一眼看出来。
tabris17
2014-12-19 14:54:29 +08:00
@skybr 还真被你说中,手头还有个django项目,我准备到时候用ansible playbook自动部署,他们运维不懂的话也就闭嘴了。
shadyxu
2014-12-19 15:19:24 +08:00
“管不到其他部门”,其他部门当然不能管,沟通,沟通不了就向上反馈让上面决定。“不想得罪运维”,就不怕得罪自己组的人?

作为一个leader,跨部门合作怎么能这么被动。这个就不应该是技术问题,无厘头的要求就必须说no。
tabris17
2014-12-19 15:21:44 +08:00
@shadyxu 现在不是沟通的问题,沟通的话能破例上线,但是还是要限期修改。

我只是想找个简单的技术修改方案而已啊

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

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

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

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

© 2021 V2EX