代码审查也要自动化了?Amazon 推新工具

亚马逊鲲鹏系统:一款支持亚马逊11个国家使用的自动化测评软件 才注册好了的买家号是需要进行养号的,AI智能养号功能是根据软件里面的AI页面选择一些不同姓名、不同年龄、不同爱好、不同职业进行生成一批AI角色,然后账号绑定不同的AI角色生成不同的关键词进行点击、搜索、浏览,给账号快速的增加一些浏览轨迹。现在市面上比较火的防指纹技术,这款软件也是有的,内置了防指纹浏览器,因此在使用这款软件时就不需要再搭配其它指纹浏览器进行操作了,都是可以根据IP设置指纹环境,给每个账号都创建一个不同的独立环境,这样账号在运行过程中就不会造成关联,多账号同时操作也不会影响。 阅读详情

(给技术最前线加星标,每天看技术热点)

原创:技术最前线(id:TopITNews)

12 月 3 日,Amazon 官网宣布推出 CodeGuru 预览版。

CodeGuru 是一个用于代码审查自动化和性能优化推荐的机器学习服务。它能找出最影响程序性能的代码行,并让提供修复或改进代码的具体建议。

目前 CodeGuru 还是预览版,仅支持 Java 语言,其他语言后续会加上。

CodeGuru 能找出的问题有:资源泄漏、潜在的并发竞争条件和浪费的CPU周期……

Amazon 官网给出了两个示意图:

CodeGuru Reviewer 可以扫描 pull request,并针对源代码给出建议,同时还会描述是什么导致了这个问题,以及你该如何补救。

当 CodeGuru Profiler 看到优化应用程序性能的机会时,它会解释为什么建议做更改,是什么导致了这个问题,如何解决它,以及这个问题在代码中的什么地方影响了程序。

据亚马逊官网称,CodeGuru 的机器学习模型是在亚马逊的代码库中训练的,这些代码库包括数十万个内部项目,以及 GitHub 上 1 万多个开源项目。

基于数十年的代码审查和应用程序概要分析经验,数万名 Amazon 开发人员为 CodeGuru 提供了训练。

PS:CodeGuru 是付费服务,亚马逊说不贵。它举了一个例子:

假设有 50 个开发人员在一个 repo 中工作,每个月执行 600 次源代码 PR,每个 PR 约 200 行代码。

扫描 PR 的成本 = 0.75 *  (200 / 100) * 600 次= $900

这相当于 900美元/ 50开发人员 = 每个开发人员每月 18 美元。

有兴趣,请看:

https://aws.amazon.com/cn/codeguru/

推荐阅读

(点击标题可跳转阅读)

微软试用 Rust 重写 Windows 底层组件

Google 两位创始人卸任;PHP 发布 7.4.0 版

元旦起 AI 造假音视频不得随意发布

觉得这条资讯有帮助?请转发给更多人

关注 技术最前线 加星标,看 IT 要闻

最新业界资讯,我在看❤️

RK3568平台开发系列:Android环境下CAN的使用 在RK3568平台上,我们可以利用Android环境中的API来实现CAN的使用。通过以上步骤,我们可以在Android应用中发送和接收CAN数据,并进行相应的处理。当接收到CAN数据时,将触发onMessageReceived回调方法,我们可以在这个方法中对接收到的数据进行处理。在上述代码中,我们指定了CAN的ID为0x123,数据为{0x01, 0x02, 0x03},并设置了标志位和周期。接收CAN数据需要注册一个监听器,并在监听器中处理接收到的数据。发送CAN数据需要指定CAN的ID和数据。 阅读详情

相关推荐

MySQL表名大小写敏感问题终极解决:lower_case_table_names=1不生效的3个隐藏坑

本文深入剖析了MySQL表名大小写敏感问题中,设置lower_case_table_names=1参数不生效的三个核心原因。关键在于理解该参数只能在数据库初始化前设置,并需排查配置文件优先级与正确停止服务的顺序。文章提供了从Windows迁移到Linux的完整避坑指南与验证方法,帮助DBA和开发者彻底解决这一跨平台兼容性难题。

