小编Tra*_*ace的帖子

.选择,.活动表,.活细胞等...

对于这个问题,我参考下面的帖子来澄清自己:
为什么我的条件格式偏移时由VBA添加?

在我看到的很多很多帖子中,OP被默默地允许使用.Activate,.Select,.Offset等......虽然它们是潜在错误的开门(最常见的是由最终用户引起).
有时甚至支持代码.

我的问题:是否存在一种有效的情况,您可以使用这些语句中的任何一种,而没有直接替代方案可以捕获这些stmts导致的典型错误?

我指的是动态解决方案,在我看来是开发Excel时必须的.就个人而言,在6年多的时间里,我不记得我需要的一个案例; 它似乎永远是最糟糕的选择之一.在我以前的公司中,这是一个永远不会使用它的静默规则,它只会使我的VBA生活(以及最终用户的生活)变得更好.

为什么我创建这个问题是因为我认为让新人进入VBA意识到他们在使用这些陈述时所冒的风险是值得的(当最终用户做出意想不到的事情时经验证明风险 - 最后他们没有任何意外对VBA的感情)并提出直接的替代方案(我不会说我总是在我之前做过这样的事情,但我觉得在我已经错误的怪物提供快速解决方案方面存在问题).

我相信,当默默地允许(在这种情况下它会自动增强)时,启动VBA开发人员将以错误的方式创建越来越多的工具(因此新手也会继承这种行为 - 自Google返回以来,他们也将从Stack Overflow中学习他们寻找的结果(!)).
如果开发人员不知道为什么他"可以"使用"选择",并且在哪种情况下这是一个潜在的错误,他应该永远不会使用它.就个人而言,我可能会使用即时窗口中的select stmt对动态范围定义(错误模式)进行快速检查,但不能在编写代码中进行快速检查.

结果使得VBA最终比现在更不受欢迎; 如果麻烦出现,语言将成为受害者(但它仍然是Excel和Access应用程序可用的"最佳"编程支持).我已经在一家大公司看到这种情况发生了太多次,而VBA总是"糟糕".

这只是我自己的诚实经历.
这不是对或错的问题; 我有兴趣听取你对这个问题的看法.

excel vba excel-vba

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

为什么Backbone Collection fetch不返回承诺

以下示例代码运行良好:

Auth_controller.prototype.isLogged = function(){ 
    //Check if the user is authenticated 
    var getAuthStatus = this.auth_model.fetch(); 
    return getAuthStatus; 
}; 

Auth_controller.prototype.redirect = function(fragment, args, next){ 

    var getAuthStatus = this.isLogged(); 
    var self = this; 

    $.when(getAuthStatus).then(function(response){ 
        //Do something with the response 
    }
}); 
Run Code Online (Sandbox Code Playgroud)

这似乎不适用于Collection.
当我控制台登录集合时,我得到一个空集合.

我知道我可以在方法中使用成功回调函数(已经测试过),但我不想这样做,因为我希望函数返回一个我可以从其他函数调用的promise.
编辑 - >不,抱歉它在成功回调中也不起作用.

有关解决方法的任何建议吗?

编辑;

此图显示了从模型和集合获取方法返回的内容.
除非我做错了很明显,否则我不明白为什么会这样.
当控制台在成功回调中记录返回的响应时,我看到屏幕截图中显示的空对象已填充.

在此输入图像描述

EDIT2:

这就是我的收藏品:

define([
  /*--- libraries ---*/
  'jquery',     
  'underscore', 
  'backbone', 

  /*--- model ---*/
  'models/users/role_model'

], function($, _, Backbone, 
                Role_model){

    var Role_collection = Backbone.Collection.extend({ 
        url: '/ingeb/api_v1/users/roles', 
        model: Role_model 
    }); 

    return Role_collection; 

}); 
Run Code Online (Sandbox Code Playgroud)

javascript jquery promise backbone.js backbone.js-collections

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

如何处理webclient抛出的异常?

我试图弄清楚如何从 webclient 记录异常,无论从被调用的 api 返回的错误状态代码是什么。

我已经看到了以下实现:

.onStatus(status -> status.value() != HttpStatus.OK.value(),
            rs -> rs.bodyToMono(String.class).map(body -> new IOException(String.format(
                "Response HTTP code is different from 200: %s, body: '%s'", rs.statusCode(), body))))
Run Code Online (Sandbox Code Playgroud)

我见过的另一个例子使用过滤器。我想这个过滤器也可以用来记录错误,除了这个例子中的请求:

public MyClient(WebClient.Builder webClientBuilder) {
    webClient = webClientBuilder // you can also just use WebClient.builder()
            .baseUrl("https://httpbin.org")
            .filter(logRequest()) // here is the magic
            .build();
}
Run Code Online (Sandbox Code Playgroud)

