首页 文章 精选 留言 我的

精选列表

搜索[知识资产沉淀],共10002篇文章
优秀的个人博客,低调大师

沉淀九年,一文看清阿里云原生大事件

【合集】规模化落地云原生,阿里云亮相 KubeCon China过去数十年,企业 IT 架构经历了单机、分布式和云计算三个阶段的技术演进。云计算时代的第一个十年,大多数互联网公司的应用从诞生之初就生长在云端;如今,金融、制造、医疗以及政务等领域的企业和机构也逐渐将业务迁移至云上。企业的云化不仅仅是基础设施和平台的升级,应用也需要摒弃传统的设计方法,从架构设计、开发方式到部署维护整个软件生命周期都基于云的特点设计,从而构建原生为云而设计的应用,这样才能在云上以最佳姿势运行,充分利用和发挥云平台的弹性以及分布式优势。云原生就是这样一套全新的理念,背后涵盖了一系列全新的技术,例如容器、微服务、服务网格等。作为国内最早布局云原生技术的科技公司,阿里云即将亮相云原生技术大会 KubeCon+CloudNativeCon+ Open Sour

优秀的个人博客,低调大师

JAVA知识

**classloaderJVM装载** 在说java的ClassLoader机制之前,我先了解下jvm的装载过程和其中的原理。装载就是寻找一个类或者一个接口的二进制形式并且用二进制形式构造代表这个类或者是这个接口的class对象的过程。 类的生命周期是从被加载到虚拟机内存中开始,到卸载出内存结束。 加载->验证->准备->解析->初始化->使用->卸载 在java中,类装载器把一个类装入java虚拟机中,要经过三个步骤完成:装载、链接和初始化 这是java的装载流程,后面要说下java中,类的表现形式。 在java中,一个类代表着这个类要执行的代码,但是这个类可以有对应的各种不同的实例,不同的实例就是通过类中数据的表示状态来区分。状态是动态的,但是代码则不会。当我们将一个特定的状态和一个类对应起来,也就是意味着将一个类实例化。尽管相同的类呢,对应的实例有各种各样不同的状态,但是其基本底层还都是同一份代码,只是其中的数据状态有不同。jvm一般只加载一次类,以后相同的类就不会再加载。 下面就讲下JVM是如何区分不同的类的: 在Java中,一个类用其完全匹配类名(fully qualified class name)作为标识,这里指的完全匹配类名包括包名和类名。但在JVM中一个类用其全名和一个加载类ClassLoader的实例作为唯一标识。因此,如果一个名为Pg的包中,有一个名为Cl的类,被类加载器KlassLoader的一个实例kl1加载,Cl的实例,即C1.class在JVM中表示为(Cl, Pg, kl1)。这意味着两个类加载器的实例(Cl, Pg, kl1) 和 (Cl, Pg, kl2)是不同的,被它们所加载的类也因此完全不同,互不兼容的。 JVM规范定义了两种类型的类装载器:启动内装载器(bootstrap)和用户自定义装载器(user-defined class loader)。JVM在运行时会产生三个ClassLoader:Bootstrap ClassLoader、Extension ClassLoader和AppClassLoader。Bootstrap是用C++编写的,我们在Java中看不到它,是null,是JVM自带的类装载器,用来装载核心类库,如java.lang.*等。AppClassLoader的Parent是ExtClassLoader,而ExtClassLoader的Parent为Bootstrap ClassLoader。 package javatest; public class TestClassLoader{ public static void main(String[] args){ Class cl = null; ClassLoader cLoader; cLoader = ClassLoader.getSystemClassLoader(); System.out.println(cLoader); while(cLoader != null){ cLoader = cLoader.getParent(); System.out.println(cLoader); } try{ cl = Class.forName("java.lang.Object"); cLoader = cl.getClassLoader(); System.out.println("java.lang.Object loader is "+cl); cl = Class.forName("javatest.TestClassLoader"); cLoader = cl.getClassLoader(); System.out.println("LoadTest loader is "+cl); }catch(Exception e){ e.printStackTrace(); } } } output:sun.misc.Launcher$AppClassLoader@73d16e93// 系统的类装载器来自类sun.misc.Launcher$AppClassLoader@73d16e93的实例化,sun.misc.Launcher$ExtClassLoader@15db9742// 系统的类装载器的parent来自sun.misc.Launcher$ExtClassLoader@15db9742的实例化null//系统的类装载器的爷爷是由上面的Bootstrap ClassLoader实例而来,但是呢,这个Bootstrap ClassLoader是由C++实现的(嘿嘿嘿,混血儿),在java中是看不到滴。java.lang.Object loader is null//核心类都是由Bootstrap ClassLoader进行装载滴LoadTest loader is sun.misc.Launcher$AppClassLoader@73d16e93//用户自己的类都是由AppClassLoader进行加载滴。 那么问题来了,JAVA为啥需要这么多类加载器(当然是多层负责每层对应的类系统,而且多态这个磨人的妖精很是厉害,需要多层加载机制进行处理。–个人理解) 因为java是动态加载类的,这样的话,用到什么类就加载什么类,不用的就不加载(模仿Linux的内存管理机制!!!也让我想起了C++里面的内存申请,如果申请内存,先不分配实际物理内存,当需要访问的时候,再进行分配内存进行操作) 点击关注阿里云科技快讯,跟多精美礼品等你来拿! 参考:兔子哥哥

