为什么NASA和SpaceX都在重构C++代码?3个你必须知道的可靠性原则

第一章:2025 全球 C++ 及系统软件技术大会:航空航天软件 C++ 可靠性设计

在2025全球C++及系统软件技术大会上,航空航天领域的C++可靠性设计成为核心议题。随着飞行器控制系统、卫星导航与深空探测任务对软件稳定性的要求日益严苛,C++作为高性能系统开发的首选语言,其在容错性、实时性和内存安全方面的实践备受关注。

静态分析与编译期检查

为确保代码在极端环境下的行为可预测,开发者广泛采用静态分析工具与C++20/23的新特性。例如,使用`constexpr`和`consteval`将关键逻辑移至编译期执行,减少运行时错误:
// 编译期验证轨道参数合法性
constexpr bool validate_orbit_params(double apogee, double perigee) {
    return apogee >= perigee && apogee > 0 && perigee > 0;
}

static_assert(validate_orbit_params(700000, 680000), "Invalid orbit parameters");
该机制可在编译阶段捕获非法输入,避免飞行中因参数错误导致的失控。

内存安全与资源管理

航空航天软件严禁动态内存泄漏与悬垂指针。智能指针与自定义内存池结合RAII原则,成为标准实践:
  • 使用std::unique_ptr管理单所有权资源
  • 通过std::array替代原始数组,提升边界安全性
  • 禁用new和delete,强制使用预分配内存池
技术手段应用场景可靠性增益
静态断言参数校验提前暴露设计缺陷
无异常模式编译嵌入式飞控减少栈展开不确定性
形式化验证接口星载通信协议保证状态机一致性
graph TD A[需求建模] --> B[C++概念约束] B --> C[编译期断言] C --> D[静态分析扫描] D --> E[硬件在环测试] E --> F[部署至飞行单元]

第二章:现代C++在航天系统中的重构动因与技术演进

2.1 从C到C++17/20:NASA飞行控制系统的语言迁移实践

NASA在升级其飞行控制系统时,逐步将核心模块从C语言迁移至现代C++(C++17/20),以提升代码安全性与可维护性。这一演进不仅增强了类型安全和内存管理能力,还利用了RAII、智能指针和constexpr等特性。
资源管理的现代化
通过引入std::unique_ptr替代原始指针,NASA有效减少了内存泄漏风险:
std::unique_ptr<FlightController> controller = 
    std::make_unique<FlightController>(config);
// 自动释放资源,无需显式调用delete
该机制确保在异常或函数退出时自动析构对象,极大提升了系统鲁棒性。
编译期计算优化实时性能
利用C++17的constexpr if和C++20的consteval,关键算法可在编译期求值:
consteval double computeTrajectoryFactor() {
    return physics_constants::speed_of_light / 1000.0;
}
此特性减少了运行时开销,满足航天器对确定性延迟的严苛要求。
特性C语言方案C++17/20改进
内存管理手动malloc/free智能指针自动管理
类型安全宏定义与void*模板与强类型枚举

2.2 SpaceX星链任务中C++并发模型的可靠性提升策略

在星链卫星的地面通信控制模块中,C++通过细粒度锁与无锁队列结合的方式提升并发可靠性。面对高频轨道数据处理需求,系统采用环形缓冲区实现生产者-消费者模式。
无锁队列设计

template<typename T, size_t Size>
class LockFreeQueue {
    std::array<T, Size> buffer_;
    std::atomic<size_t> head_ = 0;
    std::atomic<size_t> tail_ = 0;
public:
    bool push(const T& item) {
        size_t current_tail = tail_.load();
        if ((current_tail + 1) % Size == head_.load()) return false; // 队列满
        buffer_[current_tail] = item;
        tail_.store((current_tail + 1) % Size);
        return true;
    }
};
该结构利用std::atomic避免互斥锁开销,head_和tail_的模运算实现循环写入,适用于实时遥测数据流。
资源隔离策略
  • 关键线程绑定CPU核心,减少上下文切换
  • 使用std::thread::hardware_concurrency()动态分配线程池大小
  • 内存预分配防止运行时碎片化

