• 博客(46)
  • 收藏
  • 关注

原创 隆重推出 Incredibuild 10

变更可能来的很快,也可能来的很慢。但有时候,它真的值得我们等待。您并非每天都能目睹一个很棒的平台进一步发展成为一个不可思议(Incredible)的平台。今天,我们将正式发布最新版本——Incredibuild 10!经过多年的努力和创新,我们终于迎来了这个引人瞩目的里程碑。非常好奇最新的 Incredibuild 平台究竟能为用户带来什么。那么,话不多说,让我们一起深入了解 Incredibuild 10,看看有什么新功能!

2022-11-30 15:59:10 165

原创 微服务和 C++ 如何有效结合?

传统上,企业应用程序由三个主要部分组成,其中包括数据库、用户界面和服务器端程序。服务器端包含整个程序的业务逻辑,一般用于提供大范围的功能。这种体系结构比微服务更固定。尽管传统的体系结构有其优点,但对这两种体系结构的比较,超出了本文的内容范围。因此,我们将聚焦 C++ 的微服务开发,以及它在这一领域与一体化程序的区别。这篇文章中介绍了一些微服务的实际用例。

2022-09-30 10:23:46 366

原创 Unreal Engine(虚幻引擎)渲染 – 正确使用方法

我们已经讨论过 Unreal Engine(虚幻引擎)中可用的很多神奇工具,包括最近抢先体验的 Unreal Engine 5。多亏了 Epic,世界各地的开发人员和团队都可以轻松进行游戏开发。Epic 对电影和游戏界的最大贡献可能就是 Unreal Engine 渲染。与游戏开发的其他方面一样,渲染入门容易,但要熟练掌握则需要耗费数年时间。希望此文能够帮助你走上渲染之路,为你介绍一些我多年来使用 Unreal Engine 所学到的技巧和诀窍,然后再讲一讲渲染领域的重大变革者。

2022-09-30 10:07:05 1282

原创 Vim C++ – 大有可为!(C++ Vim 使用技巧)

Vim 是一种成熟且可以高效编辑代码的知名文本编辑器。它常被称为“程序员的编辑器”,但实际上可用于各种文本编辑。无论是编辑脚本、配置文件、电子邮件,还是 C++ 文件,都可以高度自定义,以极其简单的方式进行配置。本文里,我们要讲的是 Vim C++。

2022-09-30 09:56:52 444

原创 DevOps 如何解决技术债务问题

我们来谈一谈一个显而易见却没人愿意讨论的问题(不是 Apache Hadoop)——技术债务。在开发产品过程中,实际上从第一行代码开始,团队就已经开始累积技术债务,只不过有些团队会比其他团队积累得更快。技术债务的问题十分普遍,以至于人们开设了一个专门讨论该话题的国际会议——techdebtconf.org

2022-09-29 17:14:06 750

原创 蓝/绿部署 VS 金丝雀部署

在生产环境中更新和配置应用程序通常是件令人望而生畏的事。面对如此多的可用选项,应如何选择最适合你的用例的部署策略?部署策略用于升级或配置正在运行的应用程序。在下文中,我们将讨论三种部署策略:重建部署、蓝/绿部署、金丝雀部署。

2022-09-29 17:03:10 158

原创 内部开发平台 (IDP)、自助服务与 DevOps

DevOps 团队仍在寻找尽可能高效地开发和发布企业软件的方法。虽然软件开发生命周期改变了应用程序的生成方式,但是 DevOps 团队必须保持利用这种现代实践的势头。这将需要寻找使开发团队的工作效率达到最大化的创新方法,以便开发团队在使用企业提供的资源的情况下以最优方式开展工作。其中一种创新方法是通过内部开发平台实现自助服务。内部开发平台具有各种优势和挑战,更多企业都在采用这种技术。

2022-09-29 16:35:52 423

原创 云竞价实例实现开发成本控制的方法

意料之外的云费用是软件开发的众多隐性成本之一,特别是随着云使用方式的不断发展,这一现象愈发明显。而云账单带来的冲击——面对云供应商意料之外的巨额费用时,那种令人毛骨悚然的时刻——一直是令开发团队头痛不已的问题。大多数团队需要找到更佳方法,来保持云中开发进程的运行,同时控制云账单成本,以免团队为并不需要的容量付费。如果使用正确的话,云竞价实例将是改进云优化规划,并可确保用户使用仅在特定时刻需要的云容量的绝佳方式。来看看这些好处——然后我们将展示帮助客户免受云竞价实例最大缺陷影响的技巧。

