小编P.M*_*P.M的帖子

使用Git与Intellij Idea的最佳实践

简而言之:使用Intellij Idea(9)和Git的最佳实践是什么?

上下文

我们最近升级到Intellij创意版本9,并开始使用Git在现有项目上使用新功能.

我们主要使用git命令行来更好地学习该工具.但是我们认为我们会选择蜂巢头脑来找出git最佳实践的想法.

Idea UI与CVS和Git类似,但底层实现略有不同.

示例问题

例如: - 使用CVS,当我们有多个产品版本时,我们每个人都会拥有1-0,2-0,3-0等分支的本地副本,每个分支都有自己的Intellij文件(即.ipr,.iws等)."git方式"似乎有一个项目并使用'git branch'来切换分支.这很好,但是当你改变分支时,它会为想法创造巨大的开销(因为它必须重新加载每个已更改的文件,包括签入的jar).那么:你们每个"主要版本"还有一个单独的项目(.git),或者有一个项目并使用"git branch"吗?

- 使用Autostash是个好主意吗?

- 您是否自动将每个修改添加到您的git提交?或者稍后使用"git add"?

你有什么变化吗?

- 合并的最佳方式?

- 任何其他提示/提示/为你工作的东西等.

最后评论

我们仍然"在cvs中思考",所以这部分习惯于git; 部分已经习惯了Idea的Ui for git.

这些是相当基本的问题,因为我们仍然主要使用命令行.另外我听说10有更好/更强/更快的git集成工具

谢谢

git intellij-idea

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

将CamelCase转换为php __autoload()中的under_score_case

PHP手册建议自动加载类

function __autoload($class_name){
 require_once("some_dir/".$class_name.".php");
}
Run Code Online (Sandbox Code Playgroud)

并且这种方法可以很好地加载FooClass保存在文件中的my_dir/FooClass.php

class FooClass{
  //some implementation
}
Run Code Online (Sandbox Code Playgroud)

如何才能使用保存在文件中的_autoload()功能和访问权限?FooClassmy_dir/foo_class.php

php camelcasing autoload

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

跨环境管理配置文件

您(您的公司)如何管理您构建的应用程序/系统的配置文件?让我告诉你我们是如何做到的,以及问题是什么.

我在一家公司工作,我们与大约15名开发人员一起开发软件.我们构建了部署在托管主机提供商处的业务线网络应用程序.我们的主要应用程序之一包括一个网站和大约十个WCF服务.一些服务相互连接.

我不知道这是一个大系统,还是小系统,但我认为这需要我们太长时间才能在不同的环境(测试,验收和生产)中运行起来.

我们的Visual Studio项目中的每个环境都有配置文件.所以a web.test.config,a web.acc.config,a web.prod.config和a web.configfor development.它们都具有相同的键,但值可能不同,具体取决于它们的环境.

如果我快速计算webapp的web应用程序中的appsettings,我会计算32个.我计算5个端点.我们有四个环境(dev,test,acc和prod),这意味着一个Web应用程序共有128个appsettings和20个端点.我们很容易犯错误,特别是在最后期限结束时.

我们都是人类,所以这样的事情可能发生在任何人身上:

  • 我们在其中一个配置文件中进行了更改,但在构建和部署之前忘记检入.
  • 或者我们在WebServer上进行了更改,忘记在其他四个web.configs中进行相应更新.
  • 或者我们只更改四个配置文件中的三个.等等.

然后我们在托管主机提供商处拥有基础设施.默认情况下,每个端口都关闭.因此,如果其中一个WCF服务需要与位于不同服务器上的其他一个WCF服务进行通信,则必须打开防火墙保护的端口.

我们在Test中执行此操作,但在Acceptance中我们必须再次执行此操作,并且我们忘记了必须打开哪些端口,因此它更像是试错:哦我的服务无法连接到数据库,可能是港口关闭.生产中也可能出现同样的问题.

根据SLA,我们的托管主机提供商可能需要几天时间才能在防火墙中打开端口.所以,这很快就会成为一个漫长的过程.最后,我们需要两个月的时间才能完成测试,验收和生产.