2.3 零成本抽象原则在实时航天软件中的工程化应用

在航天器飞行控制软件中,零成本抽象确保高性能与高可靠性兼得。通过编译期计算与模板元编程,抽象不引入运行时开销。
编译期断言与类型安全
利用C++ constexpr机制实现编译期校验:

template<typename T>
constexpr void validate_sensor_range(T value) {
    static_assert(std::is_arithmetic_v<T>, "仅支持数值类型");
    if constexpr (sizeof(T) <= 4)
        assert(value >= 0 && value <= 4095); // 12位ADC范围
}
该函数在编译阶段验证输入合法性,生成无额外开销的机器码,避免运行时检查损耗。
资源调度对比
抽象方式执行延迟(μs)内存占用(KiB)
虚函数调用12.48.2
模板特化3.14.0
数据显示,基于模板的零成本抽象显著降低关键路径延迟。

2.4 静态类型安全如何减少飞行器嵌入式系统的运行时错误

在飞行器嵌入式系统中,运行时错误可能导致灾难性后果。静态类型语言(如Rust、Ada)在编译期即可捕获类型不匹配、空指针解引用等常见缺陷,从而显著降低运行时崩溃风险。
编译期类型检查示例

struct Attitude {
    roll: f32,
    pitch: f32,
    yaw: f32,
}

fn control_surface_adjust(att: Attitude) {
    // 编译器确保传入的是正确类型的结构体
    println!("Adjusting surfaces: {}° roll", att.roll);
}
上述Rust代码中,若误传整型或格式错误的数据结构,编译将直接失败,避免了飞行中因数据类型错乱导致的控制异常。
类型安全带来的优势
  • 消除类型混淆引发的传感器数据解析错误
  • 防止缓冲区溢出和非法内存访问
  • 提升模块间接口的契约可靠性

2.5 基于RAII与智能指针的资源泄漏防控机制实战

RAII原理与资源管理
RAII(Resource Acquisition Is Initialization)是C++中通过对象生命周期管理资源的核心机制。当对象构造时获取资源,析构时自动释放,确保异常安全和资源不泄漏。
智能指针实战应用
使用 std::unique_ptr 和 std::shared_ptr 可有效避免动态内存泄漏。以下为示例代码:

#include <memory>
#include <iostream>

void raii_example() {
    auto ptr = std::make_unique<int>(42);  // 自动管理内存
    std::cout << *ptr << std::endl;        // 使用资源
} // 离开作用域时,unique_ptr自动释放内存
上述代码中,std::make_unique 创建一个独占所有权的智能指针,无需手动调用 delete。即使函数中途抛出异常,栈展开时仍会调用其析构函数,保证资源释放。
  • unique_ptr:适用于独占资源管理,零运行时开销
  • shared_ptr:基于引用计数,适合多所有者场景
  • weak_ptr:配合 shared_ptr 防止循环引用

第三章:航空航天级C++代码的三大可靠性设计原则

3.1 原则一:确定性行为优先——避免未定义行为的编译期约束技术

在系统编程中,未定义行为(UB)是稳定性的主要威胁。通过编译期约束,可将潜在错误提前暴露。
编译期断言的应用
使用静态断言可在编译阶段验证类型大小或对齐要求:
_Static_assert(sizeof(int) == 4, "int must be 4 bytes");
_Static_assert(_Alignof(double) >= 8, "double alignment requirement not met");
上述代码确保关键类型的布局符合预期,若条件不成立,编译失败并输出提示信息,防止运行时因平台差异引发不可控行为。
常量表达式与类型安全
C++ 中 constexpr 函数强制在编译期求值,结合模板可实现类型安全的配置检查:
constexpr bool check_power_of_two(int n) {
    return n > 0 && (n & (n - 1)) == 0;
}
static_assert(check_power_of_two(1024), "Size must be power of two");
该机制限制非法参数组合,确保资源配置具备确定性,避免动态判断带来的分支复杂度和执行不确定性。