weixin_29229055的博客 392

视界扫描器(Beholder Scanner):一款高效代码审查工具

视界扫描器(Beholder Scanner):一款高效代码审查工具 去发现同类优质开源项目:https://gitcode.com/ 项目简介 Beholder Scanner 是一个开源的自动化代码审查工具,专为开发者和团队设计,旨在提高代码质量并减少潜在的安全风险。它通过静态代码分析,帮助你在项目构建过程中提前发现潜在的问题,从而节省后期调试的时间和精力。 技术分析 核心特性 多语言支持:...

gitblog_00032的博客 426

告别手动解析!用这个Qt库轻松处理Cat 21/62等18种Asterix航空数据

本文介绍了基于Qt框架的高效Asterix报文解析库,帮助开发者轻松处理Cat 21/62等18种航空数据。该库通过协议抽象化、多维度API设计和跨平台支持,解决了手动解析的复杂性和易错问题,显著提升开发效率和系统可靠性。

weixin_42529366的博客 207

SonarQube代码质量检查平台

SonarQube 是一个代码质量管理的开源平台,通过 SonarQube 提供的代码扫描、质量阈值卡点等质量红线,我们可以提升系统的可靠性,提前捕获和提示代码中的错误,从而避免未定义的行为影响到用户,保证业务质量,也能确保管理的代码库干净并且可维护,以便提高开发人员的开发效率。另外 SonarQube 也可以生成详细的代码分析质量报告,并通过强大的仪表盘展示出来,使我们能够根据角色的不同,查看不同维度的度量标准。...

张维鹏的博客 1万+

IC芯片验证 - 手把手教你搭建UVM验证环境

这是一个UVM的demo项目

howard789的博客 3万+

R爬虫RSelenium环境搭建及简单应用

这是鄙人自己实践的一种可行的环境搭建,我会尽量详细的写下大家步骤。

weixin_44349986的博客 2013

sonarqube主要功能概览

sonarqube通过可靠性、安全性、安全复审、可维护性、覆盖率、重复度等方面来评价代码质量。分别使用bugs, 漏洞等指标。如图,有项目状态为正常,有项目状态为错误。点进项目可以看具体可以对问题进行分配,处理。安全热点安全热点需要进行复审,以确定代码是否存在风险。比如这里采用了http协议的url,建议修改为https比较安全。

seanyang_的博客 1596

大语言模型在构建UNSPSC 分类数据中的应用

UNSPSC 是联合国标准产品和服务代码。本文研究如何利用大语言模型生成分类系统的分析

姚家湾博客 1867

Amazon CodeGuru Reviewer推出新功能识别硬编码密钥并用Amazon Secrets Manager进行保护

Amazon CodeGuruhttps://aws.amazon.com /codeguru/ 通过扫描和分析 Java 和 Python 应用程序来帮助提高代码质量并实现自动化的代码...

亚马逊云科技专栏 880

从零开始:用ADS 2023手把手教你设计2.4GHz Wi-Fi LNA(基于ATF-54143,附模型文件)

本文详细介绍了如何使用ADS 2023软件设计2.4GHz Wi-Fi频段的低噪声放大器(LNA),基于ATF-54143晶体管。内容涵盖模型导入、直流工作点确定、稳定性优化、噪声匹配等关键步骤,并提供可下载的模型文件包,帮助工程师快速掌握LNA设计技巧。

weixin_42531128的博客 320

基于ROS的室内移动机器人自主导航技术

随着机器人技术的发展,近些年来室内移动机器人的研究热度越来越高。本文主要利用ROS操作系统对室内移动机器人的建图定位与自主导航关键技术进行研究。 ROS是目前开发较为完整具有广阔应用前景的开源机器人操作系统,具有分布式、模块化、代码复用等优良特点。同时ROS还提供了许多开源库,在这些库的基础之上研究同时定位与地图构建和机器人自主导航技术可以节省大量时间。 ORB-SLAM2是比较优秀的视觉SLAM算法之一,它具有计算量比较小、能够实时运行等优点。在介绍ORB-SLAM2的框架之前,首先会介绍视觉SLAM的一