2022-09-29 16:14:15 51

原创 探索在三大云中使用 Terraform 配置 Kubernetes

在充斥着大量组件和配置的环境中,配置和管理基础架构可能会让人十分头疼。尤其是当您还需要手动完成这些操作时,或者您需要部署许多类似的环境,而每个环境只需进行些许更改。幸运的是,基础架构即代码 (IaC) 可以帮助您解决这个难题。对于 Kubernetes (K8S) 来说尤其如此,因为其本身就是一个完整的生态系统。由于本文不仅面向初学者,也面向有经验的 DevOps 从业者,因此我们将从简短的背景介绍开始。如果您已了解 IaC、K8S 和 Terraform 的背景,那么请直接跳到技术部分阅读。

2022-09-29 16:02:45 250

原创 C++ 的未来——第 2 部分

C++ 正处于一个挑战时间点。在第一部分,我们讨论了 Sean Parent 在 Cpp North 2022 大会上提出的“C++ 的悲剧”。在第二部分,我们将讨论 C++ 的替代方案,这些方案是用来解决什么的,以及关于 C++ 未来替代方案的一些想法。

2022-09-29 15:43:33 216

原创 C++ 的未来——第 1 部分

在CPP North大会上宣布 Carbon编程语言以来的几周里,围绕C++的未来有一些讨论。当然,有一个问题值得商榷,即一门仍处于初级阶段的语言怎么会引起如此大的反响呢。还存在一个问题,即如何把它和类似Rust语言的竞争对手相比较。在谈到 C++ 的未来时,我们需要记住,预测是很困难的,尤其是对未来的预测(我们已经在另一篇讨论 C++ 发展的博客文章中引用过这句话)。让我们冒着风险,试着预测一些趋势。

2022-09-29 15:32:09 328

原创 高级 Jenkins 并行构建(与 Jenkins 分布式构建)

就灵活性而言,Jenkins 是一款非常出色的 CI 工具。每个简单的事情都可以用十种不同的方式来完成,包括并行化构建。本文将采用 Jenkins 中的并行阶段指令,并将其灵活性扩展至所需的地方。我们将通过在管道的定义中引入一些命令逻辑来实现这一点。...

2022-08-31 16:32:07 544

原创 CMake 与Ninja 组合的关键点

Ninja(忍者)一词让人联想到潜行和速度。在开发“另一个构建系统”时——正如 Ninja 的创造者 Evan Martin 在其手册中提到的那样——速度是最重要的。将构建系统命名为 Ninja 非常恰当,我将在这篇博文中向您展示它的功能,并强调它的独特之处。让我们开始吧。...

2022-08-31 16:11:29 222

原创 关于无 IDE 的 C++ 调试的速成课程——使用 GDB 授权终端!

程序往往存在错误,而 C++ 可能比大多数其他语言更容易出错。对崩溃、内存损坏、泄漏、悬空指针等问题进行故障排除是任何 C++ 程序员都必须具备的技能。应该使用 C++ 最佳实践来避免错误,但在这篇文章中,我们将假设即使是最优秀的程序员也会偶尔遇到错误。这使得调试 C++ 程序的能力变得至关重要,这就是这篇文章的全部内容。...

2022-08-31 15:49:38 35

原创 DevOps Security——最佳实践和技巧

本文中,我们想重点介绍一下 DevOps Security 的原则,以及一些用于帮助 DevSecOps 克服这些挑战的最佳实践。我们还将围着这个主题解决一些谬见。最后,我们将讨论 DevOps Security 实践的未来。

2022-08-31 14:56:20 103

原创 C++编译优化实战1-2:简析C++编译优化器以及Loop Unrolling功能演示

编译器优化是通过改进运行时性能或最小化代码大小来提高已编译代码效率的过程。在本视频中(转录文本见下文),Incredibuild 的开发推广工程师 Amir Kirsh 将重点讨论 C++ 编译器执行的一些特定的和有趣的优化。...

2022-08-31 14:29:36 158

原创 使用 Incredibuild 加速 Klocwork 静态代码分析