但是我们是否认真地认为这件事没有专门的异常处理程序?

spring-boot spring-webflux

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

入口多路径与多个入口

我有以下很好的Ingress定义(我使用docker-for-mac):

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: zwoop-ing
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: localhost
    http:
      paths:
      - path: /
        backend:
          serviceName: posts-api-svc
          servicePort: 8083
Run Code Online (Sandbox Code Playgroud)

我感到困惑的是如何处理要公开的多个api微服务。

我想到的选择:

  • 多个入口
  • 具有不同路径的单一入口
  • 具有不同子域的单一入口(在云上时)

我假设多个入口将花费更多(?)。
由于某些原因,我在使用子路径段(ingress-nginx)时遇到问题。

- path: /api在入口资源中定义:时,我在GET请求中收到404。
目前尚不清楚如何定义子路径(这里我使用/ api,但这将是posts-api,users-api等)。

对于单个posts-api,我目前具有以下设置:

apiVersion: v1
kind: Service
metadata:
  name: posts-api-svc
  # namespace: nginx-ingress
  labels:
    app: posts-api
    #rel: beta
    #env: dev
spec:
  type: ClusterIP
  selector:
    app: posts-api
    # rel: beta
    # env: dev
  ports:
    - protocol: TCP
      port: 8083
Run Code Online (Sandbox Code Playgroud)

使用部署:

apiVersion: apps/v1
kind: Deployment …
Run Code Online (Sandbox Code Playgroud)

kubernetes

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

带有热重载的 Webpack 捆绑 Node Express = 地狱

我不想承认这一点,但我花了三个漫长的夜晚试图去做——我认为这是一件很简单的事情。我终于到了对它感到厌烦的阶段,坦率地说相当沮丧,因为“它根本行不通”。

这是我试图实现的目标:

  1. 用 Webpack 捆绑我的 Express 服务器(虽然我当前的代码只是在浏览器中渲染一个字符串,但它应该编译用 Babel 编译的服务器渲染的 React 组件)
  2. 将包保存在内存中(如果没有其他方法,则保存在磁盘上)
  3. 运行 webpack / dev / hot 中间件来为我的 Node Express 应用程序提供服务,这种方式对服务器呈现的页面(将是 React 组件)的更改将在浏览器中自动更新。

我尝试了许多组合、已弃用的教程、不再维护的 npm 包和下载的示例,但它们不起作用。

这是我目前的设置:

webpack.server.config.js:

const path = require('path');
const webpack = require('webpack');
const nodeExternals = require('webpack-node-externals');