优秀的个人博客,低调大师

知识碎片

学习资料: https://openreview.net/forum?id=r1Ue8Hcxg&noteId=rJ0FDEw4x aussetg/nasnet.pytorch EN10/NASNet dhruvramani/Neural-Architecture-Search-with-RL nutszebra/neural_architecture_search_with_reinforcement_learning_appendix_a titu1994/Keras-NASNet 几个比较好用的机器学习 Python 库 1. PyTorch Facebook 的深度学习框架 PyTorch 是今年最受欢迎的库之一。 PyTorch 源于 Torch 框架,同时改善了 Torch 框架,而且 PyTorch 基于 Python 语言。过去的几年,人们一直用 Python 做数据科学的研究,PyTorch 的出现加快了深度学习的普及。 最值得注意的是,由于实现了动态计算图范式, PyTorch 已经成为众多研究人员的首选框架之一。当使用 TensorFlow、CNTK 或者 MXNet 等框架编写代码时,你必须首先定义一个称为计算图的东西。计算图制定了代码将要运行的所有操作,然后代码会被被编译并利用框架优化,以便在 GPU 上更快地并行运行。这个范式被称为静态计算图,它很棒,因为你可以利用各种优化,并且图形一旦构建完成就能运行在不同的设备上。然而,在诸如自然语言处理等任务中,「工作量」往往是可变的:将图像喂给算法之前,你可以把图像调整到固定的分辨率,但相同的操作不能适用于语句,因为句子的长度是变化的。这正是 PyTorch 和动态图的优势所在,让开发者在代码中使用标准的 Python 控制指令,图形在执行时被定义,给予开发者很大的自由,这对于多任务来讲是必不可少的。 当然,PyTorch 可以计算梯度(就像其他深度学习模型一样),而且非常快,可扩展性强,所以值得一试。 2.Caffe2 虽然听起来很不可思议,但今年 Facebook 发布了另一个伟大的深度学习框架 —— Caffe2。 原始的 Caffe 框架广泛使用了多年, 它凭借无与伦比的性能和经过测试的代码库而闻名。然而,近期深度学习的发展趋势让该框架在某些方面停滞不前。Caffe2 则是让 Caffe 跟上潮流的一次尝试。 Caffe2 支持分布式训练、部署(即使是在移动平台上),最新的 CPU 和支持 CUDA 的硬件。PyTorch 可能更适合做研究,而 Caffe2 更加适合大规模部署,就像在 Facebook 上看到的那样。 另外,你可以在 PyTorch 里构建并训练模型,同时用 Caffe2 部署!这不是很棒吗? 3.Pendulum Pendulum 的优势之一在于,它是 Python 标准 datetime 替代品,因此你可以轻松地将其与现有的代码集成,并且在你需要的时候才使用它的功能。Pendulum 的作者特别注意时间分区的处理,默认在每个实例中时间分区是可用的,并且以 UTC 计时。你也可以获得扩展 timedelta 来简化 datetime 的计算。 与其他库不同的是,Pendulum 努力让 API 具有可预测的行为,所以你该知道期望什么,如果你正在做与 datetime 相关的工作,那么 Pendulum 能让你工作得更加开心。详细信息请查看文档:https://pendulum.eustace.io/docs/ 4.Dash 如果你做与数据科学相关的工作,会使用到诸如 Pandas 和 scikit-learn 等 Python 生态系统中的工具,用 Jupyter Notebooks 管理工作流程。但是,你如何向那些不知道怎样使用这些工具的人分享你的工作呢?你该怎样构建一个交互界面,使人们可以轻松地处理数据,并让整个过程可视化?过去,你需要一个专业的 JavaScript 前端团队来构建这些 GUI。而现在,你不再需要了。 Dash 是一个可构建 Web 应用,尤其是数据可视化 Web 应用的纯 Python 开源库。它建立在 Flask、Plotly 和 React 之上,并提供这几个框架的函数抽象接口,从而开发者不必学习这些框架,高效开发。这些应用程序可在浏览器和移动设备中使用。 如果你想了解更多 Dash 的信息,请查阅: https://plot.ly/dash/ https://plot.ly/products/dash/ 5.PyFlux Python 中有许多库可用于做数据科学和机器学习,但当你的数据点是随着时间变化而变化时(例如股票数据),这就不一样了。 PyFlux 是专门针对时间序列开发的 Python 开源库。时间序列研究是统计学和经济学的子领域,其目的是用于描述时间序列的行为(in terms of latent components or features of interest),同时也预测时序未来的行为状态。 PyFlux 允许使用概率的方法对时间序列建模,并且实现了几个时间序列模型,如 GARCH。 6.Fire 在通常情况下,你需要为你的项目制作命令行界面。除了传统的 argparse,Python 还有一些很棒的工具,比如 Click 或者 docopt。谷歌今年宣布的 Fire 则采用了不同的方法来解决这个问题。 Fire 是一个开源库,可以为任何 Python 项目自动生成一个命令行界面。你几乎不需要编写任何代码或者文档,你只需要调用一个 Fire 方法并把它传递给你想要的命令行界面:一个函数、一个对象、一个类、一个库,甚至不传递任何参数(这会使你的整个代码进入命令行界面)。 请阅读指南来了解它的工作原理:https://github.com/google/python-fire/blob/master/docs/guide.md。 7.imbalanced-learn 在理想情况下,我们有完美平衡的数据集,然后非常顺利地训练模型。不幸的是,现实不是这样的,某些任务的数据集非常不平衡。例如,预测信用卡中的交易行为时,绝大多数(+99.9%)的交易是合法的。如果按照这样的方式训练算法,会得到很糟糕的结果,所以在使用这些类型的数据集时要非常小心。 幸运的是,这个问题已经被充分地研究,也存在着各种各样的技术来解决该问题。imbalanced-learn 是一个 Python 库,它提供了相关的技术来解决数据不平衡的问题。另外,它和 scikit-learn 兼容,并且是 scikit-learn-contrib 项目的一部分,非常有用。 8.FlashText 在数据清理工作中,你需要搜索文档并替换特定的内容,这通常用正则表达式完成。但有时候会出现这样的情况:你需要搜索成千上万的数据,然后采用正则表达式的方式会变得非常缓慢。 FlashText 是个更好的选择。作者在最初的基准测试中,FlashText 使整个操作的运行时间大大缩短:从 5 天降到 15 分钟。FlashText 的优点在于无论搜索条件有多少,运行时间都是一样的,而随着搜索条件的增加,正则表达式的运行时间几乎呈线性增长。 FlashText 证明了算法和数据结构设计的重要性,即使对于简单的问题,更好的算法也能够轻松超越在最快 CPU 上运行的朴素实现。 9. Luminoth 图像无处不在,理解其内容对于很多应用程序来说非常重要。庆幸的是,由于深度学习的进步,图像处理技术有了很大的进步。 Luminoth 是一个用 TensorFlow 和 Sonnet 构建的开源的计算机视觉 Python 工具包。它可直接支持物体检测,背后支持的模型是 Faster R-CNN。 但是,Luminoth 不仅能实现特定的模型,同时它还建立在模块化和可扩展基础之上,所以你可以直接定制它现有的部分,或者用新的模型扩展它,用于处理不同的问题,尽可能地重复利用代码。它提供了可轻松构建深度学习模型的工具:将数据转换为合适的格式反馈给各种流程中,例如用于增强数据、在一个或者多个 GPU (使用大型数据集时必须进行分布式训练)上训练、运行评估指标。 此外,Luminoth 直接与 Google Cloud 的机器学习引擎集成,即使你没有强大的 GPU,也能在云端训练。 10.PyVips 你可能从没听说过 libvips 库,它是一个图像处理库,和 Pillow 和 ImageMagick 一样,支持大量的格式。然而,和其他的库相比,libvips 更快且占用的内存更少。比如,一些基准测试显示,它比 ImageMagick 快了三倍,而 ImageMagick 占用的内存是 libvips 的十五倍。 PyVips 是最新发布的 libvips 的 Python 绑定包,它兼容 Python2.7 ~ 3.6(甚至是 PyPy),可以非常容易的用 pip 安装,并且和旧的绑定包兼容,你可以直接使用它,不需要改变任何代码。 如果你的应用程序需要处理图像,你可以留意一下 PyVips。 11.Requestium 有时候,你需要在 Web 中自动化某些操作。无论是抓取网站,做应用测试,还是填写网页表单以便在不暴露 API 的网站中执行操作,自动化都是必须的。Python 有很好的请求库,能够执行相关的工作。但不幸的是,许多网站用 JavaScript 构建了一个非常庞大的客户端,这意味着获取的HTML 代码没有表单本身,相反,它会在浏览器中用一个前端库(如 React 或者 Vue)生成。 解决这个问题的方法之一是,对 JavaScript 代码所做的请求进行反向工程,这意味着需要花费大量的时间来调试 JavaScript 代码。另一个方法是用 Selenium 这样的库,它可以让你以编程的形式与 Web 浏览器交互并运行 JavaScript 代码。 Requestium 可以让你从请求开始无缝切换到 Selenium,并且在需要的时候增加一个浏览器开销。它集成了 Parsel,因此它在编写用于在页面中查找元素的选择器时,要比其他方式更加简洁。 12.skorch skorch 是一个封装,它可以提供给 PyTorch 一个类似 sklearn 的编程界面。如果你熟悉这些库,这些语法应该简单易懂。通过 skorch,你会得到经过抽象的代码,所以你可以把精力花在真正重要的事情上,比如做数据科学研究。 探寻有趣之事!

