我是一个小型开发团队的开发人员,有些事情让我很生气,直到我决定采取行动......
Oracle不支持Bit数据类型 - 或者实际上在真/假场景中显而易见的任何其他内容.然而,在我加入团队之前,我的祖先决定使用char(1)字段,使用特定的字母来表示是/真.不幸的是,我们的应用程序已经被世界各地的人们所熟悉,并且由于坦率地无视我理解的所有尝试的原因,所使用的价值因本地化而异.
是的,我知道对于后端用户从未见过的值来说完全没有必要 - 但是...
我注意到,这种做法似乎越来越结转到新的发展,这令我疯狂 - 所以我想这不是提议号码(1,0)的 - 0被认为是假/没有,什么都被interpretted为真/是......
简单的问题 - 任何人都可以想到这可能是一个坏主意的原因吗?
虽然我们是关于它的,有谁知道为什么Oracle不支持简单的布尔类型?这不是一个明智的省略吗?
期待干杯,
马丁.
我在大约8个开发人员的团队中,在大约1'000'000行源代码的基础上开发代码库.我们的代码基本上是一个使用Oracle数据库的应用程序,但代码随着时间的推移而发展(我们有很多来自九十年代中期的源代码!).
团队之间就我们用于查询Oracle数据库的语法发生争执.目前,绝大多数查询使用"旧"Oracle语法进行连接,这意味着我们的代码看起来像这样......
内连接示例
select customers.*
, orders.date
, orders.value
from customers, orders
where customers.custid = orders.custid
Run Code Online (Sandbox Code Playgroud)
外连接示例
select customers.custid
, contacts.ContactName
, contacts.ContactTelNo
from customers, contacts
where customers.custid = contacts.custid(+)
Run Code Online (Sandbox Code Playgroud)
随着新开发人员加入团队,我们注意到他们中的一些人似乎更喜欢使用SQL-92查询,如下所示:
内连接示例
select customers.*
, orders.date
, orders.value
from customers inner join orders
on (customers.custid = orders.custid)
Run Code Online (Sandbox Code Playgroud)
外连接示例
select customers.custid
, contacts.ContactName
, contacts.ContactTelNo
from customers left join contacts
on (customers.custid = contacts.custid)
Run Code Online (Sandbox Code Playgroud)
A组说每个人都应该使用"旧"语法 - 我们有很多这种格式的代码,我们应该重视一致性.我们没有时间通过现在重写数据库查询的代码,如果我们有,它将不会付给我们.他们还指出"这是我们一直这样做的方式,我们对它感到满意......"
然而B组表示他们同意我们没有时间返回并更改现有查询,我们真的应该采用我们在此处编写的代码上的"新"语法.他们说开发人员只是真的一次查看一个查询,只要开发人员知道这两种语法,就没有什么可以从严格遵守旧语法中获得的,这可能会在将来的某个时候被弃用.
在没有宣布我忠诚于哪个群体的情况下,我有兴趣听取公正观察员的意见 - 所以让游戏开始吧!
马丁.
PS.我已经把它变成了一个社区wiki,以免被人看作只是公然追问问题点...
看看这个API文档页面 ......
任何人都可以向我解释MONITORINFO结构的rcMonitor和rcWork组件之间的区别吗?虽然我很高兴看到一个窗口有你无法使用的区域(例如标题),但我真的不知道这对监视器有何影响......
感谢所有的贡献......
马丁
嗨,大家好,
我将编写一些代码,必须通过GPRS监听来自GSM手机的TCPIP消息.在充足的时间里,我认为这是在虚拟专用服务器上运行,它很可能每秒处理多个消息.
我是一个网络编程处女,所以我在互联网上做了一些研究,并阅读了一些教程.我目前正在考虑的方法是使用套接字来监控端口的Windows服务.如果我的理解是正确的,我需要一个套接字来监听来自客户端的连接,每次有人尝试连接端口时,我将通过另一个与之通信的套接字?听起来更有经验吗?
我打算使用异步通信,但更大的设计问题是是否使用线程.线程不是我真正玩过的东西,我知道一些陷阱 - 竞争条件和调试问题只有两个.
如果我避免线程,我知道我必须提供一个对象作为特定对话的标识符.我在想这个GUIDs - 有什么意见吗?
提前感谢任何回复......
马丁
在白天的工作中,我使用VB6(我知道,但不要模拟受影响的......)应用程序,它使用了我们编写的许多库(也是在着名的VB6中).其中一个支持库有大量私有成员通过公共属性公开,我被要求删除属性,并将私有成员变量提升到与原始属性同名的公共字段.
现在,我不是COM专家,但我的印象是,类中的每个暴露项都获得了它自己的GUID.因为我们将从每个值从2个Guids(Property Get和Property Let)变为仅使用一个(公共字段)的情况开始,我期望这会破坏二进制兼容性 - 但它似乎没有做到了.
有谁能解释为什么?