静态代码分析并非一种新工具,而是一种日趋普遍的方法,可以用该方法来确保代码质量以及构建更为优质的应用程序。但众所周知,这并不是最快的过程。随着代码库的不断扩大,这一现象尤为明显——仅 2022 年,代码库就增长了18%以上,而且许多代码库已经达到了数百万行。即便如此,静态代码分析总是还能更快些。这便是 Incredibuild 与 Klocwork 在 Windows 上完全集成的原因所在——用以确保您可以将静态代码分析完全嵌入到 DevOps 管道中,而不必放慢开发周期。...

2022-08-31 12:09:58 97

原创 按需实例、预留实例与竞价实例间的区别

如果想要了解按需、保留和竞价实例间的区别,可能是因为发生了下列两件事中的一件。要么是正在启动一个新项目,并试图找出确保团队有足够云容量以完成工作的方法;要么是刚被令人瞠目结舌的云账单弄得措手不及,正在疯狂寻找控制成本的方法。无论是什么导致了对云实例的探究,此探究方向都没有错。幸运的是,实例的类型,以及竞价、按需、预留实例间的利弊,都很容易理解。关键是找到一种实例类型,为你和你的项目带来成本、稳定性与灵活性间的完美平衡。...

2022-08-30 18:15:17 247

原创 集成 GitHub Actions 与 Incredibuild

集成 Incredibuild 系统与 GitHub Actions 并不复杂。您可以通过不同的部署选项来实现集成,所有选项最终都将整合到一个简单的触发器中,通过 Incredibuild 无缝执行构建分发。通过在 CI 管道中添加 IB 构建分发并使用 GitHub Actions 支持的触发器,您将获得流畅的构建分发和加速体验。......

2022-08-30 17:52:32 73

原创 使用GitHub Actions通过CI提高代码质量

不论是开发、暂存还是生产环境,无时无刻都有代码不间断地被推送到 Git 上。 我们总是想要确保我们投入大量时间设计和编写的代码是具备可读性与安全性的,并且没有漏洞,能够平稳地运行。在本文中,我们所讨论的主题将围绕代码质量展开,并探讨编写高质量代码的含义,需要给予关注的原因,以及如何使用 CI 工具来对其进行改进。...

2022-08-30 15:49:29 85

原创 了解嵌入式软件开发周期

嵌入式软件与标准软件有些细微的相似之处,但其本身就存在的一些令人感到棘手的小问题以及局限性,给开发人员带来了非同寻常的挑战。因此,我们现在将深入研究嵌入式软件开发周期,以建立一个框架,来帮助开发团队构建强大、安全,且能够让最终用户真正信赖的嵌入式软件。...

2022-08-30 15:40:58 1504

原创 企业级 DevOps 究竟是什么?

许多第一次接触 DevOps 理念体系的团队在选择工具时可能没有从规模角度进行考虑。企业级 DevOps 要求对各组成部分的运行方式做出更多思考。此外,团队沟通方式对开发工作效率也有很大影响。如今,工程师们意识到,实现与安全、文化和云基础设施有关的标准需要额外具备自动化能力。...

2022-07-29 16:06:01 56

原创 C++ 重构技巧

多年前,当 C++ 还不够成熟的时候,全球代码库很小,我们可以轻松地阅读、审核代码,然后将其用于构建项目,产生无限可能。或许这种情况可能从未出现,但我们可以想象一下,如果程序虽然简短简单,但很完整,不需要扩展功能。这种情况下,可能没必要进行代码重构。然而,如果需要检查或更新代码库,无论是扩展代码库,还是基于不同语言改进代码库,亦或是仅为了检查效率而审核代码库,重构代码都很有必要。...

2022-07-29 15:52:41 353

原创 关于 C++ 依赖管理

有经验的程序员,不论所用何种语言,对代码依赖都不会陌生。代码无论是依赖于内部依赖关系,还是依赖于外部库或框架,通常都不会孤立运行。代码的重复使用,亦即使用现有代码的做法,是提升开发效率的重要工具。不过,对代码的重复使用会导致产生一种依赖项。遗憾的是,依赖项都有其消极一面。...

2022-07-29 15:03:28 717

原创 如何提高 C++ 代码质量