3.2 原则二:可验证性驱动——形式化验证与静态分析工具链集成

在现代可信系统构建中,可验证性是保障代码正确性的核心。通过将形式化验证方法与静态分析工具深度集成到开发流程中,可在编译前发现逻辑缺陷与安全漏洞。
静态分析工具链实践
以 Rust 为例,其内置的 `clippy` 与 `rustc` 类型系统结合形式化方法,有效阻止未定义行为:

#[deny(dead_code)]
fn compute_checksum(data: &[u8]) -> u32 {
    data.iter().fold(0u32, |acc, &b| acc.wrapping_add(b as u32))
}
该函数通过 `wrapping_add` 显式处理整数溢出,配合编译器警告策略,确保算术操作的可验证安全性。
形式化验证协同机制
  • 使用 K 框架或 Coq 对关键协议建模
  • 生成可执行规范并与实现自动比对
  • CI 流程中嵌入验证脚本,实现持续可验证集成

3.3 原则三:故障透明化——日志溯源、断言机制与容错恢复设计

在分布式系统中,故障的可观察性是稳定运行的核心保障。通过日志溯源,开发者能够追踪请求链路,快速定位异常节点。
结构化日志记录
统一日志格式有助于集中分析。例如使用JSON结构输出关键上下文:
{
  "timestamp": "2023-10-01T12:00:00Z",
  "level": "ERROR",
  "service": "user-service",
  "trace_id": "abc123",
  "message": "failed to update user profile",
  "error": "timeout"
}
该格式便于ELK栈解析,结合trace_id实现跨服务调用链追踪。
断言与自动恢复
通过断言机制提前暴露异常状态:
  • 在关键路径插入健康检查断言
  • 触发失败时进入熔断模式
  • 配合重试策略与回滚流程实现自愈
系统应设计为“失败可知、过程可溯、恢复可控”,提升整体鲁棒性。

第四章:高可靠C++系统的工程实践与案例剖析

4.1 NASA火星探测器固件重构中的模块化与接口隔离实践

在NASA火星探测器的固件系统升级中,模块化设计与接口隔离成为保障系统稳定性的核心技术手段。通过将导航、通信、电源管理等功能解耦为独立模块,显著提升了代码可维护性与测试覆盖率。
模块职责划分
每个子系统封装为独立组件,仅暴露最小化接口:
  • 导航模块:负责路径规划与姿态控制
  • 通信模块:处理地火间指令收发
  • 传感器聚合:统一数据采集时序
接口抽象示例
typedef struct {
    bool (*init)(void);
    int (*send)(const uint8_t* data, size_t len);
    int (*recv)(uint8_t* buffer, size_t maxlen);
} CommInterface; // 通信接口规范
该抽象屏蔽底层传输介质差异,支持在X-band与激光通信间无缝切换。
依赖注入机制
模块依赖接口运行时实现
遥测服务CommInterfaceRadioDriver
诊断系统CommInterfaceSimulatedLink

4.2 SpaceX猎鹰9号引擎控制软件的异常安全与测试覆盖策略

在火箭引擎控制这类高可靠性系统中,异常处理机制必须确保在极端条件下仍能维持系统完整性。SpaceX采用多层级故障检测与恢复架构,结合实时监控与预设安全状态切换逻辑。
异常安全设计原则
  • 所有关键函数执行前后进行状态校验
  • 使用RAII模式管理硬件资源,防止泄漏
  • 通过心跳信号监控引擎控制器运行状态
代码级防护示例
void EngineController::throttleControl(float target) noexcept {
    if (!isValidInput(target)) {
        setSafeShutdown(); // 进入安全停机模式
        return;
    }
    try {
        actuator->setPosition(clamp(target, MIN_THROTTLE, MAX_THROTTLE));
    } catch (...) {
        logger.log(FATAL, "Actuator failure");
        initiateAbortSequence();
    }
}
该函数使用noexcept保证异常不向外传播,输入值经范围校验后才驱动执行器,异常发生时触发中止流程。
测试覆盖策略
测试类型覆盖率目标实现方式
单元测试100%模拟传感器输入
集成测试95%硬件在环(HIL)

