标签: code-sharing

在Angular应用程序之间共享代码

我有一个现有的Durandal应用程序,实际上是两个应用程序纠缠在一起.

我想重写Angular中的应用程序,并希望区分应用程序共享公共代码.

我估计大约80%的代码可以共享.

如果可能的话,我想使用angular-cli.但我真的在寻找如何在Angular应用程序之间共享代码的最佳实践.

code-sharing angular-cli angular

7
推荐指数
1
解决办法
3349
查看次数

移动和Web应用程序的共享代码库?

我一直在开发一个移动应用程序.它可以在iOS和Android上运行,也可以作为AIR应用在桌面上运行.这太棒了,我对此感到非常兴奋.但是,上周我被问到为什么我无法导出在Web浏览器中运行的应用程序版本.我说我认为我可以,我会调查它.

但为什么要在桌面上运行移动代码?

有几个原因:

  • 更多地重用代码.这在所有情况下都没有意义,但在许多情况下确实如此.(我不会详细说明,因为我认为这是不言而喻的.如果你不同意我会很乐意谈论它,但我宁愿不用它来堵塞这个描述.)
  • 更快/更容易的客户端演示.我不必在移动设备上安装apk或ipa,而只需发送一个URL即可.

那么我发现了什么?好吧,从我迄今为止尝试过的...它...不起作用.或者说我无法使其发挥作用.

我首先为所有共享代码创建了一个Flex库项目.然后我创建了两个引用它的应用程序项目 - 一个用于移动,一个用于Web.移动项目工作正常,但Web项目没有.以下是我迄今为止尝试过的方法:

  • 我尝试将mobilecomponents.swc和mobile.swc主题添加到我的Web项目中,以便Flash Builder了解MobileSkin(以及其他仅限移动的类).这使我的应用程序能够编译,但是当我启动它时会立即在UIComponent内部引发运行时错误:VerifyError: Error #1014: Class flash.text::StageText could not be found.我发现这个错误很少,我找到的一个提示(添加--swf-version=13编译器选项)不起作用.
  • 我尝试使用条件编译来控制我的皮肤组件继承自哪个类:MobileSkin或SparkSkin.这只是一个快速的实验,看看它是否有效.我知道这很恶心,而不是生产解决方案.我的想法是,如果MobileSkin真的只是SparkSkin的优化版本,我的皮肤应该可以继承.这没有立即工作 - 应用程序不会编译b'c缺少某些方法(例如layoutContents),所以我保释它因为它开始感觉很脏.
  • 我尝试用UIComponent替换MobileSkin作为我所有皮肤的超类,认为MobileSkin可能只是UIComponent的一个轻量级子类.这种方法最初导致一些编译器错误(例如没有layoutContents方法,没有measuredDefaultWidth/measuredDefaultHeight属性,addChild vs addElement等).一旦这些问题得到解决,应用程序就会编译但在UIComponent的"getState"方法中遇到运行时错误.(看起来MobileSkin会覆盖此方法以防止UIComponent的默认行为.)

所以到目前为止,这些方法都没有对我有用......但你呢?你遇到过这个问题吗?你是否能够使它发挥作用,或者你能否发现我在上面提到的方法中所做的任何明显的疏忽?如果可以,请提前致谢.


更新:问题已解决

我已经能够在上面提到的第一条路线上取得进展:将mobilecomponents.swc和mobile.swc主题添加到我的web项目中

事实证明,Flash Builder在这方面让我错了.使用"合并到代码"设置将移动SWC添加到库项目会导致编译器警告:swc'/ Applications/Adob​​e Flash Builder

4.6/sdks/4.6.0/frameworks/themes/Mobile/mobile.swc'具有样式默认值并位于库路径中,这意味着依赖关系将在没有样式的情况下链接.这可能导致使用输出swc的应用程序丢失皮肤.swc应该放在外部库路径中.

第一次看到这个,我将链接类型更改为"外部",警告消失了.然后在我的web项目中,我还添加了移动SWC并将链接类型设置为"合并到代码".Flash Builder似乎对这种方法很满意,但在运行我的应用程序时,我遇到了奇怪的运行时错误(如上所述).

原来我的第一次尝试是正确的方法.将库项目上的链接类型设置为"合并到代码",然后不要从Web项目重新链接.Flash Builder会警告您,但忽略警告.事情似乎在大多数情况下都很好用!我有一两个要研究的问题(例如,列表组件不会滚动)但事情总体上看起来很有前途!

flash mobile adobe shared-libraries code-sharing

5
推荐指数
1
解决办法
888
查看次数

避免在复制构造函数和operator =中重复相同的代码

在c ++中,当类包含动态分配的数据时,显式定义复制构造函数operator =和destructor通常是合理的.但这些特殊方法的活动重叠.更具体地说,operator =通常首先进行一些破坏,然后它会复制类似于复制构造函数中的那个.