所谓高质量的代码,是指符合格式规范、易于阅读、简单易懂、经过适当测试、没有错误并且备有文档记录的代码。拥有高质量的代码将使你受益匪浅,为之付出努力,必将有所回报。要编写并维护好的代码,有许多适用的技巧和诀窍,还可运用多种工具来协助开展质量改进工作,如代码重构。...

2022-07-29 11:43:16 74

原创 关于无 IDE 的 C++ 调试的速成课程——使用 GDB 授权终端!

调试对于任何语言的任何程序员来说都是一项重要的技能。由于 C++ 相对复杂,它可能需要比大多数流行语言更好的调试技能。更重要的是,我们用 C++ 解决的实际问题往往更为复杂,这可能会带来需要分析和调试的意外结果。程序往往存在错误,而 C++ 可能比大多数其他语言更容易出错。对崩溃、内存损坏、泄漏、悬空指针等问题进行故障排除是任何 C++ 程序员都必须具备的技能。应该使用 C++ 最佳实践来避免错误,但在这篇文章中,我们将假设即使是最优秀的程序员也会偶尔遇到错误。这使得调试 C++ 程序的能力变得至关重要

2022-07-28 17:36:16 52

原创 衡量 DevOps 成功与否的重要度量指标

DevOps 理念已经掌握了软件交付流程的许多方面。因此,我们值得深入了解能够表明成功标志和需要改进方面的日常运营,而不是仅仅关注表明“正常状态”的日常报告。如今的 DevOps 度量指标侧重于在(或应在)公司的 DevOps 实现过程中收集的可衡量数据。收集这些度量指标的信息和工具包括部署数量等简单的进度指标,以及支持证明额外自动化的数据的组合视图等等。那些对衡量 DevOps 度量指标的履行情况感兴趣的人员希望透过“放大镜头”研究 DevOps。我们将更深入地了解帮助提供该数据的度量指标和工具。..

2022-07-28 14:37:53 216

原创 变更管理与 DevOps —— 二者同时进行吗?

很长一段时间以来,DevOps 都在改变软件构建和部署的游戏规则。添加基础设施即代码 (IaC)、容器化以及高度自动化的云和内部活动等创新功能之后,您可能会觉得我们有添加这些功能,DevOps 显然会继续看到在未来会有更多的增强活动和新的方向。在不影响任何人的情况下,变更管理 DevOps 迅速成为热门话题。...

2022-07-28 10:39:34 47

原创 关于C++ 编码安全实践的10项建议

安全性是一个极其重要和深刻的话题。当安全性受到损害时,会发生糟糕的事情。我们在软件开发生命周期的各个阶段都必须记住这一点。不同于一些其他非功能性要求,(通常)不能在之后才在系统中考虑到安全性。...

2022-07-27 17:10:18 98

原创 能否更上一层楼?探究 CMake 争论

C++ 开发人员已经开发得很棒了,但是我们还记得不久之前它还并没有那么不同。C++ 程序员社区中最大的问题之一就是缺乏标准化,这意味着要使用许多不同的工具和流程来实现相同的目标,但往往会产生不同的结果和令人头疼的问题,而且复杂程度也各不相同。制定标准意味着有一个明确的“做事方式”。但是,如果标准存在争议(至少可以这么说),那么标准化还是一件好事吗?...

2022-07-27 16:48:18 57

原创 UE5 最新动态虚幻引擎全新版本引爆互联网

尽管虚幻引擎 4 (UE4) 意义重大,但因其早在 2014 年就已问世,Epic Games 承诺将在一段时间内进行重大升级。因此可以肯定地说,开发人员一直在屏息等待虚幻引擎 5 (UE5) 发布。在这篇文章中,我们将介绍 UE5 最重要的新特性以及它们对开发人员的意义。...

2022-07-27 15:56:39 674

原创 在AWS spot实例通过 Github Runner使得CI更灵活

本文介绍如何在 AWS 竞价实例上设置 GitHub Actions 自托管运行器。

2022-06-27 11:34:39 250

原创 设置云 spot实例,利用 Incredibuild 构建 C++ 项目

在这篇文章中,我们将了解 Incredibuild for Cloud 的使用方法,运用spot实例,用最小的成本取得灵活性与低廉的价格。这有助于我们提高成本效益与灵活性。我们动态使用构建所需的云实例数,而不是管理 EC2 机器,如此便无需手动启动和终止机器(或通过管理脚本实现)。...

