有一些流行的递归角度指令Q&A,它们都归结为以下解决方案之一:
第一个问题是,除非您可以理解地管理手动编译过程,否则无法删除以前编译的代码.第二种方法存在的问题是......不是指令而忽略了它的强大功能,但更迫切的是,它不能像指令一样参数化; 它只是绑定到一个新的控制器实例.
我一直在玩手动做一个angular.bootstrap
或@compile()
在链接功能,但这让我有手动跟踪要删除和添加的元素的问题.
有一种很好的方法可以使用参数化递归模式来管理添加/删除元素以反映运行时状态吗?也就是说,一个带有添加/删除节点按钮的树和一些输入字段,其值从节点的子节点传递下来.也许是第二种方法与链式范围的组合(但我不知道如何做到这一点)?
我有一个属于一个组的玩家列表.如何使用过滤器列出每组用户?
[{name: 'Gene', team: 'team alpha'},
{name: 'George', team: 'team beta'},
{name: 'Steve', team: 'team gamma'},
{name: 'Paula', team: 'team beta'},
{name: 'Scruath of the 5th sector', team: 'team gamma'}];
Run Code Online (Sandbox Code Playgroud)
我正在寻找这个结果:
/编辑:我完全剥离了配置,以显示问题.我还向GitHub上传了一个可以结账的工作项目,所以你可以亲自看看.
GitHub上有问题的用例:webpack-angular15-es6-karma(下载7z档案)
npm install
npm run build
npm run test
Run Code Online (Sandbox Code Playgroud)
我知道有几个相关的问题,但世界变化如此之快,有很多因素/依赖关系,我无法用当前提出的解决方案解决这个问题.
我有一个webpack配置来处理我的所有源代码,它工作得很好.
为了进行测试,我重用该配置来处理一个加载源和测试文件的中央入口脚本.我找不到另一种方法将源代码中的模块导入我的测试代码进行测试.
Karma构建了很好的重用我的webpack配置,但浏览器一打开就报告错误.
源代码使用ES6导入和webpack require语句.
的package.json:
npm run build >>> webpack --config webpack.config.js --display-error-details --colors --progress
npm run test >>> karma start --single-run --no-auto-watch karma.config.js
{
"name": "ProblemDemo",
"scripts": {
"build": "rimraf dist && webpack --config webpack.config.js --display-error-details --colors --progress",
"test": "karma start --single-run --no-auto-watch karma.config.js"
},
"dependencies": {
"angular": "^1.5.7",
"angular-filter": "^0.5.8"
},
"devDependencies": {
"webpack": "1.13.1",
"html-loader": "0.4.3",
"babel-loader": "5.3.2",
"html-webpack-plugin": "1.6.1",
"rimraf": …
Run Code Online (Sandbox Code Playgroud) 我正在使用<sonar.exclusions>
pom.xml来排除单元测试代码覆盖的某些包.我在当地设置了Sonar,排除项反映在报告上.但是,公司服务器上的相同排除项不受尊重.
我正在使用<sonar.skippedModules>
它按预期工作,并在两个环境中完全跳过所需的模块.
本地Sonar版本是版本4.3.1公司的Sonar版本是版本4.1.2
我<sonar.skippedModules>
在其中一个模块中编写的示例:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.mainClass>.....</project.mainClass>
<sonar.exclusions>
/src/main/java/../../../../../Package1/*,
/src/main/java/../../../../../Package2/*,
/src/main/java/../../../../../JavaClass1.java
</sonar.exclusions>
<sonar.language>java</sonar.language>
</properties>
Run Code Online (Sandbox Code Playgroud)
能否帮助我理解为什么<sonar.exclusions>
只在本地获得荣誉,而不是在我建立工作(在Jenkins上设置)以在公司服务器上生成Sonar报告时获得荣誉?版本的区别是否重要?
在逗号之后是否缺少用于分隔包名称的新行字符会有所不同吗?
在角度记录器上,我们正在尝试增强$log
,但我们希望在角度模块和组件的名称下工作而不做任何更改.为此,我们需要在运行时获取AngularJS 上下文,即模块名称和控制器,服务或指令名称.
app.module("SampleModule").
controller("ControllerOne", function ($log) {
$log.debug("I am ready!")
}).
controller("ControllerTwo", function ($log) {
$log.debug("I am ready!")
});
Run Code Online (Sandbox Code Playgroud)
默认$log
输出:
> I am ready!
> I am ready!
Run Code Online (Sandbox Code Playgroud)
如果我们可以在运行时获取模块和控制器名称,那么使用增强版$log
我们可以获得更丰富的输出:
> SampleModule.ControllerOne: I am ready!
> SampleModule.ControllerTwo: I am ready!
Run Code Online (Sandbox Code Playgroud)
最好的选择是在不更改控制器代码的情况下获取它.也许有办法获得一些关于收到$ log依赖注入的实体的元信息?
有什么建议?
所以我知道存在2个内存区域:Stack和Heap.
我也知道如果你创建一个局部变量,它将存在于堆栈中,而不是堆中.随着我们将数据推入其中,堆栈将会增长,如:
现在我将尝试通过我对你的困惑:
例如,这个简单的Java代码:
public class TestClass {
public static void main(String[] args) {
Object foo = null;
Object bar = null;
}
}
Run Code Online (Sandbox Code Playgroud)
被翻译成这个字节码:
public static void main(java.lang.String[]);
Code:
Stack=1, Locals=3, Args_size=1
0: aconst_null
1: astore_1
2: aconst_null
3: astore_2
4: return
LineNumberTable:
line 5: 0
line 6: 2
line 7: 4
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 args [Ljava/lang/String;
2 3 1 foo Ljava/lang/Object;
4 1 2 bar Ljava/lang/Object;
Run Code Online (Sandbox Code Playgroud)
根据定义,acons_null …
我在网上找了一堆博客小道,了解应该如何设置,我有以下情况:
首先,ssh -T git@bitbucket.org
返回以下结果
conq: logged in as myuser.
You can use git or hg to connect to Bitbucket. Shell access is disabled.
这意味着我已经在本地和bitbucket中正确设置了ssh密钥,同意了吗?
我有一个〜/ .ssh/config,其中包含以下内容:
Host bitbucket.org IdentityFile ~/.ssh/id_rsa
那个关键是在那里.
但是,当我尝试命令(取自另一个教程)时git push origin master
,我会得到一个弹出窗口说:
--------------------------- PuTTY Fatal Error --------------------------- Disconnected: No supported authentication methods available (server sent: publickey) --------------------------- OK
我正在使用Maven构建我的项目,但我还没有找到相当于Gradle的Application Plugin.
是否有一些好的Maven插件用于创建发行版.zip?这样我们Gradle的应用程序插件?更重要的是:比如应用程序插件中的Gradle任务"distZip" - 创建一个完整的分发ZIP存档,包括运行时库和操作系统特定的脚本.
Maven用户使用什么来解决这个用例?
我在代码中抛出了一堆自定义运行时异常,并且我想确保在所有公共方法中,我记录可能会(我自己)抛出哪个运行时异常以及原因。因为我要维护一个库,该库可供许多项目使用,并且我希望它对于抛出的(运行时)异常是预先的和可预测的,所以这将是非常高兴的。
是否有编译器选项,Maven插件,Intellij插件或自定义工具可以帮助我找到缺失的throws
子句?随着检查的异常很容易,编译器将只是抱怨,如果我错过了一个,但是对于运行时异常都throws
与@throws
不执行。
我想到的一件事是暂时使我自己所有的运行时异常都经过检查的异常(它们已经共享了一个超类),但这将是一次性的练习。每次进行更改时,我都想验证我的代码/文档,因此我永远不会忘记记录我的运行时异常。
另一种方法是实际检查整个代码中的异常,然后仅在公共api中将它们转换为运行时:
class Foo {
// oops, throws not documented with @throws
public void publicMethod() {
try {
privateMethod1();
} catch (CheckedFooException e) {
throw new RuntimeFooException(e);
}
}
private void privateMethod1() throws CheckedFooException {
privateMethod2();
}
private void privateMethod2() throws CheckedFooException {
throw new CheckedFooException();
}
}
Run Code Online (Sandbox Code Playgroud)
这种方法将迫使我在所有公共方法中考虑CheckedFooException。然后要检查是否错过了一个文档(即@throws RuntimeFooException
),只需对它进行正则表达式搜索catch.*CheckedFooException
并检查缺少的@throws
条目。但是,这个过程相当繁琐(而且很多公共api都可以使用try ... catch语句)。
答:关于是否应该记录(您自己抛出的)运行时异常(到目前为止的总结:取决于情况),存在一些讨论,但是就我的问题的直接答案而言,已接受的答案可以充分回答它。我可以采取这种方法,实施我的用例,甚至花一些时间和精力来用它制作一个maven插件。我为此上传了一个清理启动项目。
java ×5
angularjs ×3
javascript ×3
logging ×2
maven ×2
babeljs ×1
bitbucket ×1
build ×1
bytecode ×1
ecmascript-6 ×1
exception ×1
filter ×1
git ×1
git-bash ×1
gradle ×1
grouping ×1
jenkins ×1
jvm ×1
karma-runner ×1
liquibase ×1
log4j ×1
plugins ×1
recursion ×1
slf4j ×1
sonarqube ×1
ssh ×1
stack ×1
webpack ×1
windows ×1