我的问题是如何在不重复相同代码行的情况下以最佳方式编写此代码,而无需处理器执行不必要的工作(如不必要的复制).

我通常最终得到两种帮助方法.一个用于施工,一个用于破坏.第一个是从复制构造函数和operator =调用的.第二个是析构函数和operator =使用的.

这是示例代码:

    template <class T>
    class MyClass
    {
        private:
        // Data members
        int count;
        T* data; // Some of them are dynamicly allocated
        void construct(const MyClass& myClass)
        {
            // Code which does deep copy
            this->count = myClass.count;
            data = new T[count];
            try
            {
                for (int i = 0; i < count; i++)
                    data[i] = myClass.data[i];
            }
            catch (...)
            {
                delete[] data;
                throw;
            }
        }
        void destruct()
        {
            // Dealocate all dynamicly allocated data …
Run Code Online (Sandbox Code Playgroud)

c++ destructor copy-constructor code-sharing assignment-operator

5
推荐指数
2
解决办法
1231
查看次数

如何在 Netlify lambda 函数之间共享代码

我有 3 个独立的函数,每个函数都在它们自己的文件夹中。它们都使用 Twilio 客户端和 Apollo 客户端分别处理 SMS 和 GraphQL 服务器。

与其在每个文件中都拥有实例化每个客户端(从 env 等获取密钥)的所有代码,不如将它放在某个地方并需要它?

我尝试将代码放入顶级函数/文件夹中的 .js 文件中,并在函数代码中要求它,如下所示,这在本地运行良好,netlify devModule not found '../twilioClient'在实时环境中调用函数时出错。

/functions
  apolloClient.js
  twilioClient.js
  package.json - specifying deps used by above files
  /auth
    auth.js - require('../apolloClient')
    ...
  /trails
    trails.js - require('../twilioClient') etc.
    ...
Run Code Online (Sandbox Code Playgroud)

code-sharing aws-lambda netlify serverless netlify-function

5
推荐指数
1
解决办法
620
查看次数

分享 Xcode 项目

我搜索了这个,但没有找到我正在寻找的确切答案。我正在尝试通过电子邮件向朋友/同事发送我正在处理的保存的 xcode 项目。如果我在电子邮件中附加我保存的文件,当他打开它时,所有内容都有点红色,并且没有代码或任何东西。我怎样才能发送整个项目以便他可以访问它?谢谢。

macos xcode file-sharing code-sharing

4
推荐指数
1
解决办法
6905
查看次数

在两台服务器上共享一个mercurial存储库

我正在开发一个托管在Bitbucket上的项目.我还想在连接到本地Intranet的办公室服务器上安装相同的项目,这样当我在我的系统上提交时,我可以推送到两个存储库(Bitbucket和我的本地服务器).

如果互联网不可用,整个设置应该是用户可以在本地版本上进行协作,当它可用时,他们可以更新在线版本.

collaboration mercurial bitbucket code-sharing

3
推荐指数
1
解决办法
108
查看次数

在项目之间共享C#中的代码而不公开类

我有一个C#库,它有很多内部功能,只暴露一些公共类和接口.我想在几个项目之间共享此代码,并且每个项目可能需要使用子类扩展内部类.

我不喜欢将所有这些类公开以创建公共库的想法.我认为它暴露了太多容易反编译和打破设计.

是创建源代码副本并使这些文件在项目之间保持同步的唯一真正选择吗?或者是否有某种方式我可以共享代码并仍然为每个项目获得一个单独的库,只暴露少数预期的公共接口和类?

我正在使用Visual Studio 2010.

UPDATE

感谢有关反编译和"私人"访问的说明.我想我可以考虑将混淆器应用于几个输入库,所有这些都在一起,希望甚至可以混淆他们的公共连接.

从设计的角度来看,似乎答案肯定是使用朋友组件.

.net c# code-sharing

3
推荐指数
1
解决办法
2679
查看次数

在哪里发布开源使用的代码?

我已经使用Google Maps API v3工作了几个星期,并为我一直在创建的地图做了很多开发.

我做过的一些事情必须要做,以增加可用性,而以前没有,至少不是我能在网上找到的.从本质上讲,我列出了必须完成的工作,在网上搜索了我需要的方法,并发现有些(当时)不可能(在"抓住网络上的一个例子")感).

因此,在我在这张地图上的工作中,我创建了许多非常有用的工具,我想与开发社区分享.

除了我的投资组合(http://dougglover.com)之外,我可以在任何地方使用它作为中心,以便人们查看和回收我的作品吗?

我知道需要做一些事情是多么困难,并且无法在其他地方找到解决方案,我不认为如果之前已经做过某些事情,那么它必然需要反复写入.因此开源代码,对吗?

首先,我正在考虑来这里问一个问题,然后回答它.问题在于我认为这看起来只是一个很大的声誉.如果没有,请告诉我,我会继续这样做,这样人们就可以看到它.其他建议赞赏.

我做过的一些东西:

一个(新的和改进的)LatLng发生器

  • 更快地工作,根据可拖动标记的位置生成LatLng
  • 允许搜索地址以将标记放在所需位置上/附近(比从西伯利亚一直滚动到您的位置要好得多)
  • 由于它是一个可拖动的标记,双击放大,而不是像我最初使用的那样创建一个新的LatLng标记

能够创建完全自定义的"智能路径"

  • 在地图上绘制LatLng点,它们就像使用实际的Google地图一样相互连接
  • 使用Dijkstra的算法与Javascript,路由是智能的,并始终使用提供的点提供最短的路线
  • 简单易读的多维阵列系统允许轻松地向网格添加新点

任何建议,等等赞赏.

javascript google-maps open-source code-sharing google-maps-api-3

2
推荐指数
1
解决办法
182
查看次数

链接文件和添加另一个项目作为参考之间的区别?

我有一种情况,我有要在 1 个以上应用程序中使用的功能。特别是,我Repository采用了 C# 类库的形式,其中包含 EF .edmx、存储库和 UnitOfWork 之类的内容,这些内容足够通用,可以跨应用程序使用。

我很沮丧,我不能更清楚地看到图片,因为我应该清楚地了解差异;我做到了一点。但是,我认为我无法看透每个选择的后果和整体差异。

我已阅读此链接:您如何在 Visual Studio 中的项目/解决方案之间共享代码?它提供了一些很好的建议,但这两个建议似乎都站得住脚。我想更好地了解每种产品的下游影响,并了解哪种选择适合我的需要。

我相信通过链接文件,我会在 Application-2 中创建另一个 Repository项目,但使用链接文件作为新层的组成部分。

我相信将Repositoryfrom Application-1添加为对 Application-2的引用会起作用,但我不确定更改代码会产生什么影响。

我基本上需要知道哪种方法会产生正确的结果来满足我在 1..n 应用程序之间共享存储库层的需要?

.net class-library visual-studio code-sharing

2
推荐指数
1
解决办法
2223
查看次数

如何与其他开发人员共享Java项目?

我正在与一个协作者一起研究Java项目,我们都在使用Eclipse编辑器.我想要做的是能够与他共享.java文件,以便我们可以单独编辑它,但看看对方写了什么.目前,我这样做是通过共享包含项目的Dropbox文件夹的临时方式.但是,这种方法效果不佳,因为他使用的是不同版本的Java(因为他在使用Windows时运行Mac).对于我运行该项目,我将不得不清除他创建的所有.class文件,这些文件将出现在我的计算机上,因为Dropbox只是共享所有文件.

我听说CVS是管理开发人员之间文件共享的一种方式,但听起来好像很多工作.我不知道如何获得CVS服务器或如何使其工作.是否有一种简单直接的方法使我们能够在同一个Java项目上一起工作?GitHub是答案吗?

java eclipse code-sharing

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

Ruby on Rails模块,代码共享和社区

序言:我知道宝石.

我在工作中使用Drupal.如果您不知道,Drupal 模块.有一个框架和一个核心框架,但是当您在Drupal中构建一个站点时,安装和配置模块是大部分工作.

那么,作为Rails的新手,我有一个宠物项目,我正在尝试构建一个登录/用户系统.我已经在Stack Overflow上阅读了有关它的问题.

程序是

  1. 安装宝石
  2. 写代码

如果您一年制作20个网站,18个网站具有相同的登录系统,您可以做些什么来最小化第2步?

是否有我不了解的社区支持或活动?这种配置是否超出惯例?

module ruby-on-rails code-sharing

0
推荐指数
1
解决办法
1751
查看次数

共享数据库变量的正确方法(asp.net)

我一直在使用以下代码共享数据库变量:

Namespace DataAccessVariables
    Public Class Vars
        Public Shared s As String
        Public Shared con As String = WebConfigurationManager.ConnectionStrings("Dev").ToString()
        Public Shared c As New SqlConnection(con)
        Public Shared x As New SqlCommand(s, c)
    End Class
End Namespace
Run Code Online (Sandbox Code Playgroud)

然后我将其导入我的项目,如下所示:

Imports DataAccessVariables.Vars
Run Code Online (Sandbox Code Playgroud)

当我用FXCop检查网站时,我收到以下消息:

Error, Certainty 90, for StaticHolderTypesShouldNotHaveConstructors
{
    Target       : DBVars  (IntrospectionTargetType)
    Resolution   : "Remove the public constructors from 'Vars'."
    Help         : http://msdn2.microsoft.com/library/ms182169(VS.90).aspx  (String)
    Category     : Microsoft.Design  (String)
    CheckId      : CA1053  (String)
    RuleFile     : Design Rules  (String)
    Info         : "Instances of types that …
Run Code Online (Sandbox Code Playgroud)

database asp.net fxcop declaration code-sharing

0
推荐指数
1
解决办法
186
查看次数