所以,我的问题是:你如何管理配置和基础设施及其周围的过程?

deployment environment configuration configuration-management

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

如何在 Typescript 中将类型转换为接口

TypeScript 有没有办法将 a 转换type为 an interface

我已经在 StackOverflow 上阅读了这个 QA,并且认为它与我在这个问题中给出的描述不太相符。

一个场景的快速示例,其中 aProduct被定义为type来自第三方 TypeScript 库。

// ProductFragmentOne is used to highlight the possibility of composition(unions, etc)
type Product = ProductFragmentOne & { sku: string };
Run Code Online (Sandbox Code Playgroud)

要将其集成Product到我们自己的系统中,可以通过扩展(联合)a来实现,type如下例所示:

export type ProductSchema = Product & { 
  name: string;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  • 有没有办法让 ourProductSchema被定义为 an interface?这可能吗?
# Example of how the code may look
export interface ProductSchema{ 
  name: string;
  //Do …
Run Code Online (Sandbox Code Playgroud)

types interface typescript

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

Helm charts vs ansible-playbook vs k8s operator 在系统安装中

我有一个大型且相当复杂的系统可以安装到 k8s 集群中。

60 个微服务和 10 个舵图安装到 5 个命名空间。

目前,我们运行 5 个 helm install/upgrade 命令,命令之间有 30 秒的暂停。然而,由于我们拉取 docker 镜像并启动应用程序,这种策略会给节点带来严重的负载。我们有很长且不明确的执行时间(timeline),这往往会导致 consul、Elasticsearch 和依赖于上述组件的应用程序等组件超时。

我想听听有关如何扭转这种局面的意见。首先,这是我们到目前为止的方法:

  1. 编写通过 helm charts 控制安装的脚本。
  2. 编写 ansible-playbook 来运行 Helm 图表并控制组件的安装状态。
  3. 编写 ansible-playbook 安装组件(使用 Jinja2 模板或 Golang 模板)
  4. 编写安装组件和控制系统状态的k8s operator。

installation ansible kubernetes kubernetes-helm

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

如何在 Mac 上安装 NVM

我尝试使用以下命令在 Mac 上安装 NVM:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
Run Code Online (Sandbox Code Playgroud)

但是,我收到一条错误消息:“语法错误接近意外`(”。下面提供了有关错误日志的更多详细信息。我做错了什么?

VFZ:repo2022 john$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  4934  100  4934    0     0    686      0  0:00:07  0:00:07 --:--:--   686
bash: line 1: syntax error near unexpected token `('
bash: line 1: `<!-- Copyright (C) 2016 Intel Corporation. All rights reserved. -->'
VFZ:repo2022 john$ 
Run Code Online (Sandbox Code Playgroud)

系统-MAC

macos node.js nvm

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

MomentJS startOf('day') 似乎是上午 12 点(24 小时制是 12 点)?

我有一个日期存储在 YYYY-MM-DD 中。此日期用于创建名为 的时刻then。我想计算这个日期和now(时刻)之间的天数。

在计算天数时,我使用:now.startOf('day').from(then.startOf('day')). 例如,当使用两个相隔 3 天的日期进行测试时,到凌晨 12 点将是 3 天(24 小时格式为 12)。

你们知道为什么吗?

node.js momentjs

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

ruby访问静态变量

class A
  @@ololo = 1
end

A::ololo
A.new.ololo
NoMethodError: undefined method `ololo'
Run Code Online (Sandbox Code Playgroud)

好.我需要一个attr_reader

class B
  @@ololo = 1
  attr_reader :ololo
end

A::ololo
NoMethodError: undefined method `ololo'
A.new.ololo
=> nil
Run Code Online (Sandbox Code Playgroud)

跆拳道?红宝石访问者有任何限制吗?

class C
  @@ololo = 1
  def self.ololo
    @@ololo
  end
  def ololo
    @@ololo
  end
end

C::ololo
=> 1
C.new.ololo
=> 1
Run Code Online (Sandbox Code Playgroud)

红宝石男人通常说"是啊!非常好!".这个很好吗? 谁能提供更短的代码?

ruby syntax

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