Martin Fowler说我们应该在添加新功能之前进行重构(假设原始程序结构不合理).
所以我们都想重构这个脏代码库,这是肯定的.我们也知道,如果没有单元测试代码,很容易引入细微的错误.
但它是一个庞大的代码库.添加一整套测试似乎是不切实际的.
在这种情况下你会做什么?
看起来我的数据仓库项目明年将转向Teradata(来自SQL Server 2005).
我正在寻找有关Teradata最佳实践的资源 - 从SQL方言的限制到习惯用法以及使查询表现良好的惯例 - 特别是如果它们突出显示与SQL Server 2005明显不同的内容.特别提示类似于SQL的艺术(更注重Oracle).
我的业务流程目前在T-SQL存储过程中,并且非常依赖SQL Server 2005的功能,如PIVOT,UNPIVOT和Common Table Expressions,每月从4TB数据仓库生成大约2700行的输出.
我想显示一个给对象的属性,并想知道是否有一个python函数.例如,如果我有以下类中的对象:
class Antibody():
def __init__(self,toSend):
self.raw = toSend
self.pdbcode = ''
self.year = ''
Run Code Online (Sandbox Code Playgroud)
我可以获得类似于此类似的输出:
['self.raw','self.pdbcode','self.year']
Run Code Online (Sandbox Code Playgroud)
谢谢
表1和表2的主键(key1,key2)是相同的.表3是用户定义的表,其中一个列field5对于table2是通用的.我需要从表1和表2中选择行,其中table2中的field5在table3中.我需要以与table3相同的顺序获取行.
key1 key2 field1 field2
key1 key2 field3 field4 field5
字段5
我正在考虑的问题是
select a.key1, a.key2, a.field1, a.field2, b.field3, b.field4
from table1 as a INNER JOIN table2 as b ON a.key1 = b.key1 AND a.key2 = b.key2
where b.field5 in (select field5 from table3)
Run Code Online (Sandbox Code Playgroud)
这不会给我行与表3中相同的顺序.
我需要这样的东西来维持秩序吗?
select a.key1, a.key2, a.field1, a.field2, d.field3, d.field4 from
table1 as a INNER JOIN
(select b.key1, b.key2, b.field3, b.field4
from table2 as b INNER JOIN table3 as c
ON b.field5 = c.field5) as …Run Code Online (Sandbox Code Playgroud) 如果我subprocess用给定的命令在python中生成一个新的(假设我用python命令启动python解释器),我如何将新数据发送到进程(通过STDIN)?
我将编写一个国际象棋服务器和一个或多个国际象棋客户端,我想用编程语言独立的方式描述国际象棋的规则(例如基于游戏状态的允许移动,游戏完成时的规则).这有点棘手,因为一些国际象棋规则(例如King Castling,en passent,基于3次或更多次重复动作绘制)不仅基于棋盘布局而且基于移动历史.
我希望格式为:
但我愿意牺牲其中任何一种来获得合适的解决方案.
我的主要问题是:如何构建如此复杂的算法,从数据格式对这种复杂状态进行操作?
后续问题是:您能否以类似的方式提供类似问题的示例,以此作为起点?
编辑:为了回应清晰的要求 - 考虑我将用Python编写的服务器,一个用C#编写的客户端和另一个用Java编写的客户端.我想避免在每个地方指定规则(例如,允许的棋子移动,检查的情况等).我宁愿以语言独立的方式指定这些规则.
我最近一直在编写相当数量的小型wsgi应用程序,我希望找到一个可以分发的Web服务器,预先配置为运行特定的应用程序.我知道有些东西像twisted和cherrypy可以提供wsgi应用程序,但它们似乎缺少一个关键的功能,我可以使用http范围标题"伪流"大文件.是否有可在BSD或类似许可下使用的Web服务器,可以在任何主要平台上作为独立可执行文件分发,它们既可以代理到wsgi服务器(如cherrypy等),也可以使用http服务大文件范围标题?
我需要一个如何存储日期时间和时区的帮助.我正在使用Mysql 5.1.我想做点什么 -
create table tb1
(
c1 datetime with time zone
);
Run Code Online (Sandbox Code Playgroud) 我有一个Kimball风格的DW(星型模型中的事实和维度 - 没有迟到的事实行或列,没有列的尺寸变化,除了过期作为类型2缓慢变化的尺寸的一部分),每日处理繁重以插入和更新行(新日期)以及每月和每日报告流程.事实表按日期划分,以便轻松滚动旧数据.
我理解WITH(NOLOCK)可以导致读取未提交的数据,但是,我也不希望创建任何会导致ETL进程失败或阻塞的锁.
在所有情况下,当我们从DW读取时,我们正在从事实表中读取一个不会改变的日期(事实表按日期划分)和维度表,这些表不会因为链接到的事实而改变属性.
那么 - 有什么缺点吗?- 可能在执行计划中或在SELECT相同表中并行运行的此类非常查询的操作中.
我正在从数据源中读取一些代表xy坐标的数字,我将用它来解决TSP问题.我是python的新手,所以我试图充分利用列表.在阅读并解析了数据之后,我留下了一个字符串列表列表,如下所示:
[['565.0','575.0'],['1215.0','245.0'],... yougetthepoint ... ['1740.0','245.0']]
我宁愿处理整数点.如何将包含字符串的这些列表转换为包含整数的列表?他们似乎没有很好地投射,因为我得到这个错误:
ValueError:基数为10的int()的无效文字:'565.0'
小数似乎导致问题.
python ×5
sql ×2
sql-server ×2
c# ×1
chess ×1
dataformat ×1
datetime ×1
http ×1
java ×1
list ×1
mysql ×1
nolock ×1
oop ×1
popen ×1
process ×1
refactoring ×1
subprocess ×1
teradata ×1
testing ×1
unit-testing ×1
wsgi ×1