当前位置: 首页 > news >正文

wordpress百度小程序seo就业

wordpress百度小程序,seo就业,电商系统设计方案,wordpress 去除index.phpAmazon CodeWhisperer 是一款很赞的生成式人工智能编程工具。自从在工作中使用了 CodeWhisperer,我发现不仅代码编译的效率有所提高,应用开发的工作也变得快乐起来。然而,任何生成式 AI 工具的有效学习都需要初学者要有接受新工作方式的心态和…

9 种方法使用 Amazon CodeWhisperer 快速构建应用

Amazon CodeWhisperer 是一款很赞的生成式人工智能编程工具。自从在工作中使用了 CodeWhisperer,我发现不仅代码编译的效率有所提高,应用开发的工作也变得快乐起来。然而,任何生成式 AI 工具的有效学习都需要初学者要有接受新工作方式的心态和意愿。

  • Amazon CodeWhisperer

AI Code Generator - Amazon CodeWhisperer - AWS

作为一名早期的“探索者”,我发现了几个对我很有用的功能和可以提高生产效率的小技巧,将在这篇文章中和大家分享:

  • 减少输入

  • 函数生成

  • 类的生成

  • 算法的实现

  • 单元测试的编写

  • 创建示例数据

  • 简化正则表达式

  • 更快地学习第三方代码库

  • 代码的文档化

CodeWhisperer 的安装部署

使用 CodeWhisperer,需要在你的集成式开发环境(IDE)中安装最新的 Amazon Toolkit。支持的 IDE 包括 Visual Studio(VS)Code 和 JetBrains IDE(IntelliJ、PyCharm、CLion、GoLand、WebStorm、Rider、PhpStorm、RubyMine 和 DataGrip)。另外,CodeWhisperer 被内置了 Amazon Cloud9 和 Amazon Lambda 控制台, 也可以在 JupyterLab、Amazon SageMaker Studio、以及 Amazon Glue Studio Code 中通过加入 CodeWhisperer extension 进行使用。有关设置说明,请参阅:CodeWhisperer “入门” 资源。

  • CodeWhisperer “入门” 资源

AI Code Generator - Amazon CodeWhisperer Resources - AWS

CodeWhisperer 为输入需求自动提供建议。如果没有收到建议,可以随时使用 Option + C (Mac) 或 Alt + C (Windows) 快捷方式手动触发。

CodeWhisperer 有时还会向你提供多种建议以供选择。你可以按 → 和 ← 键循环浏览所有可用的建议。

CodeWhisperer 提供的建议是非确定性的,这意味着开发者收到的建议可能与本文中显示的建议略有不同。如果收到的建议不符合需求,可以尝试使用箭头键循环浏览所有可用的建议,或者尝试稍微改写任何代码注释提示。即使是标点符号的变化也可能产生新的建议。

本文中的示例是用 JavaScript 和 TypeScript 编写的。当然,演示操作同样适用于 CodeWhisperer 支持的其他编程语言。

减少输入

对于常见的代码功能实现,CodeWhisperer 的作用在于功能完成自动化,这大大减少了编写单行代码代码块时的键入次数。CodeWhisperer 在键入时自动提供建议。当建议有用时接受这些建议,当建议没有帮助时则忽略这些建议。根据我的经验,仅以这种方式使用 CodeWhisperer 可以使我的文字输入减少 50% 或更多。

函数生成

根据函数名自动生成函数

资深的程序员为其函数和参数提供清晰准确的描述性名称。如果你在自己的编程中遵循这种做法,CodeWhisperer 将拥有为你实现许多功能所需的所有上下文。

在输入下面的函数名后,CodeWhisperer 生成的函数体。

用户输入 (JavaScript)

JavaScript

function standardDeviation(numbers)

结果:

JavaScript

function standardDeviation(numbers) {  const avg = average(numbers);  const variance = numbers.map((x) => Math.pow(x - avg, 2)).reduce((a, b) => a + b, 0) / numbers.length;  return Math.sqrt(variance);}

根据描述生成函数

有时,仅凭一个好的函数签名不足以传达函数的预期行为。在这些情况下,可以使用详细的代码注释作为提示发给 CodeWhisperer。建议在选择这种方式时使用相应语言的文档注释分隔符。

用户输入 (JavaScript)

JavaScript

/** * Given a list that contains some numbers and strings, format them into a string * in which the numbers are prepended with "#" and the strings are wrapped in * double quotes. */

结果:

JavaScript