4.3 使用MISRA C++和自定义linter构建编码合规体系

在高可靠性系统开发中,编码规范的强制执行至关重要。MISRA C++ 提供了一套广泛认可的安全编码标准,涵盖类型安全、内存管理与异常处理等关键领域。
MISRA C++ 核心实践
通过静态分析工具(如PC-lint Plus或Cppcheck)集成MISRA C++规则集,可自动检测违反规范的代码模式。例如,禁止裸指针算术操作可有效防止越界访问。
自定义linter扩展检查能力
使用Python编写AST-based linter,补充MISRA未覆盖的团队特定规则:

import ast

class NoRawPointerVisitor(ast.NodeVisitor):
    def visit_Call(self, node):
        if isinstance(node.func, ast.Name) and node.func.id == "malloc":
            print(f"禁止使用malloc: {ast.unparse(node)} at line {node.lineno}")
        self.generic_visit(node)
该代码遍历抽象语法树,拦截所有 malloc 调用,实现自定义内存分配策略限制。结合CI流水线,确保每次提交均通过双重校验,形成闭环合规体系。

4.4 时间与空间确定性保障:内存池与无锁队列在飞控系统中的应用

在飞行控制系统中,实时性要求极高,任何内存分配延迟或线程竞争都可能导致控制失效。为保障时间与空间的确定性,内存池与无锁队列成为核心组件。
内存池预分配机制
内存池在系统启动时预先分配固定大小的内存块,避免运行时动态分配带来的不确定性。

typedef struct {
    void *blocks[1024];
    int free_list[1024];
    int count;
} MemoryPool;

void* pool_alloc(MemoryPool *pool) {
    if (pool->count == 0) return NULL;
    int idx = pool->free_list[--pool->count];
    return pool->blocks[idx];
}
该结构体维护空闲块索引列表,pool_alloc 时间复杂度为 O(1),确保分配延迟恒定。
无锁队列实现高效通信
多核间数据交互采用无锁队列,利用原子操作避免锁开销。
  • 使用 CAS(Compare-And-Swap)保证入队/出队原子性
  • 结合内存屏障防止指令重排
  • 适用于高频传感器数据传递

第五章:2025 全球 C++ 及系统软件技术大会:航空航天软件 C++ 可靠性设计

静态分析与形式化验证的集成实践
在高完整性航空航天系统中,C++ 代码必须通过多重验证机制。某飞行控制模块采用 Frama-C 与 Clang Static Analyzer 联合扫描,结合自定义规则检测未初始化变量和资源泄漏。以下为启用断言与所有权语义的典型模式:

#include <gsl/gsl>
// 使用 Guided Safety Library 确保指针生命周期
void update_attitude(const gsl::not_null<double*> sensor_data) {
    Expects(sensor_data != nullptr); // 前置条件
    // 处理逻辑
    Ensures(*sensor_data > -360.0); // 后置条件
}
容错架构中的异常安全策略
现代航电系统禁用动态异常,转而采用返回码与状态机模型。某任务调度器使用 variant 和 expected 模拟 Rust 风格错误处理:
  • 所有接口返回 std::expected<Result, ErrorCode>
  • 析构函数标记为 noexcept(true)
  • RAII 封装硬件访问资源,如内存映射 I/O
