标签: code-reuse

SSIS并重新使用C#

我是SSIS/C#的新手(我通常是一名Java开发人员),如果这是一个非常愚蠢的问题,请道歉.

本质上问题是:我有两个数据流任务,它们加载数据并将它们导出为传统的平面文件格式.格式化由脚本任务(C#)完成.

我想做的是在两者之间分享一些共同的代码.例如,我可以创建一个公共基类,然后为我的两个不同的脚本任务扩展它.

然而,似乎SSIS并没有真正为此做好准备.

有谁知道是否有办法完成我想做的事情?

c# code-reuse ssis

9
推荐指数
1
解决办法
1万
查看次数

跨项目重用SQLAlchemy模型

我有一些标准的SQLAlchemy模型,我可以在项目中重复使用.像这样的东西:

from sqlalchemy import Column, Integer, String, Unicode
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class Category(Base):
    __tablename__ = 'category'

    id = Column(Integer, primary_key=True)
    slug = Column(String(250), nullable=False, unique=True)
    title = Column(Unicode(250), nullable=False)

    def __call__(self):
        return self.title
Run Code Online (Sandbox Code Playgroud)

我想把它放在一个共享库中,然后将它导入到每个新项目中,而不是剪切和粘贴它,但我不能,因为declarative_base实例是在项目中单独定义的.如果不止一个,他们将不会分享会话.我该如何解决这个问题?

这是另一个建议使用mixin类的问题.这可行吗?SQLAlchemy会从mixin类中准确地导入外键吗?

python code-reuse sqlalchemy

9
推荐指数
1
解决办法
1758
查看次数

如何以与其他语言中的mixins/method modifiers/traits类似的方式提升代码重用?

我正在研究一些与数据库模式接口的代码,该数据库模式为持久性图形建模.在我详细讨论我的具体问题之前,我认为可能有助于提供一些动力.我的架构围绕书籍,人物和作者角色.一本书有许多作者角色,每个角色都有一个人.但是,您必须创建新书并对新版本进行修改,而不是允许对书籍对象进行直接UPDATE查询.

现在,回到Haskell的土地上.我目前正在使用几个类型类,但重要的是我有HasRolesEntity:

class HasRoles a where
    -- Get all roles for a specific 'a'
    getRoles :: a -> IO [Role]

class Entity a where
    -- Update an entity with a new entity. Return the new entity.
    update :: a -> a -> IO a
Run Code Online (Sandbox Code Playgroud)

这是我的问题.在更新图书时,您需要创建新图书版本,但需要复制以前的图书角色(否则会丢失数据).最简单的方法是:

instance Entity Book where
    update orig newV = insertVersion V >>= copyBookRoles orig
Run Code Online (Sandbox Code Playgroud)

这是好的,但有一些困扰我,这就是缺乏不变,如果事情是任何担保Entity HasRoles,然后插入一个新的版本将复制在现有的角色.我想到了两个选择:

使用更多类型

一个'解决方案'是介绍RequiresMoreWork a b.从上面开始,insertVersion现在返回一个HasRoles w => …

code-reuse haskell

9
推荐指数
1
解决办法
513
查看次数

AngularJS + Karma:在单元测试指令或控制器时重用模拟服务

我正在使用AngularJS + Karma. configService管理我的应用程序的设置(例如背景颜色,它在调试模式下,一般权限......).它使用$ http加载初始数据.我成功地为服务编写了测试,但我的指令和控制器使用它.

当我为指令编写单元测试时,我必须模拟服务.

我知道我能做到:

spyOn(configService, 'getBackgroundColor').andCallFake(function (params) {
   return "red";
});
Run Code Online (Sandbox Code Playgroud)

但该服务有25多种方法和初始数据加载.我不想在每个测试套件中编写(并维护)这个spyOn的东西.更重要的是,我使用$ http在工厂加载数据,这也应该被嘲笑.如果我只是注入服务并模拟调用,我仍然会发出http get请求.

您认为重用模拟的最佳方法是什么?

code-reuse unit-testing jasmine angularjs karma-runner

9
推荐指数
2
解决办法
4024
查看次数

用C编写的DLL与用C++编写的相同

我今天和同事讨论过.他声称用C语言编写DLL将允许使用任何语言编写的任何其他应用程序来使用该DLL.但是,如果该DLL是用C++编写的,则可能使用该DLL的应用程序数量有限(可能是因为语言限制).

  1. 这样说是对的吗?
  2. 如果你要编写一个应该被各种语言编写的各种应用程序使用的DLL(但是在同一个平台上,让我们忘记一点可移植性),你会用C/C++编写它吗?为什么?

我希望这个问题不是大猩猩与鲨鱼有点问题.如果是,请关闭它.

c c++ dll code-reuse

9
推荐指数
2
解决办法
3142
查看次数

编码优先级:性能,可维护性,可重用性?

这主要是由于SQL问题的答案.由于性能原因,故意省略UDF和子查询.我没有包含可靠性而不是它应该被视为理所当然,但代码必须工作.

性能总是先行?如此多的答案以性能为主要优先考虑.我的用户似乎更关心代码的修改速度.因此报告需要15秒而不是12秒才能运行.只要我不找不提供解决方案的借口,他们就可以忍受.

显然,如果15秒变为15分钟,则存在问题,但用户需要该功能.他们希望应用程序适应业务规则更改和增强请求.我希望能够在6个月后查看代码,并且能够在一个容易识别的位置进行更改,而不是追逐所有那些地方,因为他们认为调用另一个函数或子例程或Udf妨碍表现.

所有这一切,我会命令:可维护性(变化是生活中的事实.),性能(没有人喜欢盯着沙漏.),可重用性(很难确定应该再次使用哪些代码).

performance code-reuse maintenance

8
推荐指数
1
解决办法
4196
查看次数

克服"以后修复"的坏习惯

当我从头开始编写代码时,我养成了在一个函数中快速编写所有内容的坏习惯,整个时间都在考虑"我将在以后更加模块化".然后,当后来出现时,我有一个工作产品,任何修复它的尝试都意味着创建功能,并且必须弄清楚我需要通过什么.

它变得最糟糕,因为当你的项目几乎完成时重新设计类变得非常困难.例如,我通常在开始编写代码之前做一些规划,然后当我的项目完成时,我意识到我可以使类更加模块化和/或我可以使用继承.基本上,我认为我没有做足够的计划,而且我不会获得超过一个级别的抽象.

所以最后,我坚持使用一个具有大型主函数,一个类和一些辅助函数的程序.不用说,它不是非常可重复使用的.

有没有人有同样的问题,有任何提示可以克服这个问题?我想到的一件事是用pseduocode编写main函数(没有太多细节,但足以看到他们需要什么对象和函数).本质上是一种自上而下的方法.

这是一个好主意吗?还有其他建议吗?

c++ code-reuse modularity

8
推荐指数
2
解决办法
566
查看次数

如何编写可重用的glsl代码?

我的着色器通常共享许多相同的功能.例如,漫反射/镜面反射照明的计算.我想写一次,然后在不同的着色器中重用代码.

Glsl不了解文件,也不支持类似c的#include预处理器指令.

我知道glsl支持从多个cstrings编译源代码,但是你怎么知道要包含哪些cstrings?你实现了自己的包含版本吗?或者你为每个着色器创建某种元文件?

code-reuse preprocessor glsl include

8
推荐指数
1
解决办法
5267
查看次数

如何重用iOS/xcode中的颜色和样式?

Android,WPF以及我一直在使用的大多数平台都可以在单个文件中重用和"集中"ui资源,如颜色和样式.

在android中它可以这样做:

在colors.xml文件中:

<color name="secondary_text_color">#ffcc67</color>
Run Code Online (Sandbox Code Playgroud)

在任何视图中:

<TextView text="some text" textColor="@colors/secondary_text_color" />
Run Code Online (Sandbox Code Playgroud)

iOS中有类似的东西吗?

我不是想在iOS中复制android,但我正在努力理解应该遵循的ui重用模式(如果有的话).

我遇到的唯一的事情是在代码中定义主题,并在代码背后重用它,这是正确的方法吗?

user-interface code-reuse design-patterns ios swift

8
推荐指数
1
解决办法
3381
查看次数

WPF XAML定义的MenuItem重用开始工作,然后消失

以下简单代码尝试在两个单独的菜单上重用Window.Resources中定义的MenuItem.

<Window x:Class="WpfApplication.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
        Title="MainWindow" Height="350" Width="525">
  <Window.Resources>
    <collections:ArrayList x:Key="menuItemValues">
       <MenuItem Header="First"/>
       <MenuItem Header="Second"/>
       <MenuItem Header="Third"/>
    </collections:ArrayList>
    <MenuItem x:Key="menuItem" x:Shared="False"
              ItemsSource="{StaticResource menuItemValues}"
              Header="Shared menu item"/>
  </Window.Resources>
  <StackPanel>
    <Menu HorizontalAlignment="Left" VerticalAlignment="Top">
      <StaticResource ResourceKey="menuItem"/>
      <StaticResource ResourceKey="menuItem"/>
    </Menu>
  </StackPanel>
</Window>
Run Code Online (Sandbox Code Playgroud)

这开始很棒,当你第一次选择菜单时,一切看起来都很好.第一个菜单有所需的MenuItems,

在此输入图像描述

第二个也是如此:

在此输入图像描述

但是当您导航回第一个菜单时,MenuItems会消失:

在此输入图像描述

有人可以解释为什么菜单消失,并有办法让这个工作?

这是在调查另一个异常的SO问题时发现的.我尝试使用在另一个SO问题上讨论的策略,它似乎解决了问题,直到你第二次导航回菜单并且它消失了.

我在2台不同的机器上重现了这个问题:

  1. Win 10,VS2013 Ult V12.0.40629.00 Update 5,.NET V4.6.0138
  2. Win 7,VS2013 Prem V12.0.31101.00 Update 4,.NET V4.5.51209

wpf code-reuse xaml menuitem visual-studio-2013

8
推荐指数
1
解决办法
390
查看次数