weixin_44553616的博客 1910

以智赋能:借 Amazon Q Developer 构建企业级自动化代码审查新范式

在数字化浪潮席卷全球的当下,软件研发已成为企业核心竞争力的重要载体,而代码质量则是软件系统稳定运行、高效迭代的基石。传统代码审查模式依赖人工完成,不仅消耗大量人力成本与时间成本,还容易因个人经验差异、精力有限等因素导致潜在问题遗漏,难以满足企业规模化研发场景下对代码质量管控的高效性、一致性需求。如何突破人工审查的瓶颈,构建一套自动化、智能化的代码审查体系,成为企业提升研发效能、降低运维风险的关键课题。

全沾软贱开发攻城狮 1万+

人工智能面试总结-分类与聚类

目录说说常用的分类算法,以及各自的优缺点?说说为什么正确率有时不能有效评估分类算法?说说什么样的分类器最好?说说聚类算法有哪些衡量标准?(选看)各聚类算法性能比较汇总说说什么是聚类,你知道哪些聚类算法?具体展开介绍你知道的聚类算法?说说K-Means聚类算法流程?说说K-Means聚类算法如何调优?说说K-Means聚类算法如何选择初始点?说说K-Means聚类聚的是特征还是样本?说说K-Means聚类的特征距离是如何计算的?说说聚类与分类的区别?手撕K-Means聚类 说说常用的分类算法,以及各自的优缺点

啥都生的博客 3865

破局企业代码审核效率困局:用 Amazon Q Developer 打造全自动化智能流程

在软件开发流程中,代码审核是确保代码质量的关键环节,传统代码审核多依赖团队成员相互审查,不仅耗时,还可能受审核者经验与专业知识限制,而随着生成式AI的发展,越来越多团队开始借助其能力优化代码审核流程。这不,Amazon Q Developer作为亚马逊专为专业开发人员打造的人工智能助手,旨在提升代码开发与管理效率,涵盖代码生成、调试、故障排除及安全漏洞扫描等一站式代码服务,本文将重点聚焦其代码审核能力,该工具可在亚马逊云科技控制台、IDE插件及命令行工具(CLI)等多场景使用。

全沾软贱开发攻城狮 1万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

AWS MCP Servers代码审查工具:自动化代码质量检查与优化建议

你是否还在为代码质量检查耗费大量人力?是否希望有一种工具能自动识别潜在问题并提供优化建议?本文将介绍如何利用AWS MCP Servers中的代码审查工具,实现自动化代码质量检查与优化建议生成,帮助开发团队提升效率和代码质量。读完本文,你将了解代码审查工具的核心功能、使用方法以及实际应用场景。 ## 代码审查工具概述 AWS MCP Servers提供了两款强大的代码审查工具:代码文档生成MC...

gitblog_00962的博客 447

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Claude Code Action终极指南:如何用AI自动化你的代码审查工作流

Claude Code Action是一款革命性的GitHub Actions工具,它利用Claude AI的强大能力,为开发者提供智能代码审查、自动化文档更新和高效问题解决的一体化解决方案。这个开源项目让AI驱动的代码助手无缝集成到你的开发工作流中,实现真正的自动化开发体验。 ## 项目亮点速览 🚀 Claude Code Action的核心价值在于它的智能自动化能力。它不仅仅是一个简单的

gitblog_00651的博客 634

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

GenDev 智能开发:Amazon Q Developer CLI 赋能Amazon Code Family实现代码审核

文详细介绍了如何将Amazon Q Developer CLI与Amazon Code系列产品集成,构建独立的代码审核CI/CD管道。通过与现有业务CodeCommit代码仓库集成,利用EventBridge实现代码审核工作流与业务工作流的解耦,从而建立智能化的代码审核流程。通过这种架构整合,开发团队能够在亚马逊云平台的持续集成与持续部署过程中获得AI驱动的代码质量反馈,有效提升代码可靠性并加速开发周期。