时间确定性保障机制
为满足 DO-178C A 级认证要求,关键线程禁止使用 new/delete。下表对比两种内存管理方案:
方案分配延迟(μs)碎片风险适用场景
固定池分配器0.8无飞控周期任务
区域式内存(Region-based)1.2低数据记录模块
多核环境下锁-free 设计案例
某星载计算机采用无锁队列传输遥测数据,基于 atomic_compare_exchange_weak 实现单生产者-单消费者模式,吞吐达 120K 消息/秒,最坏延迟低于 5μs。
【信息科学与工程学】【制造工程】第三十六篇 机械工程与自动化101 本系统通过多模型集成、知识增强、主动学习和持续优化等关键技术,实现了高效、高质量的自动化文本语料标注。系统采用模块化设计,支持灵活扩展,能够处理不同类型的文本数据,适应多样的标注需求。 阅读详情

相关推荐

2020-06-08SpaceX的代码开源了,来看看火箭技术的代码,有很大参考价值.zip

2020-06-08SpaceX的代码开源了,来看看火箭技术的代码,有很大参考价值.zip

C语言安全编码规范(军工级核控制标准曝光)

掌握核控制的C语言安全编码规范,有效防范军工级系统中的内存漏洞与未定义行为。适用于高可靠嵌入式系统开发,涵盖静态分析、边界检查与安全函数使用等核心方法,显著提升代码健壮性与安全性。值得收藏,点击了解详情。

InstrIsle的博客 742

SpringBoot+Vue+Mysql社区医院信息平台(源码+文档)

SpringBoot+Vue+Mysql学生宿舍信息管理系统 WEB端软件项目(源码+文档) 项目包含:①完整源码(后端+管理后台+用户前台);②数据库脚本文件;③万字论文文档;④开题报告;⑤答辩PPT;⑥项目运行视频教程。 项目架构: B/S 架构、MVC 分层设计 技术栈: Java、MySQL、SpringBoot、MyBatis-Plus、Token 权限校验、管理后台 Vue+ElementUI+ECharts、用户前台 Layui+jQuery、Maven 构建。 一、角色设计 学生用户: 注册登录、浏览宿舍信息、查询宿舍安排、在线报修、缴费查询、失物招领、桶装水预订、评论交流、收藏等。 商家用户: 注册登录、桶装水品牌与商品信息维护、预订订单查看与处理。 维修人员: 注册登录、查看待处理报修、接单维修、填写报修处理结果与进度反馈。 管理员: 学生管理、班级管理、宿舍信息管理、宿舍安排管理、报修处理管理、缴费信息管理、卫生检查与文明宿舍管理、失物招领管理、桶装水与商家管理、维修人员管理、公告资讯与轮播图管理等。 二、前台功能模块(学生端) 1. 首页展示:轮播图、宿舍公告、最新动态推荐、常用服务快速入口 2. 宿舍信息模块:宿舍列表、楼栋与房间条件筛选、宿舍详情查看、我的宿舍安排查询 3. 在线报修模块:在线提交宿舍设施报修申请、上传故障描述、查看报修进度与维修处理结果 4. 缴费模块:水电等缴费记录查询、缴费状态查看 5. 卫生检查与文明宿舍:宿舍卫生检查结果公示、文明宿舍展示 6. 失物招领模块:失物信息发布、招领信息发布、详情查看、评论互动 7. 桶装水预订:桶装水品牌与商品浏览、在线预订、我的预订记录查询 8. 假期留宿:假期留校申请提交、申请记录查询 9. 评论与收藏:信息评论、查看他人评论、评论回复互动、收藏感兴趣的内容 10. 个人中心...

SpaceX火箭发射成功,一文了解所用的软件技术栈

(给程序员的那些事加星标)原创:程序员的那些事(id:iProgrammer)有今天凌晨在看直播的童鞋么?北京时间5月31日凌晨3点22分,NASA 与 SpaceX 合作,猎鹰9号火箭...

程序员的那些事 3533

YOLOv8作物病害检测实战源码