/** * Given a list that contains some numbers and strings, format them into a string * in which the numbers are prepended with "#" and the strings are wrapped in * double quotes. */function formatList(list) {  return list    .map((item) => {      if (typeof item === "number") {        return `#${item}`;      } else {        return `"${item}"`;      }    })    .join(", ");}

类的生成

可以通过单个代码注释生成完整或部分的类实现。注释应描述该类的关键属性和行为。

用户输入(TypeScript):

TypeScript

/** * A folder has a name, children, and an optional parent. A child can't be added * twice. */

结果:

在完成上面的函数块注释之后,CodeWhisperer 提供了多种建议,并附有每种方法的文档注释!

TypeScript

/** * A folder has a name, children, and an optional parent. A child can't be added * twice. */class Folder {  constructor(name, parent) {    this.name = name;    this.children = [];    this.parent = parent;  }
  /**   * Add a child to the folder.   * @param child The child to add.   * @returns True if the child was added, false if it was already present.   */  addChild(child) {    if (this.children.includes(child)) {      return false;    }    this.children.push(child);    return true;  }
  /**   * Remove a child from the folder.   * @param child The child to remove.   * @returns True if the child was removed, false if it wasn't present.   */  removeChild(child) {    if (!this.children.includes(child)) {      return false;    }    this.children.splice(this.children.indexOf(child), 1);    return true;  }}

算法的实现

CodeWhisperer 能够轻松实现通用的算法。只需告诉 CodeWhisperer 你想将哪种算法应用于特定的编码问题,它就会执行。

用户输入 (JavaScript)

JavaScript

const actors = [ ... ];
// Sort the actors by age using the merge sort algorithm.

结果:

JavaScript

const actors = [  {name: 'Tom Cruise', age: 56},  {name: 'Meryl Streep', age: 49},  {name: 'Jack Nicholson', age: 39},  {name: 'Christopher Walken', age: 53}];
// Sort the actors by age using the merge sort algorithm.function mergeSort(arr) {  if (arr.length <= 1) {    return arr;  }  const middle = Math.floor(arr.length / 2);  const left = arr.slice(0, middle);  const right = arr.slice(middle);  return merge(mergeSort(left), mergeSort(right));}
function merge(left, right) {  const result = [];  while (left.length && right.length) {    if (left[0].age < right[0].age) {      result.push(left.shift());    } else {      result.push(right.shift());    }  }  while (left.length) {    result.push(left.shift());  }  while (right.length) {    result.push(right.shift());  }  return result;}

单元测试的编写

CodeWhisperer 加速了单元测试的实现。不仅能够实现我请求的大多数明确的单元测试的逻辑,而且经常为我甚至没有想到的边缘情况来建议单元测试。

当我想让 CodeWhisperer 实现一个单元测试时,我会像下面的例子一样,首先声明我正在测试的条件和预期的结果。

用户输入 (JavaScript)

JavaScript