亚马逊云科技专栏 797

Amazon Q 开发者代理的最新动态

Amazon Q 开发者代理的最新动态

2401_89014665的博客 1155

GitLab与Amazon Q合作打造全新开发体验

GitLab与Amazon Q合作打造全新开发体验

2401_89014665的博客 632

Amazon Q Developer 入门指南:从安装到实战的AI开发新范式

Amazon Q Developer 是 AWS 推出的 AI 开发助手,提供从代码生成到测试、审查、运维的全流程支持。它具备突破性 AI 代理能力,可自动执行复杂任务,并深度整合 AWS 生态,为云资源开发提供专属优化建议。支持 VS Code、JetBrains 等主流 IDE,提供免费和 Pro 两种服务层级。安装简单,个人用户通过 Builder ID 即可快速启用。核心功能包括代码生成、AWS 成本优化建议、代码审查和自动化测试等。通过优化提示工程和上下文锁定,可显著提升 AI 输出质量。Pro

haolove527的专栏 598

使用Amazon Q开发者代理加速多步软件开发生命周期任务

使用Amazon Q开发者代理加速多步软件开发生命周期任务

publishtool的博客 958

Ansible Role 应用CIS Amazon Linux Benchmark

Ansible Role 应用CIS Amazon Linux Benchmark 1. 项目基础介绍 本项目是一个Ansible角色,用于应用CIS Amazon Linux Benchmark v2.0.0。它主要通过Ansible的配置管理功能,帮助用户对Amazon Linux系统进行安全加固。项目主要使用的编程语言是Python。 2. 核心功能 自动化安全加固:该角色自动执行一系列安...

gitblog_00011的博客 313

GitLab Duo with Amazon Q现已推出!

无论是将Java代码从版本8或11升级到17、获取AI驱动的代码审查建议、自动生成全面的测试用例,还是将创意转化为完整的合并请求,Amazon Q都能在每个环节提供支持。Amazon Q智能体具备适当的防护机制,既帮助客户满足合规要求,又不影响开发速度,同时依托亚马逊云科技的云基础设施,让您安心扩展AI增强的开发工作流。在本例中,资源是合并请求,但也可以是您想要解释的GitLab任务,或是代码库中某个代码文件的摘要。,将合并请求发送给Amazon Q,它会识别合并请求中代码变更相关的安全和质量风险。

亚马逊云科技专栏 227

Python AI代码审查工具实战指南(企业级应用案例首次公开)

掌握高效代码质量管控方法,PythonAI代码审查工具助力企业级开发。适用于大型项目自动化审查、缺陷预警与安全合规检测,融合机器学习精准识别代码异味。提升研发效率与交付质量,值得收藏。

IterLoom的博客 665

AI5 - 代码审查也能AI化?智能静态分析工具深度体验

*静态代码分析(Static Code Analysis)**是指在不运行程序的情况下,对源代码进行语法、语义和结构层面的检查,以发现潜在错误、安全漏洞、性能瓶颈或违反编码规范的问题。传统的静态分析工具(如 ESLint、Pylint、SonarQube)依赖规则引擎:开发者预先定义一系列规则(如“禁止使用var”、“函数复杂度不超过10”),工具逐条匹配。规则僵化:难以理解上下文语义,容易误报(false positive)或漏报(false negative)。维护成本高。

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

AI 驱动代码分析工具:Amazon CodeGuru和Snyk Code

Amazon CodeGuru 和 Snyk Code (原 DeepCode) 的功能特性、集成方法及最佳实践,助力AI 驱动代码分析

weixin_44199939的博客 1324
上一篇: 微软试用 Rust 重写 Windows 底层组件​
下一篇: 他设计的 25$ 芯片开启了 PC 时代
redditnote
博客等级 码龄12年 51粉丝 145原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值