这是一套基于YOLOv8n的农田病虫害目标检测系统,对叶片照片做目标检测,识别健康叶片、褐斑病、白粉病、锈病四类,并给出对应防治建议。全流程纯CPU可跑,配套交付完整Python源码、9章实战教程(md/html/pdf三种格式)、100张自造样本及YOLO标签、训练曲线与混淆矩阵截图、Tkinter界面和答辩PPT。 系统围绕五项功能展开:同一套推理逻辑覆盖图像、视频、摄像头三种来源;图形界面选文件即检测,画面叠彩色框标注病名与置信度,右侧面板同步给出症状与防治措施;检测记录自动写入CSV,统计页一键生成四类病害占比饼图;训练结束自动产出损失与精度曲线;内置防治建议文案库,检测命中即回填面板。 选型用YOLOv8n nano档,参数量约320万、权重约6.2MB,CPU单帧几十毫秒,小样本训练5到8分钟完成。数据由data_gen.py程序化绘制100张叶片图,固定随机种子,重跑分布一致,不依赖公开数据集。依赖全部锁版本,教程第7章整理了19条真实报错及排查方法,第8章给出换模型档、换PlantVillage数据集的迁移路径。 适合做计算机视觉方向课程设计或毕业设计的学生,也适合智慧农业方向想了解检测模型如何落进业务面板的学习者。不需要GPU,不需要系统学过目标检测,教程第3章会按需补齐原理。 使用时先pip install -r requirements.txt装好依赖,download_data.py下载预训练权重,data_gen.py生成样本后train.py训练,完成后用main.py infer批量检测或main.py gui启动界面。

数据挖掘实战:决策树 + 聚类 + 关联规则,零 Key 离线可跑(Python 源码)

数据挖掘实战包。用 Python 标准库实现 CART 风格决策树、K-Means 聚类与 Apriori 关联规则,在虚构「星河便利店」会员表和购物篮上跑通分类、分群与购物篮分析,并给出准确率、轮廓系数、支持度/置信度/提升度。零第三方依赖、零 API Key 即可离线跑通。含 4 个样例、离线冒烟、中文 README(含「使用方法」)。均为作者原创可运行源码。MIT。作者 blog.youkuaiyun.com/mtl1994

打不过Claude就卷“骨折价”?马斯克Grok 4.5杀疯了:数万块GB300训练,实测硬刚GPT、Claude,价格却不到一半

马斯克旗下 SpaceXAI 正式发布了旗下最新旗舰模型 Grok 4.5,并将其定位为目前公司“最智能的模型”

优快云资讯 683

科技中介服务机构在技术供需对接中如何实现服务流程的自动化与标准化?.docx

科技中介服务机构在技术供需对接中如何实现服务流程的自动化与标准化?

SpaceX式AI Coding:200+工程Agent如何重构航天软件开发

AI Coding 正从代码补全演进为工程任务代理化,其核心是将高确定性、强规则性的开发子任务(如规范校验、仿真验证、测试生成)封装为可验证、可追溯、可调度的轻量Agent。这种范式不依赖大模型生成能力,而强调输入输出契约、工具链集成与形式化验证,显著提升嵌入式、航天、汽车等安全关键领域软件的可靠性与交付效率。典型实践包括基于DAG的任务编排、本地优先的Cloud Agent调度、以及零LLM的CLI式Agent实现——本文以自动生成单元测试为例,详解如何构建一个可落地、可审计、可CI集成的Engineer

weixin_28432777的博客 220

产业园区如何高效对接企业技术需求与高校科研成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

国央企创新负责人如何快速掌握本地科技资源分布与匹配情况?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

轨道算力:AI算力扩展的新路径与分布式系统挑战

分布式计算通过将任务分解到多个节点并行处理,解决了单机算力瓶颈问题,其核心原理在于任务调度、数据同步和容错机制。这一技术为处理海量数据和高并发计算提供了基础支撑,在云计算、大数据分析和人工智能训练等场景中价值显著。随着AI模型规模指数级增长,传统数据中心面临物理空间、能源消耗和成本三重限制,轨道算力概念应运而生,它将计算节点部署于近地轨道,利用太空的无限散热和太阳能资源,构建分布式超级计算机。这一构想涉及延迟容忍网络、异步任务调度和容错硬件等关键技术,为未来极端规模AI计算提供了新的架构思路,也推动了分布式

