我必须使用数百行以下代码实现某些业务规则
if this
then this
else if
then this
.
. // hundreds of lines of rules
else
that
Run Code Online (Sandbox Code Playgroud)
我们是否有任何设计模式可以有效地实现这一点或重用代码,以便它可以应用于所有不同的规则.我听说过规范模式,它创建了类似下面的内容
public interface Specification {
boolean isSatisfiedBy(Object o);
Specification and(Specification specification);
Specification or(Specification specification);
Specification not(Specification specification);
}
public abstract class AbstractSpecification implements Specification {
public abstract boolean isSatisfiedBy(Object o);
public Specification and(final Specification specification) {
return new AndSpecification(this, specification);
}
public Specification or(final Specification specification) {
return new OrSpecification(this, specification);
}
public Specification not(final Specification specification) {
return new NotSpecification(specification); …Run Code Online (Sandbox Code Playgroud) 我有两个申请
独立的python应用程序
我需要合并这两个应用程序并将此单个应用程序分发为单个可执行文件/二进制文 我理解我需要摆脱node.js并使用python作为我的后端,并将调用从react-node更改为react-python.对于后者我需要携带可能是Flask.
对于包装,我可以使用PyInstaller或cx_freeze.
任何指针是什么是进行此合并并创建单个可执行文件/二进制文件的最佳方法,以便最终的工作流程应如下所示:
1)用户获取单个可执行文件/二进制文件
2)运行/执行可执行文件/二进制文件
3)这会激活可以在浏览器上访问的应用程序
4)用户将能够从UI(React)向后端(Python)发送请求
所以基本上单个可执行文件/二进制文件有python env,python后端和react(UI)代码.
我有一个要求,我在其中呈现我在其中显示表单的视图.在提交表单时,我需要收集表单数据并创建一个文件,并将表单数据保存为该文件中的JSON.我正在使用React.js,node.js,babel和webpack.
经过努力实现这一点后,我发现我必须使用同构或通用的javascript,即在服务器端使用react和render,因为我们不能在客户端使用fs模块. 将此提交给服务器端.
我运行它: npm run start
在此之后,我可以在控制台中看到[Object Object]从下面的第1行反应组件(HomePage.js)打印到控制台上.但是稍后当我访问此页面时,它会出错:
'bundle.js:18未捕获错误:找不到模块"fs"'
我怎样才能使用fs模块做出反应?
以下是代码段:
webpack.config.js
"use strict";
const debug = process.env.NODE_ENV !== "production";
const webpack = require('webpack');
const path = require('path');
module.exports = {
devtool: debug ? 'inline-sourcemap' : null,
entry: path.join(__dirname, 'src', 'app-client.js'),
devServer: {
inline: true,
port: 3333,
contentBase: "src/static/",
historyApiFallback: true
},
output: {
path: path.join(__dirname, 'src', 'static', 'js'),
publicPath: "/js/",
filename: 'bundle.js'
},
module: {
loaders: [{
test: path.join(__dirname, 'src'),
loader: ['babel-loader'],
query: {
//cacheDirectory: …Run Code Online (Sandbox Code Playgroud)我试图通过spring实现国际化.以下是我所做的配置
`<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames" value="messages">
</property>
</bean>
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />`
Run Code Online (Sandbox Code Playgroud)
现在我有三个属性文件 - message_en.properties,message_fr.properties,message_sp.properties.并使用JSTL标记在我的jsp中使用它.我的问题是如何传递区域设置值以便它可以选择正确的属性文件?一种方法是传入请求URL,但我的应用程序太大,无法在每个URL中包含此请求参数.有没有其他方法可以设置区域设置值?我有一个存储在DB中的语言环境值,我必须从中获取和设置.如何用最好的方法实现这一目标?
能够使用下面的方式更改区域设置
RequestContextUtils.getLocaleResolver(request).setLocale(request, response, Locale.FRANCE);
但是这需要编写一个过滤器来执行每个请求并在DB中触发查询以获取值.有没有更好的建议呢?
java ×2
reactjs ×2
executable ×1
if-statement ×1
javascript ×1
locale ×1
node.js ×1
python ×1
python-3.x ×1
spring ×1
spring-mvc ×1
webpack ×1