2022-06-27 10:10:38 107

原创 在 AWS 上从零开始设置 Incredibuild 构建系统

Incredibuild 构建系统包括多个组件,它们相互作用以加速构建。在这篇文章中,我将描述如何在 AWS 上设置该系统。对于想要了解更多有关 AWS和Incredibuild 系统的人而言,这会非常有用。这是我们关注使用按需 AWS EC2 机器的两篇文章的第一部分。在第二部分中,我们将学习如何使用spot实例来实现自动化资源管理和更好的成本效益。...

2022-06-24 15:28:56 598

原创 游戏开发过程中,DevOps 如何改变游戏公司的工作方式

如果你是游戏开发者,那么在过去几年里,你可能会觉得有人给了你一把双刃剑。整个行业不断蓬勃发展,但玩家的预期值也越来越高。玩家们总是希望游戏体验能够更快、更真实、更具创造性。此外,他们还希望能够定期推出新的游戏和更新。在这种文化背景下建立的行业内,总是不断处理各种难题,就是游戏开发人员的灾难源头,至少是他们产生职业倦怠的主要原因。...

2022-06-24 11:39:04 497

原创 2021年开发人员的绊脚石:构建时间长

在 Incredibuild,我们正致力于缩短开发人员的构建时间,使大型开发项目的工作更加轻松。因此,我们想知道,对于开发人员来说,构建时间长真的是一个大问题吗?

2022-06-23 11:54:04 25

原创 C++ 协程——实战演示

C++20 添加了一项万众期待的新特性——协程。(在另一篇文章中,我们会谈到 C++20 发布的其他特性;而在先前的文章中,我们已讨论过相关话题:C++ 代码现代化与 C++ 演变。)本篇文章,我们将对 C++ 协程进行一些实战演示。先从一段代码开始。可在编辑器浏览器 (Compiler Explorer) 获取上述代码,链接:https://coro.godbolt.org/z/zK3E9TEce解释一下上述代码。协程是一个特殊函数,可暂停执行,随后可在暂停执行的确切位置继续执行。...

2022-06-13 14:57:54 453

原创 资深开发者需精通的10个C++高级主题

C++ 正在快速向前发展,所以想要紧跟其脚步并不是一件容易的事。我们在之前的文章中讨论过这个问题,讨论了 C++ 的演变以及如何实现遗留 C++ 代码现代化。在这篇文章中,我们将重点介绍经验丰富的 C++ 开发人员可以跟上的高级主题列表。该列表并不详尽,而且有点主观(我们可能已经放弃了一些您认为实际上非常重要的项目,或者一些您认为对您来说不那么重要的项目)。尽管我们的目标是列出高级 C++ 主题,对一些人来说可能是高级主题,但对其他人来说可能只是基础主题。此外,新的 C++ 特性也有不同级别的复杂性。...

2022-06-13 14:22:49 127

原创 Incredibuild 宣布支持 Yocto

如果你正尝试为嵌入式系统构建定制化 Linux 发行版,那么很可能你使用的是 Yocto。Yocto 是最受欢迎的框架之一,选择它的理由也很充分。它的社区非常活跃,能够提供持续支持和维护;许多技术大拿都在使Yocto;Yocto 构建可以实现定制化,同时也非常灵活,且适应性很强。不过,它也有一些缺点,其中一个就是编译和完成构建所需要耗费的时间可能相当的长。构建完成后,你可能没法实现多次迭代,也不能快速进行测试,项目开发时间也会延长。不过,现在你可以加快速度啦!我们自豪地正式宣布Incredibuild来了!

2022-06-13 14:15:58 36

原创 C++ 代码评审最终指南——第 2 部分

在第 1 部分中,我们对代码评审做了一个广泛讨论。这一部分将重点讨论 C++,提供一个代码评审清单和一些最佳实践。您可以按任何顺序阅读,但是我们建议您先返回去阅读一下我们之前的帖子。代码评审清单从来都不是全面的——因为要检查的问题、项目和潜在事情的数量几乎是无穷无尽的。因此,制定一份涵盖所有潜在可能性的清单是不可能的,也更难执行。相反,我们将重点关注在 C++ 代码评审期间应该涵盖的更为广泛的方面。......

2022-06-13 13:49:16 107

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除