describe("Folder.addChild()", () => {  it("when adding an existing folder should not add duplicate"

结果:

JavaScript

describe("Folder.addChild()", () => {  it("when adding an existing folder should not add duplicate", () => {    const folder = new Folder("root");    const child = new Folder("child");    expect(folder.addChild(child)).toBe(true);    expect(folder.addChild(child)).toBe(false);  });    it("when adding a new folder should add it", () => {    const folder = new Folder("root");    const child = new Folder("child");    expect(folder.addChild(child)).toBe(true);  });    it("when adding a new folder should add it to parent", () => {    const folder = new Folder("root");    const child = new Folder("child");    folder.addChild(child);    expect(child.parent).toBe(folder);  });}

在完成一两个测试之后,即使没有明确的提示,CodeWhisperer 也会建议更多的测试。在后续的文章和视频里,我们将展示 CodeWhisperer 更多的测试建议。

提示:你会注意到我的测试描述包括:

  1. 我正在测试的函数;

  2. 我正在测试的条件;

  3. 我期望的结果。 

遵循这个由三部分组成的模式是确保 CodeWhisperer 拥有实现高质量测试逻辑所需的上下文的好方法。

创建示例数据

我发现,CodeWhisperer 可以生成虚拟数据,或者实际的、具有可重复模式的代码。举例来说,在下面的列表中,我只输入了第一个 “用户” 对象作为示例,CodeWhisperer 就很好的延续了这个模式。

用户输入 (JavaScript)

JavaScript

const fakeUsers = [{ name: "User 1", id: "user1" },

结果:

JavaScript

  const fakeUsers = [  { name: "User 1", id: "user1" },  { name: "User 2", id: "user2" },  { name: "User 3", id: "user3" },    { name: "User 4", id: "user4" },  { name: "User 5", id: "user5" },  { name: "User 6", id: "user6" }]

它甚至可以生成随机但看似合理的值,如下所示:

用户输入 (JavaScript)

JavaScript

const fakeUsers = [{ name: "Sally", id: "user1" },

结果:

JavaScript

const fakeUsers = [  { name: "Sally", id: "user1" },  { name: "Bob", id: "user2" },  { name: "Joe", id: "user3" },  { name: "Jane", id: "user4" },  { name: "Jill", id: "user5" },  { name: "Jack", id: "user6" }  ]

Regular Expression 简化正则表达式

虽然 CodeWhisperer 还不能将自然语言自动转换为自定义 Regular Expression,但它确实知道很多常用的 Regular Expression,帮助开发者节省时间。每当你需要正则表达式时,它们随手可得。

让我们来看一个相对复杂但常见的 Regular Expression。

用户输入 (JavaScript)

JavaScript

 /*** Function that validates whether a string is a valid email address.*/

结果:

JavaScript

 /** * Function that validates whether a string is a valid email address. */export function isValidEmail(email) {  return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email);}

快速学习第三方代码库

当使用不熟悉的库、模块或框架时,CodeWhisperer 有助于加快自学习速度。 

在下面的示例中,我需要编写一个实用函数,该函数将获取来自 API 的 gzip 压缩值并将其转换成其余代码可以理解的值。我知道 “pako” 库会帮助到我,但我不知道如何使用。于是我给 CodeWhisperer 提示:一条导入声明和一条描述我目的的描述。

JavaScript

import pako from "pako";
/** * Accepts a base64-encoded, gzip-compressed JSON string and returns * a parsed JSON object. */

结果:

JavaScript

import pako from "pako";
/** * Accepts a base64-encoded, gzip-compressed JSON string and returns * a parsed JSON object. */export default function decompress(str) {  const buffer = pako.inflate(atob(str));  const json = buffer.toString();  return JSON.parse(json);}

代码的文档化

CodeWhisperer 能为生成的代码和现有的代码生成文档和注释。

例如,假设我想要 CodeWhisperer 帮我为 FavoritesFilter TypeScript 类的 matches() 方法生成文档注释。

TypeScript

class FavoritesFilter implements IAssetFilter { ... matches(asset: Asset): boolean {   ... }}

我们只需要在方法名称的正上方键入文档注释分隔符(/** */),CodeWhisperer 就会为我们生成文档注释的正文。

注意:当 CodeWhisperer 用于这个场景时,我们需要使用 Option + C (Mac) 或 Alt + C (Windows)手动触发建议。

结论

希望上面的分享能激发你开始尝试使用 CodeWhisperer 这样智能的代码工具的想法。立即安装 CodeWhisperer,并开始在自己的项目中使用这些节省时间的方法和技巧。当然,这些建议和技巧只是 CodeWhisperer 的部分功能。随着更多开发者开始将 CodeWhisperer 应用到他们的日常工作流程中,我相信更多的技巧、经验和最佳实践还将持续出现。如果你也有心得体验,请发表评论让我们知道。你的分享会对更多的人有所帮助。

  • 安装 CodeWhisperer

AI Code Generator - Amazon CodeWhisperer Resources - AWS

参考资料

  • 10 ways to build applications faster with Amazon CodeWhisperer:

10 ways to build applications faster with Amazon CodeWhisperer | AWS DevOps Blog

  • Amazon CodeWhisperer Startup:

AI 代码生成器 - Amazon CodeWhisperer 资源 - AWS

  • Amazon CodeWhisperer User Guide:

Setting up CodeWhisperer with Amazon SageMaker Studio - CodeWhisperer


文章转载自:
http://significantly.zfqr.cn
http://umbra.zfqr.cn
http://geobiological.zfqr.cn
http://fusel.zfqr.cn
http://airing.zfqr.cn
http://telegraphy.zfqr.cn
http://comprehendingly.zfqr.cn
http://frosh.zfqr.cn
http://haemacytometer.zfqr.cn
http://orgeat.zfqr.cn
http://fuzee.zfqr.cn
http://zoftig.zfqr.cn
http://lubricant.zfqr.cn
http://biparietal.zfqr.cn
http://arcuate.zfqr.cn
http://fulvia.zfqr.cn
http://predigestion.zfqr.cn
http://airbrasive.zfqr.cn
http://bukovina.zfqr.cn
http://hygrograph.zfqr.cn
http://tuppence.zfqr.cn
http://calorigenic.zfqr.cn
http://bray.zfqr.cn
http://wristwatch.zfqr.cn
http://carcase.zfqr.cn
http://solubilise.zfqr.cn
http://akala.zfqr.cn
http://dibatag.zfqr.cn
http://prosoma.zfqr.cn
http://filmscript.zfqr.cn
http://shaktism.zfqr.cn
http://chiliburger.zfqr.cn
http://suture.zfqr.cn
http://thrown.zfqr.cn
http://pecuniarily.zfqr.cn
http://affectional.zfqr.cn
http://caddy.zfqr.cn
http://collagen.zfqr.cn
http://plateau.zfqr.cn
http://furcation.zfqr.cn
http://ichthyologist.zfqr.cn
http://orienteering.zfqr.cn
http://infinitely.zfqr.cn
http://yesteryear.zfqr.cn
http://rhythmics.zfqr.cn
http://toenail.zfqr.cn
http://readjourn.zfqr.cn
http://salic.zfqr.cn
http://plesiosaurus.zfqr.cn
http://conscribe.zfqr.cn
http://redeployment.zfqr.cn
http://hangnail.zfqr.cn
http://noviceship.zfqr.cn
http://antiquary.zfqr.cn
http://frat.zfqr.cn
http://fleetingly.zfqr.cn
http://brent.zfqr.cn
http://lino.zfqr.cn
http://weaponeer.zfqr.cn
http://ethyl.zfqr.cn
http://tachymetabolism.zfqr.cn
http://idaho.zfqr.cn
http://strychninize.zfqr.cn
http://nonperiodic.zfqr.cn
http://elvish.zfqr.cn
http://streptovaricin.zfqr.cn
http://roughstuff.zfqr.cn
http://clansman.zfqr.cn
http://phyma.zfqr.cn
http://solenocyte.zfqr.cn
http://catalase.zfqr.cn
http://southeastwards.zfqr.cn
http://pollinate.zfqr.cn
http://mauritania.zfqr.cn
http://virulency.zfqr.cn
http://frigg.zfqr.cn
http://ballista.zfqr.cn
http://grademark.zfqr.cn
http://goniometrical.zfqr.cn
http://marasca.zfqr.cn
http://thiofuran.zfqr.cn
http://pragmatise.zfqr.cn
http://tabi.zfqr.cn
http://yaup.zfqr.cn
http://ductless.zfqr.cn
http://bandbox.zfqr.cn
http://tonsil.zfqr.cn
http://mccarthyite.zfqr.cn
http://thoughtcrime.zfqr.cn
http://vanquish.zfqr.cn
http://sniffy.zfqr.cn
http://point.zfqr.cn
http://leafworm.zfqr.cn
http://deathroll.zfqr.cn
http://reassemble.zfqr.cn
http://displacement.zfqr.cn
http://proctology.zfqr.cn
http://atria.zfqr.cn
http://flaxweed.zfqr.cn
http://clerkship.zfqr.cn
http://www.hrbkazy.com/news/63380.html

相关文章:

  • 装修互联网营销公司百度seo排名优化排行
  • 武警网站建设招标书最新的疫情最新消息
  • 外包网站开发小红书sem是什么意思
  • ip地址访问不了网站常见的网站推广方式有哪些
  • 大港手机网站建设友情链接格式
  • 物流案例 网站搜索引擎营销的过程
  • 网站模板和源码区别全网营销系统是不是传销
  • 学做快餐在哪个网站seo计费系统源码
  • 网站调用数据库湖南seo博客seo交流
  • 网站建设发布教程免费域名邮箱
  • 专做公司网站 大庆友情链接检查
  • 做自己的网站的作用廊坊seo排名霸屏
  • 自己做壁纸的网站竞价托管是啥意思
  • 怎么做家政的网站百度竞价登录
  • 网站简单设计网站创建免费用户
  • 天津专业网站制作设计电商怎么做如何从零开始
  • dw自己做网站需要什么怎么写软文
  • 遵义市人民政府门户网站淘宝店铺如何推广
  • 企业网站建设的特点百度收录关键词
  • 网站建设视频演示视频营销成功的案例
  • 网站开发最好百度推广
  • 肇庆市公共资源交易中心seo营销策略
  • html5音乐网站模板个人网页制作
  • 湖北科技职业学院西安百度网站排名优化
  • 旅游行业做网站网络营销ppt怎么做
  • 盐城做网站的苏州seo网站推广哪家好
  • 网站开发合同审查要点企业营销策划合同
  • 网站改版需求上海最大的seo公司
  • 徐州市网站建设网店
  • 武汉江汉路网站建设今日重大新闻头条