我目前负责一个似乎与数据库非常亲密的过程.我的程序/脚本/框架的目标是从不同的数据源中实现统一.使用依赖注入的形式,我的进程在很高的水平上工作正常.每个数据源类型的实现都隐藏在最高级别的业务抽象中.大.我的问题是两个.
1)我有一个很长的段落(这是困扰我的长度),它在Perl空间中组装了一个如何将这些不同数据源转换为一个同类结束格式的SQL语句.所以SQL字符串总是取决于我正在使用的数据类型.WHERE子句依赖,FROM子句依赖,INSERT子句依赖,它全部依赖.这是高度依赖性让我感到困惑.如何以面向对象的方式对此过程进行建模?MagicObject-> buildSQL?这基本上就是我现在所拥有的,但感觉代码的所有部分都知道太多,因此它的长度.
2)如果我有一个能做某事的函数(构建SQL?),我是否将整个业务对象传入,然后在最后一分钟对它们进行字符串化?或者我是否尽早将它们串联起来,只让我的函数处理它需要的东西,而不是渲染对象本身?
编辑:虽然我不怀疑ORM的重要性,但我不认为我们还处于ORM领域.想象一下,美国,国家和虚构联盟的棒球数据都以不同的格式存储,具有不同的标准化水平.读取这些数据源并将它们放在一个统一的标准化池中是我的过程的工作.我觉得在我的过程之后发生了对这些物体采取行动的ORM空间.如果你愿意,我是一名数据看门人.由于缺少我创建的统一池,因此基本上没有业务对象可以采取行动.
编辑^ 2:引起我的注意,也许我没有详细描述问题空间.这是一个例子.
想象一下,你必须建立一个美国所有罪犯的主数据库.贵公司的服务是销售一种产品,该产品位于顶部并以干净,统一的格式提供对这些数据的访问.
这些数据由50个州公开提供,但格式完全不同.有些是一个数据文件,没有标准化.其他是CSV格式的规范化表格.有些是Excel文档.有些是TSV.甚至提供了一些在没有人工干预的情况下不完整的记录(其他,手动创建的数据源).
我的项目的目的是为50个州中的每个州制定一个"驱动程序",并确保该过程的最终产品是一个完美的关系模型中的犯罪分子的主数据库.一切都正确键入,架构完美,等等.
我们有一个多语言网站,利用asp.net 2.0文化.通过将url重写为查询字符串来设置当前文化.(〜/ es/blah.aspx是〜/ blah.aspx的西班牙语版本 - 改写为〜/ blah.aspx?lang = es)
测试文化的代码如下:
System.Globalization.CultureInfo ci;
try
{
ci = new System.Globalization.CultureInfo(Request.QueryString["lang"] ?? string.Empty);
}
catch
{
ci = new System.Globalization.CultureInfo(string.Empty);
}
Run Code Online (Sandbox Code Playgroud)
如果没有文化集,则默认为英语,127.当存在文化时,该页面上的所有链接都将使用正确的文化名称预先设置.
一些蜘蛛如何以〜/ www.test.com/blah.aspx的形式获得了一些链接,并用www.test.com的文化锤击我们的网站,并充斥着我们的错误记录.
除了捕获异常之外,有没有办法测试文化名称是否有效?
我有一个控制台应用程序正在与ftp服务器进行一些冗长的同步.
另一个控制台应用程序准备一个本地文件系统与一些所需的更新文件
然后第二个将等待第一个完成,然后交换最终目录名称,以便它在Web上可见.
我搜索了使同步应用程序与第二个应用程序进行通信的最佳方法,即它完成了它的工作.看起来像使用IPC的数据复制是最适合的解决方案.
问题有两个:
我正在尝试确定Groovy的XmlSlurper是否存在XML元素.有没有办法做到这一点?例如:
<foo>
<bar/>
</foo>
Run Code Online (Sandbox Code Playgroud)
如何检查条形元素是否存在?
我希望能够从现有的Java应用程序启动Java服务器进程并监视stdoutput和stderror并将该输出重定向到文件.是使用'Runtime.exec'的最佳方法,并像对待任何其他操作系统进程一样处理应用程序,或者是否有更适合新JVM的方法.
这是在Java 1.5上
它是否与重载相同,如果没有,你可以在C#中提供每个例子吗?
我已经阅读了对SO中提出的类似问题的回复......我不理解发布给它的回复.
类似的问题在这里问
编辑:使用C#4.0中新的"动态"关键字...这会使语言"多调度"启用吗?
我正在使用反射将一些数据添加到来自第三方库的类中的私有变量.一路上有大约四种不同的例外可以抛出; 所有这些都与反思有关,而且所有这些都不太可能发生.我正在硬编码所涉及的类和变量的名称.我不太可能收到任何未找到的类或未找到字段的错误,除非该库有一天升级并且已经发生了显着变化.
我宁愿不为我的调用者声明所有这四个异常来处理.他可能永远不会见到他们.我想抓住所有这些并抛出另一个例外,说"发生了Java反射错误;可能是库已经以与此方法不兼容的方式升级和更改了." 是否存在我可以抛出的标准Java异常,它表示只是一般反射错误?我应该定义自己的吗?或者最好只声明这个方法可以抛出所有可能的反射异常?
我有一个记录器系统,它基本上是一种以线程安全的方式将数据写入std :: clog的奇特方式.
我也是,重定向std::clog到这样的文件:
int main() {
std::ofstream logfile(config::logname, std::ios::app);
std::streambuf *const old_buffer = std::clog.rdbuf(logfile.rdbuf());
// .. the guts of the application
std::clog.rdbuf(old_buffer);
}
Run Code Online (Sandbox Code Playgroud)
这很好用......但是,我的应用程序也生成了大量的日志.我想知道什么是正确旋转我的日志文件的好方法.是否有通过cron任务切换文件的安全方法?我猜不会.
我唯一能想到的就是如果我让应用程序本身打开一个新文件,并在保存日志记录互斥锁的同时将clog的rdbuf重定向到该文件.但这感觉就像一个廉价的解决方案,我需要检查一下,看看是时候经常轮换日志以使其有效.必须有一个更好的方法.
有没有办法让我可以获得特定模型在Rails中所属的模型列表?
例如:
class Project < ActiveRecord::Base
has_one :status
...
end
class Task < ActiveRecord::Base
has_one :status
...
end
class Status < ActiveRecord::Base
belongs_to :project
belongs_to :task
# this is where I want to be able to pass in an array of the associations' class
# names (to be used for checking input) rather than having to do w%{ project task }
# which leaves it open to failure if I add new associations in future
validates_inclusion_of :status_of, :in => ? …Run Code Online (Sandbox Code Playgroud) 我想使用一个asp:LinkButton,因为它看起来像一个链接,但也有服务器端点击处理程序.
但是,Web服务器似乎无法检测客户端上是否禁用了javascript,并且无法呈现为仍然有效的机制.
是否有可能有一个看起来像链接,但有服务器端OnClick事件处理程序的链接?
答案是否定的,但下面是一些解决方法的想法.接受了非零向上投票的那个.
c# ×3
.net ×2
asp.net ×2
java ×2
activerecord ×1
associations ×1
c++ ×1
culture ×1
exception ×1
groovy ×1
ipc ×1
javascript ×1
launch ×1
linkbutton ×1
linux ×1
logging ×1
oop ×1
perl ×1
process ×1
rotation ×1
sql ×1
xml ×1
xmlslurper ×1