优秀的个人博客,低调大师

GCC知识

像C语言这样的静态语言,运行的步骤是先将C经过编译器转化成汇编语言,汇编语言再经过汇编器转化成机器语言模块,然后链接器将程序的机器语言模块和库程序的机器语言模块和起来,生成可执行文件,最后再由加载器加载这个可执行文件,产生输入输出。 在这个环节中,gcc就是扮演着编译器的角色。gcc原本只能编译C语言,但是后来,经过扩展之后也能处理JAVA/OC等语言了。GCC现在已经成为类Unix操作系统的标准编译器了。所以在linux上源码编译软件前大都要先安装gcc。 gcc只是编译器吗? gcc可以完成从高级语言C变为和执行文件.out的过程。它默认也是有编译链接的功能。gcc有个参数-c 是来控制是否要链接成可执行文件。编译C之后会生成.o的目标文件,链接之后会生成.out的可执行文件。 gcc在这个过程中虽然只是完成编译工作,但是它会调用汇编器(as),链接器(ld)来完成整个代码编译解释过程。 GNU其他工具? gdb(GNU除错器)也是GNU工程开发出来的调试工具。能对GCC编译链接出来的可执行文件进行定点调试。 gprof(GNU测量器)是测试程序中函数的性能的工具。 g++(C++编译器)和gcc差不多,只是目标语言是c++。 参数 网上的gcc参数的例子很多,比如:http://www.shanghai.ws/gnu/gcc_1.htm。我们直接拿一个例子看一下 比如go/src/make.bash中有一个gcc生成dist的例子: gccmflag−O2−Wall−Werror−ggdb−ocmd/dist/dist−Icmd/dist"mflag−O2−Wall−Werror−ggdb−ocmd/dist/dist−Icmd/dist"DEFGOROOT" cmd/dist/*.c 将其中的参数按照上下文转换后如下: gcc -m64 -O2 -Wall -Werror -ggdb -o cmd/dist/dist -Icmd/dist -DGOROOT_FINAL="$GOROOT_FINAL" cmd/dist/*.c gcc的参数很多,种类分为几种: 上图参考自http://www.shanghai.ws/gnu/gcc_1.htm 参考文章:http://tigcc.ticalc.org/doc/comopts.html -m64:配置相关选项,代表这个程序的宿主机器cpu架构是amd64 -O2: 优化选项,对程序进行O2级别的优化 -Wall: 警告选项,生成所有警告信息 -Werror: 警告选项,将所有warning当作error处理 -ggdb: 调试选项,编译过程生成调试信息,以便gdb进行调试。 -o: 总体选项,制定生成的可执行文件。如果不指定的话,就默认是xx.out -I: 目录选项,进行头文件查询的时候被指定的目录也需要进行搜索 -DGOROOT_FINAL="$GOROOT_FINAL" 这个是在预处理过程的时候设置GOROOT_FINAL 最后的cmd/dist/*.c就是源文件了,表示源文件是这个目录下的所有.c文件 本文转自轩脉刃博客园博客,原文链接:http://www.cnblogs.com/yjf512/archive/2013/01/17/2863903.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