module.exports = {
    name: 'server',
    mode: 'development',
    target: 'node',
    externals: nodeExternals(),
    entry: [ './src/server/index' ],
    output: {
        path: path.resolve(__dirname, 'dist'),
        // path: "/",
        filename: '[name].js',
        publicPath: '/assets/',
        libraryTarget: 'commonjs2'
    },
    plugins: [
        new webpack.HotModuleReplacementPlugin()
    ],
    module: {
        rules: [ …
Run Code Online (Sandbox Code Playgroud)

javascript node.js reactjs webpack

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

Electron 在生产模式下运行

我正在使用 npm 包https://github.com/sindresorhus/electron-is-dev

由于某种原因,isDev总是返回 true。

我的 npm 脚本如下所示:

"start:prod": "cross-env NODE_ENV=production && electron dist/main.js"
Run Code Online (Sandbox Code Playgroud)

main.js:

import isDev from 'electron-is-dev';

app.on('ready', () => {
  console.log('isDev', isDev);
  if (!isDev) {
    const {session} = require('electron');
    session.defaultSession.webRequest.onHeadersReceived((details, callback) => {
      callback({responseHeaders: `default-src http: ws:`})
    })
  }
  const win = createWindow();
  createMenu(win);
});
Run Code Online (Sandbox Code Playgroud)

控制台输出:

isDev true
Run Code Online (Sandbox Code Playgroud)

文档提到:

您可以通过将 ELECTRON_IS_DEV 环境变量设置为 1 来强制进入开发模式。

但我认为没有必要将变量设置为零。

输出process.env.ELECTRON_IS_DEV日志未定义。

我发现以下线程令人困惑:https ://github.com/electron/electron/issues/7714

当您在启动时设置 NODE_ENV 时,我没有看到使用额外的环境变量...除非有令人信服的理由不这样做,否则我将按照process.env.NODE_ENV我习惯的方式进行检查。

javascript electron

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

server.servlet.context-path 不起作用(wtf)

我的应用程序属性:

server.port=8080
server.servlet.context-path=/api
Run Code Online (Sandbox Code Playgroud)

控制器:

@RestController
@RequestMapping("/posts")
public class PostController {

    @GetMapping({ "/v1.0" })
    public ResponseEntity<List<Post>> getPosts(@RequestParam Optional<String> maxId) {
        List<Post> posts = Arrays.asList(
                new Post(new ObjectId().toString(), "Test status 1", LocalDateTime.now()),
                new Post(new ObjectId().toString(), "Test status 2", LocalDateTime.now()),
                new Post(new ObjectId().toString(), "Test status 3", LocalDateTime.now()),
                new Post(new ObjectId().toString(), "Test status 4", LocalDateTime.now()),
                new Post(new ObjectId().toString(), "Test status 5", LocalDateTime.now()),
                new Post(new ObjectId().toString(), "Test status 6", LocalDateTime.now()),
                new Post(new ObjectId().toString(), "Test status 7", LocalDateTime.now()),
                new Post(new ObjectId().toString(), "Test status 8", LocalDateTime.now()),
                new …
Run Code Online (Sandbox Code Playgroud)

java spring-boot spring-webflux

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

Firebase:无法验证 Firebase ID 令牌的签名

当我尝试在 Spring Boot 后端应用程序中验证 Firebase jwt 令牌时,出现以下错误:

无法验证 Firebase ID 令牌的签名。有关如何检索 ID 令牌的详细信息,请参阅 https://firebase.google.com/docs/auth/admin/verify-id-tokens 。

在客户端(Flutter)中,我按如下方式记录 jwt:

  GoogleSignInAccount googleSignInAccount = await _googleSignIn.signIn();
  GoogleSignInAuthentication googleSignInAuthentication = await googleSignInAccount.authentication;

  AuthCredential credential = GoogleAuthProvider.credential(
    accessToken: googleSignInAuthentication.accessToken,
    idToken: googleSignInAuthentication.idToken,
  );

  UserCredential authResult = await _auth.signInWithCredential(credential);
  _user = authResult.user;

  logger.i(await _user.getIdToken()); // Print jwt
Run Code Online (Sandbox Code Playgroud)

我通过授权标头将记录到后端的 jwt 作为不记名令牌发送。

使用 Spring security(没关系),我只需执行以下检查:

FirebaseToken decoded = FirebaseAuth.getInstance().verifyIdToken(token);
Run Code Online (Sandbox Code Playgroud)

我的 firebase 应用程序初始化配置非常标准(设置了指向 config.json 的 env 变量):

@Primary
@Bean
public void firebaseInit() throws IOException {
    FirebaseOptions options = FirebaseOptions.builder()
            .setCredentials(GoogleCredentials.getApplicationDefault())
            .build(); …
Run Code Online (Sandbox Code Playgroud)

java firebase spring-boot firebase-authentication flutter

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

ES6构造函数继承

我正在研究ES6,因为它在编写reactJS应用程序时似乎得到了提升.我对构造函数的工作方式感到有些惊讶:

class Human{ 
    constructor(name){ 
        this.name = name;
    }
    toString(){ 
        return "Name = " + this.name; 
    } 
}

class Person extends Human{} 

var person = new Person("kim"); 
Run Code Online (Sandbox Code Playgroud)

使用基于类的系统在JS中编写前端应用程序时,以下其中一项可能会使我的应用程序变得脆弱:

  • 参数化的构造函数是隐式继承的(总体来说这是一个好主意,它将保持这样的机会是什么?);
  • 在同一个类中重载构造函数的残障;
  • 基于参数类型的过载能力;

可选问题:
遇到的第二个问题是,如今将ES6用于大型生产应用程序的决策有多聪明,以及现在只使用ES6进行实验是否有用.我不确定是否错误地认为JS正在倾向于像Java一样完全成熟的基于类的系统,并且事情可能会比我的代码库能够消化更快(渐进).

javascript ecmascript-6

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

打字稿等于

如何在 Typescript 中实现 equals?
我尝试了几种方法,都没有效果。

选项1:

abstract class GTreeObject<T>{ 
    abstract equals(obj: T): boolean; 
} 

class GNode extends GTreeObject<GNode>{ 
    public equals(obj: GNode){ 
        //Implement 
    } 
} 
Run Code Online (Sandbox Code Playgroud)

结果:通用类型“GNode”需要 1 个类型参数。

选项 2 将涉及在运行时进行转换,但如何进行转换?:

abstract class GTreeObject{ 
    abstract equals(obj: Object): boolean; 
} 

class GNode extends GTreeObject{ 
    //How to cast Object to GNode?? 
    public equals(obj: Object){ 
        //Implement 
    } 
} 
Run Code Online (Sandbox Code Playgroud)

如何可靠解决?

javascript typescript

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