weixin_30824479的博客 376

国央企创新负责人如何实现科技成果的精准识别与高效筛选?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

50万条马斯克推文的无监督情感分析实战

无监督情感分析是一种不依赖人工标注、从原始文本中自主发现情绪模式的技术方法,其核心原理是利用主题建模、词向量分布与时间动态聚类,构建可解释的情绪认知框架。相比传统有监督模型,它在真实业务中具备显著技术价值:规避高昂标注成本、适应高噪声短文本、支持细粒度情绪解耦。典型应用场景包括社交媒体舆情监控、品牌危机预警、跨平台情绪传导分析等。本文以50万条马斯克相关推文为实证对象,完整呈现从语义骨架提取、情绪纹理刻画到动态簇演化追踪的三层建模路径,并深度整合Top2Vec与DASE-V等关键技术组件。

weixin_30455023的博客 492

高校技术转移办公室人员如何系统化管理科技成果信息?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

科技中介服务机构如何构建标准化、模块化的智能服务工具?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

史上最全SpaceX火箭数据开源,核心、组员舱、起落架、发射信息全都有!

梅宁航 发自 凹非寺量子位 报道 | 公众号 QbitAI马斯克用火箭把人送上天,SpaceX粉丝把火箭有关信息贴到GitHub。3.7k Star,GitHub热榜,SpaceX粉丝...

量子位 2214

Playwright自动化测试实战:攻克日历时间控件三大策略与Java实现

在Web自动化测试领域,元素定位与交互模拟是核心技术基础,其原理在于通过程序精确识别并操作页面中的DOM元素,以模拟真实用户行为。这项技术的核心价值在于提升测试效率、确保交互逻辑的覆盖度与可靠性,广泛应用于电商、金融、OA等系统的功能验证。日历时间控件作为典型的复杂交互组件,常涉及动态弹出层、多级导航与状态同步,是自动化测试中的常见难点。本文聚焦于使用Playwright工具,针对此类控件深入剖析了三种核心解决策略:从最高效的直接赋值、到全面模拟用户交互的主流方法,再到利用组件特性的混合定位方案,并结合Ja

weixin_28835551的博客 311

编写c++的软件_隐藏在 Space X 背后的软件技术栈你知道吗?

技术编辑:芒果果丨发自 思否编辑部SegmentFault 思否报道丨公众号:SegmentFault自 2011 年后,美国首次发射载人飞船飞向太空,引起了全球的高度关注。但这次,除了人类登上太空这一伟大进程外,更令人关注的是这次登上太空飞船居然是马斯克的商业航天公司 Space X 制造的。Space X “龙”飞船的飞行软件团队为 Falcon 9、Grasshopper 和“龙”飞船应用程...

weixin_39876145的博客 318

Vivado2022.2下载安装

链接:https://pan.baidu.com/s/1lyfE2d-VmaWC-_aR8ratCQ提取码:mt09。

weixin_61081689的博客 2万+

DVT Eclipse保姆级入门教程(一)

介绍 waokspace工作区 是Eclipse平台、已安装插件的存储、配置和临时信息的首选项 在工作区可以定义项目,但不需要将源文件导入或者复制到工作区中,可以在项目中指向任何文件夹或者文件; 路径都不要出现中文; 每次启动Eclipse时,都可以创建一个新的工作空间或指定一个现有的工作空间目录; 可以创建许多工作区,每个工作区专用于某种活动。 project项目 首次创建项目时,Eclipse平台会在你指定的目录中创建一个.project项目。 一些插件可能会在项目目录中创建其他信息,例如DVT创

SummerXRT的博客 1万+
上一篇: C++在边缘AI中的革命性突破:轻量化架构设计的7个关键技术(独家披露)
下一篇: 为什么90%的行情系统解码效率低下?C++专家现场剖析性能瓶颈
Algorift
博客等级 码龄1年 178粉丝 2179原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值