AngularJs 知识

简介 1.通过指令扩展了 HTML,通过表达式绑定数据到 HTML; 2.一个 Js 框架; 3.指令: 通过被称为指令的新属性来扩展 HTML, 即为应用添加新功能 ng-directives扩展了 HTML ng-app指令定义一个 AngularJS 应用程序 ng-model指令把元素值(比如输入域的值)绑定到应用程序,一个作用域的变量。 ng-bind指令把应用程序数据绑定到 HTML 视图 ng-init指令初始化 AngularJS 应用程序变量 4.表达式: 把数据绑定到 HTML 表达式写在双大括号内:` expression ` 表达式把数据绑定到 HTML,这与ng-bind指令有异曲同工之妙 5. 模块(Module)定义了 AngularJS 应用。 控制器(Controller)用于控制 AngularJS 应用。 ng-app指令定义了应用,ng-controller定义了控制器。 指令 1.前缀 ng-; 2.ng-app:初始化一个 AngularJS 应用程序; 3.ng-init:初始化变量。 4.ng-model指令把元素值(比如输入域的值)绑定到应用程序。 5.ng-repeat:表示重复输出. 6.创建自定义的指令 6.重复 HTML 元素 7.创建自定义的指令 作用域($scope) 1.应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带 2. 是一个对象,有可用的方法和属性 3. View(视图),即 HTML。 Model(模型),当前视图中可用的数据。 Controller(控制器),即 Js 函数,可以添加或修改属性。 scope 是模型。 scope 是一个 JavaScript 对象,带有属性和方法,这些属性和方法可以在视图和控制器中使用。 过滤器 1.过滤器可以使用一个管道字符(|)添加到表达式和指令中。 服务 1.在 AngularJS 中,服务是一个函数或对象,在你的 AngularJS 应用中使用。 2.$location服务,它可以返回当前页面的 URL 地址。 3.$http 服务,该服务向服务器发送请求,应用响应服务器传送过来的数据。 4.创建自定义服务 本文转自 sshpp 51CTO博客,原文链接:http://blog.51cto.com/12902932/1928069,如需转载请自行联系原作者

