小编Chl*_*bik的帖子

从ExtJS自动扫描配置文件

我从头开始创建ExtJS 6.2应用程序.我对这个框架很新,所以我可以使用脚手架的应用程序.

设计的应用程序应该具有单独的"插件"(在代码/包级别上)将完全分离.我们也有某种路由器,它会为每个视图名称(路径/控制器/模型/附加信息)注册一些信息.我希望它以类似于模板方法设计模式的方式工作.当我添加新的插件/模块时,我还添加了具有特定名称模式的文件 - 例如.ModuleACMEGlobalConf.我想要ExtJS应用程序(或组件/类 - 无论如何)以某种方式扫描整个类树以获取具有此类名称模式的文件,读取它们的内容然后放入我的路由器config/global namespace变量.

问题是 - 实现这一目标的最佳方法是什么?

更新:

我想要的结构:

MyAppFolder  
---Module1  
.....MyConfigGlobal1.js  
---Module2  
.....MyConfigGlobal2.js  
---  
---Router.js  -> I want this file to scan whole 'MyAppFolder' tree, find files with *ConfigGlobal*.js pattern, read them and store in global namespace  

MyConfigGl​​obal1.js

var config = { configProp1:  'test', configProp2:  'test2'}
Run Code Online (Sandbox Code Playgroud)

MyConfigGl​​obal2.js

var config = {configProp3: 'test3', configProp4: 'test4'}
Run Code Online (Sandbox Code Playgroud)

Router.js

var configsMap = EXT.SOMETHING.FIND.ME.CLASSES.FROM.TREE.WITH.NAME('*MyConfigGlobal*')
Run Code Online (Sandbox Code Playgroud)

我希望路由器加载所有东西(它可以在类级别,而不是文件级别) - 无论是一个类还是一百个.使用此解决方案,我不必更改Router.js - 只需在我正在创建的新模块中添加另一个配置类.所以没有必要重新测试以前的模块.

但如果我在路由器中有这样的东西:

var requiredConfigs = ['MyGlobalConfig1.js','MyGlobalConfig2.js']
Run Code Online (Sandbox Code Playgroud)

我即将在路由器中将此第三个文件/类添加到此列表中,这意味着该策略已损坏,我必须重新测试module1和module2,因为它们以某种方式对它们共同的代码进行了修改.

javascript extjs

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

Java 8 streaming:如何将对象列表转换为其所选属性的列表

我上课了

class Person {
   // get/set omitted for simplicity
   public String firstName;
   public String lastName;
}
Run Code Online (Sandbox Code Playgroud)

我也有这样的对象列表

List<Person> list ...
Run Code Online (Sandbox Code Playgroud)

我需要使用以下流转换

List<Person> list ...
List<String> firstLastNames = list.stream()....
Run Code Online (Sandbox Code Playgroud)

所以我的List firstLastNames将包含此列表中的名字和姓氏.所以.

System.out.println(firstLastNames); // will give me -> "John", "Smith", "Jessica", "Jones".. etc.
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream

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

ArchUnit 包的使用(子包除外)

我得到了看似微不足道的用例,但我仍然无法弄清楚。让我们看一下包结构。

-- 通用包
-- 套餐1
---- DAO
-  -  常见的
-  -  服务
-- 套餐2
---- 子包1
---- 子包2

我想要实现的是创建一条规则,其中Package2中的所有类都不能使用Package1 中的任何类,除了公共类之外。到目前为止,我已经得到了这样的东西:

noClasses()
    .that()
    .resideInAPackage("package2..")            
    .should()
    .resideInAnyPackage("package1..")
    // and how write eg. except("package1.common")
    .check(classes);
Run Code Online (Sandbox Code Playgroud)

但我不知道如何从这个方程中排除package1.common。有人可以帮忙吗?

java archunit

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

标签 统计

java ×2

archunit ×1

extjs ×1

java-8 ×1

java-stream ×1

javascript ×1