优秀的个人博客,低调大师

沉淀 3 个月,豆包 MarsCode 都解决了程序员哪些痛点?

程序员最讨厌的事有哪些? 如果你去搜这个问题,大概率会有这些答案被高频提及:复杂的环境配置、找莫名其妙的 BUG 、理解别人写的代码、反反复复修改需求、写文档、写注释,以及别!人!不!写!注!释!(虽梗但烦) 都说程序员的花期很短,那么如何剩下时间,去专注于那些真正具有价值和创造性的工作呢?Back to basics ,答案或许就在于选择一款便捷、高效、安全的开发工具。 不少人都听说过 Copilot ,但付费和魔法这两道坎,就阻挡了大多数人。不过没关系,国内其实也有近乎完美的平替产品,其中就包括今年 6 月发布的 豆包 MarsCode,帮助大家快速上手,提高开发效率。 在 10 月 8 日的更新日志中,豆包 MarsCode IDE 更是引入 Nix来管理系统依赖,目前支持的语言包括 Node.js 和 Go 。简单来说,Nix 是一种包管理器,使用纯函数式的方法来管理软件包和依赖关系,开发者在使用豆包 MarsCode IDE 的过程中,只要使用相同的 Nix 表达式,就可以得到相同版本和配置的软件包,无需再消耗大量时间去解决依赖冲突问题。 并且,Nix 还能为每个软件包创建独立的安装路径,避免了不同软件包之间的冲突。例如,一个项目使用 MySQL 5.7 ,另一个项目需要使用特定版本 MySQL 8.0 ,Nix 能够为它们分别创建独立的环境,确保两个项目在各自的环境中运行,互不干扰,解决了云 IDE 开发中的一大痛点问题。 都说豆包家的产品一贯沿袭了“都包”的特性,那么豆包 MarsCode 这款 AI 编程助手还有哪些可圈可点的地方呢?结合上述程序员最讨厌的事,一起来看看它都解决了什么! 官方链接:https://www.marscode.cn/?utm_source=community&utm_medium=oschina&utm_campaign=v0.1 豆包 MarsCode 是什么? 豆包 MarsCode 是豆包旗下的 AI 编程助手,提供以智能代码补全为代表的 AI 功能,支持包括 Python 、Go 、Java 、PHP 、C 等多款主流编程语言,以及 VS Code 和 Jetbrains 两款 IDE 环境,能在开发过程中提供单行或整个函数的编写建议,同时支持在用户开发过程中提供代码解释、代码审查、问题修复等辅助功能,提升开发效率与质量。 同时,豆包 MarsCode 还拥有一个基于 AI 的云端集成开发环境( Cloud IDE ),内置了 AI 编程助手,提供代码补全、代码生成、代码编辑、注释生成、代码解释、AI 问答等功能,提供 C 、C++ 、C# 、Go 、JavaScript 、Java 、Node.js 、Rust 、TypeScript 等语言的开发环境和模板。 值得一提的是,MarsCode IDE 可提供单个项目 2 核 CPU 、4GiB 内存、10GiB 硬盘的最大资源空间,相当于用户即便是在一个低配机,或者临时设备上也能拥有一个较为良好的开发环境。资源的限制也变相促使开发者养成资源优化的意识,尽可能地提高代码的性能和效率,减少资源浪费。当然,这些都可以通过内置的 AI 编程助手去优化,妥妥的“都包”~ 那么,豆包 MarsCode 都解决了什么?咱们往下看。 代码补全:化身 Tab 侠,拯救我的发 程序员身上有很多刻板标签,其中“加班掉头发”一定是最广为人知的。在编写代码的过程中,豆包 MarsCode 能分析正在编写的代码的上下文,包括变量类型、函数调用、代码结构等信息,从而预测接下来可能输入的代码,并在下方推荐出来。 例如,当用户在一个特定的函数中输入变量名的一部分时,它可以根据函数的参数类型和作用域,智能地提示可能的变量名,如果是预测正确,用户点击 “ Tab ”接受,就可以轻松补全代码。 很多时候,只需要写一句注释或者半行代码,豆包 MarsCode 就已经猜出来了一大段,按下 Tab 就能直接使用,大大提高了工作效率,自然也就不需要加班了~ 代码补全 Pro :需求又双叒改?轻松应对 在程序员的工作中,最深恶痛绝的就是反复改需求,一个功能反复修改十几版,并且很多时候,往往只是微小变动,却要因此把整个函数和类都改一遍。豆包 MarsCode 推出了一个神奇的功能-代码补全 Pro ,支持基于上一次的编辑内容和代码情况,预测下一个改动点并给出代码推荐。 简单来说,当涉及需求修改,用户只需要在对应的地方按下 Ctrl+Shift+Enter ,AI 就会基于初始编辑,预测下方的改动点,并且给出推荐,在代码修改和重构时,这样的功能就会非常实用。(该功能目前仅支持 VS Code ) AI 问答、智能修复:一键 FIX ,不用切界面 如遇 BUG ,豆包 MarsCode 有两个非常方便的功能帮助开发者更快解决问题。一个就是内置的 AI 编程助手,用户只需要按住 Ctrl + U ( macOS : Command + U )唤起 AI 对话框,输入所遇到的问题,就可以让豆包 MarsCode 解答,无需切出界面,频繁使用复制粘贴,寻找解决方法。 另一个功能则是智能修复。当代码中存在错误时,窗口中的代码文件名称会高亮,名称右侧会提示错误数量。用光标选中问题代码片段后,在 AI 对话框中输入 /fix 指令并发送,豆包 MarsCode 编程助手就会为选中的代码片段进行修复。在实际操作中,修复后的代码片段会独立生成一个文件,用户对比后,可选择是否插入对应的位置,但一般经过多轮问答后,豆包 MarsCode 所提供的代码段基本都能直接插入替换,准确度极高。 代码注释生成:一键注释,清晰可靠 好的代码,自己就是注释;不好的代码,注释了别人也看不懂。但如果写注释可以一键完成,那是不是很多人就愿意把它顺手加上呢?豆包 MarsCode 通过对代码的语义分析,可以生成具有针对性和准确性的注释,为开发者提供清晰的代码解释。 考虑到项目语言的差异性,豆包 MarsCode 还适应不同编程语言的注释风格。例如,对于 Java 语言,它可以生成符合 JavaDoc 规范的注释;对于 Python,它可以提供简洁明了的文档字符串风格注释。并且,用户还可以根据自己的项目需求和团队规范,自定义注释的风格和格式。 单元测试生成:一键测试,节约时间 相信很多程序员是不愿意写单元测试的,一方面需要花大量时间,另一方面单元测试又不算作KPI ,但为了提高代码的整体质量,豆包 MarsCode 又是如何解决问题的呢?在编写过程中,豆包 MarsCode 可以根据代码的逻辑和结构,生成相应的测试框架和测试用途模板,为开发者节省大量手动编写测试用例的时间。 同时,豆包 MarsCode 通过代码覆盖率,开发者还可以发现未被测试覆盖的代码区域,进一步补充测试用例,提高测试的全面性和可靠性,在 AI 编程助手的对话框输入 /test 指令即可,非常方便。 豆包 MarsCode 除了能完美解决以上痛点,它还致力于保护每一位用户的数据安全与隐私。在官网信息上,我们可以得知豆包 MarsCode 所有用于训练的代码数据均为合规的开源数据库。对于用户的数据,一方面将基于 HTTPS 协议加密传输,确保安全通信,另一方面将不会使用用户的代码和数据进行二次训练,进一步保护了用户的隐私。 如果你之前用过 GitHub Copilot ,那么现在切换到 MarsCode 完全就是无缝对接,用法上,几乎完全一样。毕竟使用 Copilot 确实也价格不菲,在国内使用速度也稍慢一些,使用 MarsCode 作为免费平替,将会是一个很不错的选择。 并且,豆包 MarsCode 还发起“开发者和社区共创计划”,通过成立用户组、各类系列开发者活动的方式,助力开发者探索 AI 编程新范式。在社区中,开发者们可以组织自运营,豆包团队不会参加到用户组的管理,但是会为用户组提供丰富的各类资源支持,包括场地资源、产品资源、活动物料等。未来豆包 MarsCode 还将陆续在北、上、深、杭等城市举办 Meetup ,同开发者一起进入户外,以更轻松的方式,交流 AI 编程技巧与经验。 目前,大家可以通过→https://www.marscode.cn/?utm_source=community&utm_medium=oschina&utm_campaign=v0.1 进入官方,注册并体验,支持手机号以及稀土掘金账号登录,通过本文注册,注册“豆包 MarsCode ”并在下方评论区分享您的编写心得,我们还将抽取 5 位幸运观众送出精美礼品~无论您是小白还是大佬,都可以通过元宝 MarsCode 快速提升效率,轻松 Coding 。快来体验一下吧!

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册