AI制作社交名片教程:小白也能轻松上手的前端技能

thbcm阅读(179)

原标题:只需几步,小白也能用 AI 做出精致社交名片!

【用 AI 制作个人社交名片】

让小白也能轻松掌握前端技能

制作如下的个人社交名片

一起来学习

清晰的任务拆解思维

实用的提示词编写技巧

零基础友好的 AI 辅助开发体验

现在开始我们的 AI 编程打怪升级之旅吧~

任务拆解思维

整体到局部

将大任务分解为小任务是一项重要的能力。

以制作名片为例,我们可以这样拆解:

循序渐进

按照”先有后优”的原则,我们的开发过程是:

  • 先搭建基础框架
  • 再实现核心功能
  • 最后进行美化优化

接下来进入实操阶段,豆包MarsCode 启动!

分步骤拆解和实操

生成框架卡片

第一步让豆包MarsCode 生成初步框架

我想要制作一张名片,请使用常用的大小帮我用html代码制作一张名片。

为什么这样写呢?

  • 明确目标为【制作名片】
  • 指定要求为【常用大小】
  • 限定格式为【html 代码】

点击图片查看具体操作流程

接下来观察 AI 返回的代码,关注以下几点:

  • 整体结构是否完整
  • 尺寸是否合理
  • 基础样式是否存在

名片排版

将卡片分为左右两份,左边占35%,右边占剩余的65%。
左边区域使用清新的底色,使用 photo.png 作为头像;右边区域放置文字,所有文字左端对齐。

通过这段话,我们向豆包MarsCode 明确了三个需求:

  • 明确比例为【35:65】
  • 指定内容为【底色、头像、文字】
  • 描述文字及头像位置

点击图片查看具体操作流程

样式优化

接下来将针对配色、字体、排版及样式进行优化

使用「淡紫色和白色」的优化样式。

点击图片查看具体操作流程

使用「商务专业风格」方案优化我的字体。

点击查看具体操作流程

在上面的基础上,为标题、职位、联系信息(电话和邮箱)三项字体设计一套大小、配色方案,注意使用内联样式。

点击图片查看具体操作流程

在上面的基础上,右侧字体的“电话”、“邮箱” 使用 svg 图标元素,注意图标元素和文字元素水平上一定要对齐,使用 div 对齐。

点击图片查看具体操作流程

以上调整完毕后填入个人信息就OK啦!

使用个人信息

去掉“电话”“邮箱”两个词,使用我的个人信息:


云中江树


LangGPT作者


电话 123456789


邮箱 ethereal_ai@hotmail.com

点击图片查看具体操作流程

导出卡片

使用浏览器节点截图功能即可get成品~

点击图片查看具体操作流程

以上就是本期教程啦!

大家是否收获满满准备狂撒名片了呢?

点击【豆包MarsCode】即刻学习更多AI教程

Meta标签教程:提升网站SEO与用户体验的利器

thbcm阅读(201)

Meta标签HTML文档<head>部分的元素,它们提供了关于页面的元数据。这些标签对于搜索引擎优化(SEO)至关重要,因为它们帮助搜索引擎理解页面内容,并影响页面在搜索结果中的显示方式。本文将带你了解Meta标签的基础知识,并推荐一个在线工具,帮助你轻松生成Meta标签。

1. Meta标签的重要性

Meta标签不仅对搜索引擎至关重要,也对浏览器的行为有指导作用。它们可以控制页面的缓存行为、定义页面描述、指定关键词等,从而提高页面的可见性和用户体验。

2. HTTP-EQUIV和NAME属性

Meta标签主要分为HTTP-EQUIVNAME两大类:

HTTP-EQUIV属性

  • Content-TypeContent-Language:定义页面使用的字符集和语言。
  <meta http-equiv="Content-Type" content="text/html; Charset=UTF-8">
  <meta http-equiv="Content-Language" content="en">

  • Refresh:自动刷新页面或跳转到另一个页面。
  <meta http-equiv="Refresh" content="5; url=https://example.com">

  • Expires:设置页面在缓存中的过期时间。
  <meta http-equiv="Expires" content="0">

  • Pragma:禁止浏览器从本地缓存中调阅页面内容。
  <meta http-equiv="Pragma" content="no-cache">

NAME属性

  • Keywords:为搜索引擎提供关键字列表。
  <meta name="Keywords" content="SEO, 优化, 搜索引擎">

  • Description:提供网页的简短描述,通常显示在搜索结果中。
  <meta name="Description" content="这是关于SEO优化的详细描述。">

  • Robots:告诉搜索引擎哪些页面需要索引。
  <meta name="Robots" content="index, follow">

3. 在线Meta标签生成工具推荐

管理Meta标签可能看起来有些复杂,特别是对于初学者来说。幸运的是,有一个在线工具可以帮助你轻松生成这些标签:W3Cschool在线Meta标签生成工具

这个工具允许你根据需要定制Meta标签,你只需输入相关信息,它就能生成相应的HTML代码。以下是使用这个工具的一些优点:

  • 用户友好:直观的界面,无需任何技术知识即可操作。
  • 定制化:根据不同页面的需求,定制不同的Meta标签。
  • 即时生成:输入信息后,即时生成HTML代码,方便复制粘贴到你的网页中。

在线Meta标签生成工具的用途

在线Meta标签生成工具的用途非常广泛,它们可以帮助网站开发者和内容管理员在创建和管理网站时提高效率和效果。以下是一些主要用途:

  1. 搜索引擎优化(SEO)
    • 通过设置关键词(Keywords)和描述(Description)来提高页面在搜索引擎中的可见性和排名。
    • 使用Robots属性控制搜索引擎爬虫的索引行为,比如禁止索引(noindex)或禁止跟踪(nofollow)。
  2. 用户体验优化
    • 通过Content-Language属性指定页面语言,帮助搜索引擎正确地识别和展示页面内容。
    • 使用Refresh属性自动刷新页面或重定向到另一个页面,提升用户体验。
  3. 内容管理
    • 设置ExpiresPragma属性来控制页面缓存,确保用户访问的是最新内容。
    • 使用AuthorCopyright属性标注内容的作者和版权信息,保护知识产权。
  4. 技术兼容性和浏览器行为控制
    • 通过MSThemeCompatible属性控制是否在IE浏览器中使用XP主题。
    • 使用Window-target属性控制页面在新窗口或当前窗口打开,防止页面被框架嵌套。
  5. 安全和隐私
    • 通过Set-Cookie属性设置和管理用户会话和个性化设置。
    • 使用Pics-label属性设置网页的内容分级,保护未成年人免受不适当内容的影响。
  6. 网站维护和更新
    • 利用revisit-after属性告诉搜索引擎何时重新访问页面,加快网站更新后的索引速度。
  7. 跨平台和多设备适配
    • 通过Content-Type属性指定字符集,确保网站内容在不同设备和浏览器上正确显示。
  8. 社交媒体和内容共享
    • 虽然在线Meta标签生成工具不直接生成社交媒体特定的Meta标签,但基础的Meta标签设置可以辅助社交媒体平台更好地理解和展示分享的内容。
  9. 网站分析和监控
    • 通过Generator属性标识内容管理系统或编辑器,有助于网站分析和监控工具识别内容来源。

在线Meta标签生成工具通过简化Meta标签的创建和管理过程,使得网站管理员能够更专注于内容创作和网站发展策略,同时确保网站在技术和市场上保持竞争力。

在线Meta标签生成工具支持的标签属性

W3Cschool在线Meta标签生成工具支持以下Meta标签属性:

类别 属性名称 描述
HTTP-EQUIV Content-Type 定义页面使用的字符集。
HTTP-EQUIV Content-Language 定义页面使用的语言。
HTTP-EQUIV Refresh 控制页面自动刷新或跳转。
HTTP-EQUIV Expires 设置页面在缓存中的过期时间。
HTTP-EQUIV Pragma 控制页面缓存行为。
HTTP-EQUIV Set-Cookie 设置cookie。
HTTP-EQUIV Window-target 控制页面在哪个窗口打开。
HTTP-EQUIV Pics-label 设置网页的RSAC等级评定。
HTTP-EQUIV Page-Enter 和 Page-Exit 控制页面载入和退出时的特效。
HTTP-EQUIV MSThemeCompatible 控制是否在IE中关闭XP主题。
HTTP-EQUIV IE6 页面生成器信息。
HTTP-EQUIV Content-Script-Type 指明页面中脚本的类型。
NAME Keywords 为搜索引擎提供关键字列表。
NAME Description 提供网页的简短描述。
NAME Robots 告诉搜索引擎哪些页面需要索引。
NAME Author 标注网页的作者或制作组。
NAME Copyright 标注版权信息。
NAME Generator 编辑器的说明。
NAME revisit-after 告诉搜索引擎何时重新访问页面。

这些属性涵盖了大多数常用的Meta标签功能,可以帮助用户根据不同的需求生成相应的Meta标签。使用这个在线工具,用户可以快速生成适合自己网页的Meta标签,以优化搜索引擎的索引和提高用户体验。

如何使用W3Cschool在线Meta标签生成工具

使用W3Cschool在线Meta标签生成工具生成Meta标签的步骤如下:

  1. 访问工具页面: 打开浏览器,访问W3Cschool在线Meta标签生成工具的网页。
  2. 输入信息: 在工具页面上,你会看到不同的输入框,用于填写不同的Meta标签属性。根据你的需求,填写以下信息:
    • 字符集:选择或输入页面使用的字符集,如UTF-8
    • 页面描述:输入页面的简短描述,这将用于搜索引擎结果页的摘要。
    • 关键词:输入与页面内容相关的关键词,用逗号分隔。
    • 刷新时间:如果需要页面自动刷新,输入刷新的时间(秒)和目标URL。
    • 页面过期时间:设置页面在缓存中的过期时间。
    • 作者和版权:输入作者名称和版权信息。
    • 其他Meta标签:根据需要,填写其他Meta标签的名称和内容。
  3. 生成Meta标签: 填写完所有必要的信息后,点击页面上的“生成”按钮。工具会根据你提供的信息生成相应的Meta标签代码。
    <!--Meta 标签生成器 By http://www.w3cschool.cn/-->
    <META NAME="Title" CONTENT="在线Meta标签生成工具 - 定制化生成Meta标签 - W3Cschool">
    <META NAME="Author" CONTENT="编程狮">
    <META NAME="Subject" CONTENT="Meta 标签生成器">
    <META NAME="Description" CONTENT="W3Cschool提供的在线Meta标签生成工具可以帮助用户根据需求定制Meta标签,包括HTTP标题信息和页面描述信息。该工具支持生成Content-Type、Content-Language、Refresh等多种HTTP-EQUIV标签,以及Keywords、Description等NAME标签,助力网站优化和搜索引擎排名。">
    <META NAME="Keywords" CONTENT="Meta标签生成工具, HTTP-EQUIV, 页面描述信息, 网站优化, 搜索引擎排名, W3Cschool">
    <META NAME="Generator" CONTENT="Meta 标签生成器">
    <META NAME="Language" CONTENT="zh-CN">
    <META NAME="Expires" CONTENT="Wed, 27 Sep 2026 08:21:57 GMT">
    <META NAME="Abstract" CONTENT="Meta 标签生成器">
    <META NAME="Copyright" CONTENT="www.w3cschool.cn">
    <META NAME="Designer" CONTENT="编程狮">
    <META NAME="Publisher" CONTENT="Publisher">
    <META NAME="Revisit-After" CONTENT="请在此输入标题,Meta 标签生成器 Days">
    <META NAME="Distribution" CONTENT="Global">
    <META NAME="Robots" CONTENT="All">
  4. 复制代码: 生成的Meta标签代码会出现在页面的下方。检查代码是否符合你的需求,然后复制这些代码。
  5. 粘贴到网页: 打开你的HTML文件,找到<head>标签部分,将复制的Meta标签代码粘贴到<head>标签内部。
  6. 保存并测试: 保存HTML文件的更改,并在浏览器中打开你的网页以测试Meta标签是否生效。你可以通过查看网页源代码来确认Meta标签是否正确添加,或者使用浏览器的开发者工具来检查Meta标签。
  7. 提交给搜索引擎(如果需要): 如果你更新了网站的Meta标签,并且希望搜索引擎尽快索引更新后的内容,可以通过搜索引擎的网站管理员工具提交你的网站或页面。

使用这个工具可以大大简化Meta标签的生成过程,使得即使是没有编程背景的用户也能轻松地为他们的网页添加或更新Meta标签。

4. 结语

Meta标签是优化网站SEO和用户体验的重要工具。通过使用W3Cschool在线Meta标签生成工具,你可以轻松地为你的网站添加或更新Meta标签,提高网站在搜索引擎中的排名,增强用户体验。不妨现在就试试这个工具,让你的网站更加出色。

半小时学会搭建专业产品网站:豆包MarsCode教程

thbcm阅读(211)

原标题:用豆包MarsCode,半小时轻松学会搭建专业产品网站

教你快速搭建一个网站应用

手把手教零基础小白运用豆包MarsCode,从0到1打造自己的专属产品落地页

网页涵盖精美的个人产品简介页面、清晰的产品上架页面、个人兴趣社区入口等。

通过以上网页制作流程,你将掌握基础的豆包MarsCode 前端开发技能以及响应式网页设计原则,成为进阶 AI 编程学习者~

接下来就让我们一起进入网页应用搭建的学习!

课程准备

安装豆包MarsCode

在启动编码工作前,我们需要先下载安装豆包MarsCode 编程助手,本教程以在 Visual Studio Code 中为例。

打开 Visual Studio Code 扩展窗口,在搜索框搜索MarsCode,找到豆包MarsCode 后单击「install」,完成安装。

登录后即可使用豆包MarsCode 编程助手

为了顺利运行后续代码,你还需要完成 Node.jspnpm 的安装。

安装 Node.js

  1. 请先直接访问 Node.js 官网:https://nodejs.org/
  2. 下载并安装 LTS 版本 v18.20.5(长期支持版):
    • Windows:直接下载 .msi 安装包
    • Mac:直接下载 .pkg 安装包

  1. 验证安装: 打开命令行(终端)输入:node --version

安装 pnpm

  1. 打开终端,输入以下命令:
   npm install -g pnpm

  1. 验证安装: 输入 pnpm --version,如果显示版本号即安装成功!

产品网站搭建

准备好 Node.js、pnpm 后,就可以开始搭建网站框架了。

Step1

我们可以直接向 AI 助手提问:“请帮我创建一个 AI 产品落地页的基础框架,包含导航栏和 Hero 区域。产品名称是'口袋 AI',主标语是'将世界知识装进口袋',使用简单的 HTML 和 CSS 即可,配色以蓝色为主。

在 AI 助手的帮助下,我们成功生成了如下的产品网页页面。

Step2

我们的网页还需要一个能够展示产品特性的区域,我们可以继续向 AI 助手求助:请给网页添加一个产品特性展示区域,要求使用卡片式布局并给每个特性配上简单的图标。需展示的特性有如下四个:

  1. 基于中文模型优化的中文对话体验;
  2. 针对中文用户优化的交互界面;
  3. 智能网络错误处理与重试机制;
  4. 更适合中国用户的功能定制。

在豆包MarsCode AI 助手的协助下,我们成功为页面添加了产品特性展示区域。

Step3

如果还想让页面信息更加全面,我们可以向 AI 助手提出:“请在页面底部添加版本信息、展示区域、下载引导区域(CTA),制作简单的页脚并保持简洁的设计风格。

进行到这里,完整的产品网站就搭建成功了。

网站部署上线

一个简易的产品落地页完成后,具体视觉优化的部分可参考上节课的内容,接下来网站部署上线的部分,会用到 vercel。

想象 Vercel 就像是一个神奇的“网站搬运工”:
自动把你的代码变成可访问的网站
提供全球加速服务
完全免费的个人项目托管
极速部署,实时预览

进入 Dashboard

登录后你会看到 Vercel 控制台界面

导入项目

  1. 点击 “Import Project” 或 “dd New Project“;
  2. 选择 “Continue with GitHub“;
  3. 在列表中找到你的项目 pocket-ai-landing

配置部署

通常情况下,保持默认配置即可,包括:

  • Framework Preset: Next.js
  • Root Directory: ./
  • Build Command: next build

点击部署

  1. 点击 “Deploy” 按钮;
  2. 等待约 1-2 分钟;
  3. 看到绿色的 “Congratulations!” 就成功了!

部署成功后你将会获得一个域名,类似:https://aurora-landing-woad.vercel.app/,这样你就获得了自己的专属网页链接~

以上就是《用豆包MarsCode,半小时轻松学会搭建专业产品网站》的全部内容了,感兴趣的同学快使用豆包MarsCode 尝试一下吧!

【学习路线】Python自动化运维 详细知识点学习路径(附学习资源)

thbcm阅读(180)

学习本路线内容之前,请先学习Python的基础知识

其他路线:

Python基础 >>

Python进阶 >>

Python爬虫 >>

Python数据分析(数据科学) >>

Python 算法(人工智能) >>

Python Web开发 >>

Python自动化运维 >>

符号表解释:

可根据知识点前的符号按需选学,并获取知识点描述和学习资源。

 必学:核⼼知识点,经常⽤到。

建议学:重要知识点,专业⼈⼠的基⽯。

⾯试重点:经常出现的⾯试知识点。

可有可⽆:边缘区域,不是必须探索的地⽅。

知识描绘:知识点描述,快速理解。

学习资源:关联的学习资源。

学习⽬标:阶段性⽬标。

学习路线:自动化运维


描述: Python自动化运维是使用Python编程语言来简化和自动化系统管理和运维任务的过程。这包括服务器管理、配置管理、应用程序部署、监控和报警、日志分析、数据备份等各种运维活动。

目标: 自动化备份系统,开发一个自动化备份系统,能够定期备份关键数据和配置,并支持自动化恢复。


学习资源:


1、常见的自动化运维

  • 服务器管理:管理服务器的基本任务,如远程登录、文件传输、系统配置和维护,都可以通过Python自动化来实现。例如,使用Paramiko库可以进行SSH连接和执行远程命令。
  • 配置管理:使用工具如Ansible、SaltStack或自编写Python脚本,可以自动化配置管理,确保服务器和应用程序的配置与期望一致。
  • 应用程序部署:利用Python脚本,可以自动部署应用程序、更新代码、重启服务等,以实现持续集成和持续部署(CI/CD)。
  • 监控和报警:使用Python库,如Prometheus、Grafana、Nagios等,可以监控服务器和应用程序的性能和健康状况,并设置报警规则,以便在问题发生时及时采取措施。
  • 日志分析:使用Python编写脚本分析服务器和应用程序的日志,以便检测问题、识别趋势和改进性能。
  • 自动化任务调度:使用工具如Celery或APScheduler,可以自动化任务的调度和执行,例如定期备份数据库、清理日志文件等。
  • 容器编排和管理:使用Python脚本或库,可以与容器编排工具(如Docker、Kubernetes)集成,以管理容器化应用程序的部署和维护。
  • 云服务管理:利用云服务提供商的API和Python SDK,可以自动化管理云资源,例如创建虚拟机、配置存储、设置负载均衡等。
  • 数据备份和恢复:编写Python脚本来自动化数据备份和恢复任务,确保数据的安全性和可用性。
  • 安全性和合规性:使用Python编写脚本执行安全性扫描、合规性检查和漏洞管理,以确保系统的安全性。

2、Python 常用运维库

  • Paramiko:Paramiko是一个Python库,用于SSH协议的实现,它允许您在远程服务器上执行命令、上传和下载文件,以及进行远程操作。这对于远程服务器管理非常有用。
  • Fabric:Fabric是一个简化SSH连接和远程命令执行的库。它允许您轻松编写Python脚本来执行批量操作,例如在多个服务器上部署代码或执行任务。
  • Ansible:Ansible是一个功能强大的自动化和配置管理工具,它使用Python编写,但不需要在目标主机上安装任何额外的软件代理。Ansible使用YAML语法来描述任务和配置。
  • Boto3:Boto3是Amazon Web Services(AWS)的Python SDK,它允许您通过Python编写脚本管理AWS资源,包括EC2实例、S3存储桶、RDS数据库等。
  • Psutil:Psutil是一个跨平台的Python库,用于监控系统资源和进程。它可以帮助您获取关于CPU、内存、磁盘和网络的信息,以及管理进程。
  • Requests:Requests是一个流行的Python库,用于HTTP请求。它可以帮助您与Web服务进行通信,例如从API获取数据或发送POST请求。
  • Docker SDK for Python(docker-py):如果您使用Docker容器,docker-py是一个用于管理Docker容器和镜像的Python SDK。
  • Loguru:Loguru是一个易于使用的日志记录库,它提供强大的日志记录和日志旋转功能,对于分析和故障排除非常有帮助。
  • Schedule:Schedule是一个Python库,用于执行定时任务。它可以帮助您自动执行周期性任务,例如备份、日常清理等。
  • Pytest:Pytest是一个流行的Python测试框架,用于编写和运行自动化测试。在运维中,它可以用于编写和运行各种测试来验证系统和应用程序的正确性

3、常用运维工具

3.1 配置管理工具:

  • Ansible:自动化配置管理工具,用于自动化应用程序部署和配置管理。
  • Puppet:用于配置自动化和集中化管理的工具。
  • Chef:用于基础设施自动化和应用程序配置管理的工具。
  • SaltStack:配置管理、远程执行和事件驱动自动化的工具。

3.2 

容器编排工具:

  • Docker Swarm:Docker的原生容器编排工具,用于管理Docker容器集群。
  • Kubernetes:用于自动化容器部署、扩展和管理的开源容器编排平台。

3.3 监控和性能管理工具:

  • Prometheus:用于监控和警报的开源系统。
  • Nagios:用于监控网络和系统的开源工具。
  • Grafana:用于可视化监控数据和创建仪表板的工具。

3.4 日志管理工具:

  • ELK Stack(Elasticsearch、Logstash、Kibana):用于日志收集、处理和可视化的组合工具。
  • Splunk:用于实时日志分析、监控和安全分析的商业工具。

3.5 自动化部署工具:

  • Jenkins:用于持续集成和持续交付(CI/CD)的开源自动化工具。
  • Travis CI:托管的CI/CD服务,适用于GitHub项目。
  • CircleCI:托管的CI/CD服务,支持多种代码托管平台。

3.6 版本控制工具:

  • Git:用于版本控制和代码管理的分布式版本控制系统。

3.7 安全性和合规性工具:

  • Nessus:用于漏洞扫描和安全性分析的漏洞扫描工具。
  • OSSEC:开源主机入侵检测系统,用于监视和检测安全事件。
  • Chef InSpec:用于自动化合规性测试的工具。

3.8 云管理和自动化工具

  • Terraform:基础设施即代码(IaC)工具,用于自动化云资源的创建和管理。
  • AWS CloudFormation:Amazon Web Services(AWS)的基础设施即代码工具。
  • Azure Resource Manager:Microsoft Azure的基础设施即代码工具。

3.9 

备份和恢复工具

  • Veeam:用于虚拟化和云环境备份和恢复的工具。
  • Bacula:用于备份、恢复和数据管理的开源工具。

【学习路线】Python数据分析(数据科学) 详细知识点学习路径(附学习资源)

thbcm阅读(193)

学习本路线内容之前,请先学习Python的基础知识

其他路线:

Python基础 >>

Python进阶 >>

Python爬虫 >>

Python数据分析(数据科学) >>

Python 算法(人工智能) >>

Python Web开发 >>

Python自动化运维 >>

符号表解释:

可根据知识点前的符号按需选学,并获取知识点描述和学习资源。

⭐️必学:核心知识点,经常用到。

建议学:重要知识点,专业人士的基⽯。

面试重点:经常出现的面试知识点。

可有可无:边缘区域,不是必须探索的地方。

知识描绘:知识点描述,快速理解。

学习资源:关联的学习资源。

学习目标:阶段性目标。


学习路线:自动化运维


描述: Python 数据分析是使用 Python 编程语言进行数据收集、处理、分析和可视化的过程,通常用于从大型数据集中提取有价值的信息和见解。它包括使用库和工具如 pandas、NumPy、Matplotlib 和 Seaborn 来执行数据操作和可视化,以支持数据驱动的决策和问题解决。这是数据科学领域中的关键技能,广泛应用于各种行业,包括商业、医疗保健、金融和科学研究。

目标: 销售数据分析,分析公司的销售数据,包括销售额、销售趋势、最畅销产品等,并生成可视化报告。


学习资源:


一、环境搭建

  • ⭐️Anaconda

描述: Anaconda 是一个开源的数据科学和机器学习平台,旨在简化数据分析和科学计算的工作流程。它包括一个强大的集成开发环境(IDE),称为 Anaconda Navigator,以及一个包管理器 Conda。Anaconda 提供了许多常用的数据科学工具和库的预安装,如 NumPy、pandas、Matplotlib、Jupyter Notebook 和 scikit-learn,使用户能够轻松地开始数据分析和机器学习项目。

软件资源>>>

  • Jupyter Notebook

描述: Jupyter Notebook 是一个交互式计算环境,广泛用于数据科学和编程教育。它允许用户创建和共享文档,其中可以包含实时运行的代码、文本、图像和可视化结果。

资源:

二、常用类库

1、⭐️NumPy

1.1 数组: 

  • NumPy 最重要的数据结构是 ndarray,它是一个多维数组对象。这些数组可以包含相同类型的元素,通常是数值。
  • 数组的维度称为轴(axes),数组的维度数量称为秩(rank)。
  • 通过 numpy.array() 函数或直接使用列表创建 NumPy 数组。

1.2 索引: 

  • NumPy 数组可以使用整数索引来访问元素,索引从 0 开始。
  • 可以使用负数索引从数组的末尾开始访问元素。

1.3 切片: 

  • 切片是一种从数组中提取子数组的方法,可以用于选择数组的一部分。
  • 切片的语法是 array[start:stop:step],其中 start 表示起始索引,stop 表示结束索引(不包括),step 表示步长。

1.4 多维数组: 

  • NumPy 支持多维数组,可以是一维、二维或更高维度。
  • 多维数组的元素可以通过逗号分隔的索引访问,例如 array[0, 1] 表示访问第一行第二列的元素。

1.5 函数: 

  • NumPy 提供了大量用于数值计算的函数,包括数学、统计、线性代数等。
  • 一些常用的 NumPy 函数包括 numpy.sum()、numpy.mean()、numpy.std()、numpy.dot() 等。
  • NumPy 还支持广播(broadcasting),使得对不同形状的数组进行运算更加灵活。

2、⭐️Pandas


2.1 Series:

  • Series 是 pandas 中的一维标记数组,类似于 NumPy 数组或 Python 列表,但具有数据标签(索引)。
  • Series 由两部分组成,数据部分和索引部分,可以将它看作是一列数据与该列数据的标签。
  • 创建 Series 可以使用 pandas.Series() 函数,传入数据列表或 NumPy 数组。

2.2 DataFrame:

  • DataFrame 是 pandas 中的二维数据结构,类似于电子表格或 SQL 表格,它由多个 Series 对象组成,每个 Series 代表一列数据。
  • DataFrame 是一个表格,每列可以包含不同类型的数据,但是每列的数据类型必须相同。
  • 可以使用 pandas.DataFrame() 函数来创建 DataFrame,传入数据和列标签。

2.3 索引:

  • 索引是 pandas 中非常重要的概念,它用于标识和访问 Series 和 DataFrame 中的数据。
  • 可以自定义索引,也可以使用默认整数索引。
  • 索引在数据对齐和数据检索中起着关键作用。

2.4 对齐:

  • 对齐是 pandas 的一个强大功能,它确保在进行操作时,两个对象的索引正确对齐,从而避免数据混乱或错误。
  • 当对两个具有不同索引的 Series 或 DataFrame 执行操作时,pandas 会自动对齐它们的数据。

2.5 函数:

  • pandas 提供了丰富的函数和方法,用于数据操作和变换,包括数据的筛选、排序、合并、分组等。
  • 一些常用的 pandas 函数包括 head()、tail()、info()、describe()、groupby() 等。

2.6 统计:

  • pandas 支持对数据进行统计分析,包括计算均值、中位数、标准差、最大值、最小值等。
  • 可以使用 mean()、median()、std()、max()、min() 等函数来执行这些统计操作。

3、数据处理


3.1 数据清洗:

  • 数据清洗是数据预处理的重要步骤,用于处理数据中的错误、缺失值、重复项和不一致性。
  • 常见的数据清洗任务包括删除重复行、填充缺失值、修复数据类型、处理异常值等,以确保数据质量。

3.2 层次化索引:

  • 层次化索引是 pandas 中的一项高级功能,允许在一个轴上拥有多个索引级别。
  • 这使得数据可以以更复杂的方式进行组织和检索,特别适用于处理多维数据,如多维时间序列数据。

3.3 数据连接:

  • 数据连接是将多个数据集合并为一个数据集的过程,通常根据某些共享的列(键)进行连接。
  • 常见的数据连接操作包括内连接、左连接、右连接和外连接,可以使用 pandas 的 merge() 函数执行这些操作。

3.4 数据合并:

  • 数据合并通常指的是将多个数据集水平合并,即在列方向上合并数据。
  • pandas 提供了 concat() 函数用于在不同数据集之间执行数据合并。

3.5 分组聚合:

  • 分组聚合是将数据分成不同的组,并对每个组应用聚合函数(如求和、平均值、计数等)的过程。
  • 可以使用 groupby() 函数将数据按照某个列或多个列进行分组,并应用聚合函数来生成汇总信息。

3.6 轴向旋转:

  • 轴向旋转是重新组织数据的操作,通常涉及将数据从长格式(长表)转换为宽格式(宽表)或反之。
  • 可以使用 pivot()、melt()、stack()、unstack() 等函数来执行轴向旋转操作。

4、数据可视化


4.1 ⭐️Matplotlib 

  • Matplotlib 是 Python 中最流行和最基础的数据可视化库之一,用于创建各种静态、交互式和动态的图表和图形。
  • 它提供了广泛的绘图功能,包括散点图、折线图、柱状图、饼图、热力图等。
  • Matplotlib 的绘图方式相对底层,需要用户手动设置图形的各个属性,因此有一定的学习曲线。
  • 通常与 Jupyter Notebook 等环境结合使用,用于数据探索和可视化。
  • 资源>>>

4.2 Seaborn 

  • Seaborn 是建立在 Matplotlib 之上的高级数据可视化库,旨在简化创建漂亮和信息丰富的统计图表。
  • 它提供了高级别的 API,可以轻松绘制各种统计图,包括分布图、箱线图、热力图、回归图等。
  • Seaborn 的样式和颜色调色板使得创建吸引人的可视化更加容易,而不需要大量的自定义设置。
  • 适用于数据分析、探索性数据分析(EDA)和报告生成。

4.3 Pyecharts 

  • Pyecharts 是一个基于 Echarts 的 Python 可视化库,它提供了一种简单的方式来创建交互式数据可视化。
  • Echarts 是一种流行的 JavaScript 图表库,Pyecharts 允许 Python 用户轻松利用 Echarts 的功能。
  • Pyecharts 支持多种图表类型,包括折线图、柱状图、散点图、地图等,以及自定义主题和样式。
  • 它适用于需要在 Web 应用程序中嵌入交互式图表的场景。

79关闯关:轻松掌握HTML+CSS,打造你的第一个网页

thbcm阅读(174)

想要踏入网页设计的奇妙世界,却不知从何下手?别担心!这个精心设计的HTML+CSS基础实战课程将带你开启一段激动人心的学习之旅。通过79个精心设计的关卡,你将逐步掌握创建精美网页的核心技能。

从零开始的网页设计之旅

无论你是完全的编程新手,还是想要进一步提升技能的爱好者,这个课程都能满足你的需求。我们将从最基础的概念开始,一步步引导你进入网页设计的精彩世界。

HTML:构建网页的骨架

HTML就像是建筑的框架,它为你的网页提供了基本的结构。在这个部分,你将学习如何:

  1. 创建你的第一个HTML文档
  2. 使用各种标签组织内容
  3. 插入图片、链接和表格等元素 通过这些知识,你将能够搭建起网页的基本框架,为后续的设计工作打下坚实基础。

CSS:为网页穿上漂亮外衣

如果说HTML是网页的骨架,那么CSS就是让它变得美丽动人的魔法。在这个环节,你将学习:

  1. 改变文本的颜色、大小和字体
  2. 设计网页的布局和背景
  3. 创建动画效果,让网页栩栩如生 掌握了CSS,你就能将简单的HTML文档变成视觉上令人惊叹的网页作品。

通过这79个精心设计的关卡,你将从一个对HTML和CSS一无所知的新手,成长为能够独立创建漂亮网页的开发者。这不仅仅是学习一项技能,更是打开一扇通向无限可能的大门。 准备好开始你的网页设计之旅了吗?让我们一起,通过HTML和CSS的魔力,将你的创意变为现实!

课程地址:

HTML+CSS基础实战课程https://www.w3cschool.cn/codecamp/newList/basehtml

轻松掌握网页设计神器:CSS圆角生成器让你的网站瞬间高大上

thbcm阅读(186)

在这个视觉至上的互联网时代,一个网站的美感可能决定了用户是驻足还是离开。而在众多设计元素中,圆角设计犹如画龙点睛之笔,能瞬间提升网页的质感和亲和力。今天,我们就来聊聊这个小小的设计神器——CSS圆角生成器,看看它如何让你的网站从平平无奇变身高大上。

圆角设计:小细节成就大美感

为什么圆角设计如此重要?

想象一下,你走进一间房子,所有的家具棱角都是尖锐的直角,你会觉得怎么样?没错,可能会感觉冷冰冰的,甚至有点不安全。同理,网页设计中的圆角就像是为界面添加了一层柔和的滤镜,让用户感觉更加舒适和友好。

  • 视觉舒适:圆角能减少视觉疲劳,让界面看起来更加柔和。
  • 引导注意:恰当的圆角设计可以巧妙地引导用户视线,突出重要元素。
  • 现代感:圆角设计是当前流行的设计趋势,能让你的网站看起来更加时尚现代。

圆角生成器:设计师的得力助手

虽然圆角设计很重要,但如果每次都要手动调整CSS代码,那可真是个苦差事。这就是圆角生成器大显身手的时候了!它就像是设计师的魔法棒,只需点点鼠标,就能变出完美的圆角效果。

玩转圆角生成器:从新手到专家

基础设置:边框样式和颜色

使用圆角生成器,你首先要做的就是设置边框的基本属性:

  1. 边框宽度:决定边框的粗细,常用1px2px
  2. 边框样式:可以选择实线、虚线、点状等多种风格。
  3. 边框颜色:选择一个与你的网站配色方案相符的颜色。比如,你可以这样设置:
    border-width: 1px;
    border-style: solid;
    border-color: rgb(120, 195, 0);

    这样就得到了一个1像素宽的绿色实线边框。

进阶技巧:自定义圆角半径

圆角的精髓就在于它的弧度。圆角生成器通常提供两种设置方式:

  1. 固定半径:所有角都使用相同的圆角半径,例如56px
    border-radius: 56px;

  2. 自定义半径:可以为每个角设置不同的半径,创造出独特的形状。
    border-top-left-radius: 56px;
    border-top-right-radius: 8px;
    border-bottom-left-radius: 8px;
    border-bottom-right-radius: 56px;

圆角设计的未来趋势

随着设计理念的不断演进,圆角设计也在不断发展。未来,我们可能会看到更多有趣的趋势:

  1. 动态圆角:随用户交互改变形状的圆角设计。
  2. 不规则圆角:打破传统,创造出更加有机的形状。
  3. 智能圆角:根据内容自动调整最佳圆角效果的AI辅助设计。

圆角设计看似简单,实则蕴含无限可能。通过圆角生成器,你可以轻松实现专业级的设计效果,让你的网站在视觉上脱颖而出。记住,在设计中,细节决定成败。一个恰到好处的圆角,可能就是你网站成功的关键一笔。所以,别再犹豫了,打开CSS圆角生成器,开始你的设计之旅吧。相信我,当你熟练运用这个工具后,你会发现网页设计变得如此简单而有趣。让我们一起,用圆润的线条,勾勒出网络世界的美好未来!

CodeGeeX:开发者的全能AI助手,让编程效率倍增

thbcm阅读(209)

在当今快节奏的软件开发世界中,效率就是生命。想象一下,有一位24小时待命的助手,能帮你生成代码、添加注释、编写测试、甚至进行代码审查,这将会如何改变你的工作方式?这不是科幻,而是CodeGeeX带来的现实。CodeGeeX,这位基于大模型的智能编程助手,正在悄然改变着开发者的日常工作。它就像一个全能的编程伙伴,随时准备帮你解决各种编程难题,大大提升你的工作效率。

智能编程的革命:CodeGeeX全方位提升开发体验

CodeGeeX不仅仅是一个简单的代码补全工具,它的功能之广泛,堪称开发者的瑞士军刀。让我们一起来看看这把”军刀”都有哪些锋利的”刀刃”。

代码生成与补全:告别重复劳动

还在为重复编写相似代码而烦恼吗?CodeGeeX可以根据你的需求智能生成代码片段,甚至是完整的函数。它就像是你的私人助理,总能准确理解你的意图,迅速提供你需要的代码。

自动注释与解释:代码一目了然

代码没有注释就像没有路标的迷宫。CodeGeeX可以自动为你的代码添加清晰的注释,同时还能解释复杂的代码逻辑。这不仅让你的代码更易于维护,也大大提高了团队协作的效率。

单元测试与代码审查:质量把关更轻松

编写单元测试常常被视为一项繁琐的工作,但CodeGeeX可以自动生成全面的单元测试,确保你的代码质量。此外,它还能进行代码审查,就像有一个经验丰富的同事随时为你指出代码中的潜在问题。

多语言互译与智能问答:突破语言障碍

在全球化的开发环境中,CodeGeeX的多语言互译功能可谓是一大亮点。它能够在300多种编程语言之间进行转换,让你轻松应对不同的技术栈。遇到棘手的技术问题?CodeGeeX还能充当你的智能问答助手,为你解答各种疑惑。

CodeGeeX:300+种编程语言的最佳搭档

CodeGeeX的强大之处不仅在于其功能的多样性,更在于其广泛的适用性。无论你是使用Python进行数据分析,还是用Java开发企业级应用,CodeGeeX都能成为你得力的助手。

全面覆盖主流IDE:开发环境随心选

CodeGeeX深知开发者对工具的挑剔。因此,它支持多种主流集成开发环境(IDE),包括Visual Studio Code、JetBrains系列IDE以及Visual Studio。无论你习惯哪种开发环境,CodeGeeX都能无缝集成,为你的编码之旅保驾护航。

实际应用案例:CodeGeeX如何改变开发流程

  • 快速原型开发:利用CodeGeeX的代码生成功能,开发者可以在短时间内完成基础框架的搭建,大大缩短项目的启动时间。
  • 代码质量提升:通过自动化的代码审查和单元测试生成,CodeGeeX帮助开发团队维持较高的代码标准,减少潜在的bug。
  • 跨语言项目协作:在需要将某个功能从一种语言移植到另一种语言的场景中,CodeGeeX的多语言互译功能可以显著提高效率。
  • 新人培训加速:对于刚加入团队的新成员,CodeGeeX可以通过代码解释功能帮助他们快速理解项目代码,加速融入团队。

CodeGeeX不仅是一个工具,更是开发者的得力助手。它通过智能化的功能全面提升开发效率,让编程变得更加轻松和愉快。无论你是经验丰富的老手,还是刚入行的新人,CodeGeeX都能为你的编程之路添砖加瓦。在这个AI迅速发展的时代,拥抱像CodeGeeX这样的智能工具,将会是每个开发者提升竞争力的关键所在。

用豆包MarsCode IDE打造精美数据大屏:从零开始的指南

thbcm阅读(226)

原标题:用豆包MarsCode IDE,从0到1画出精美数据大屏!

豆包MarsCode IDE 是一个云端 AI IDE 平台,通过内置的 AI 编程助手,开箱即用的开发环境,可以帮助开发者更专注于各类项目的开发。

作为一名前端开发工程师,今天想尝试利用豆包MarsCode IDE,选择 Vue + Echarts 创建一个大屏项目:数智化线上车展数据分析平台

前置知识

在学习本教程前你需要具备以下编程基础和技能:

前端开发基础

开发工具和环境

  • IDE 使用:熟悉使用集成开发环境(IDE),如豆包MarsCode IDE 或其他常用的前端开发 IDE(如 VSCode)。了解如何创建项目、运行项目、安装依赖等。
  • 包管理工具:了解 npm 或 cnpm 等包管理工具的基本使用方法,能够安装和管理项目依赖。

其他相关知识

  • 响应式设计:理解响应式设计的基本概念,知道如何使网页在不同分辨率的设备上适配显示,例如使用 CSS 的 transform 属性进行缩放。 推荐课程:《HTML+CSS响应式网页设计 (基础版)
  • 网络请求和数据处理:虽然教程中没有直接提到网络请求,但通常数据大屏会涉及到从后端获取数据,因此了解基本的网络请求和数据处理方法是有帮助的。

软件工程知识

具备以上基础和技能,将有助于你更好地理解和应用教程中的内容,从而成功地创建一个数据大屏项目。

项目准备

进入 IDE 之后,注册登录进入主页。

当你选择创建一个 Vue 项目后,会初始化一个项目,点击 RUN 即可运行。

浏览 package.json 文件,发现默认创建的是 Vue3+Vite 构建的项目。虽然官方提供的模板是 Vue3 的,但如果你希望使用 Vue2 也可以通过 Github 导入项目。

画大屏必不可少的就是 ECharts,通过 npm 安装速度较慢,所以使用镜像及其命令 cnpm。因为豆包MarsCode IDE 内置了 AI 助手,提供代码自动补全与生成、问题修复、代码优化等能力,安装了 cnpm 后,IDE 猜到了我是在查看版本,在控制台输入 cnpm 之后就会自动补全 cnpm -v 来查看版本。

通过命令 cnpm install echarts --save 安装 ECharts,cnpm 的安装速度就很快了,差不多一分钟就可以搞定,在项目的 package.json 文件中也可以看到安装的版本5.5.1.

画大屏需要静态图片来装饰整个大屏,可以通过 upload 批量上传。

将模板默认生成的代码,简单删一下就变为一个空的项目,我们就可以正式开始大屏的制作了。

数据大屏的制作

可视化数据大屏首先要解决的问题就是适配性,这是一个比较专业性的问题。豆包MarsCode 集成了 AI 功能,所以我们可以直接向 AI 助手提问:想要可视化大屏适配任何多种分辨率的屏幕,前端该如何实现。我们看一下它是怎么回答的。

我选择的解决方案是:通过 CSS 的 scale 属性,根据屏幕大小,对图表进行整体的等比缩放,从而达到自适应效果。

CSS 的 scale 属性用于指定元素的缩放比例。它是 transform 属性的一个值,可以使用 CSS 中的 transform 属性来设置元素的缩放比例。

scale 属性可以接受一个或两个参数。如果只提供一个参数,它将同时应用于元素的宽度和高度,导致元素在两个维度上按比例缩放。如果提供两个参数,第一个参数表示宽度的缩放比例,第二个参数表示高度的缩放比例。

/* 元素整体缩放为原来的 50% */transform: scale(0.5);
/* 元素宽度缩放为原来的 75%,高度缩放为原来的 120% */transform: scale(0.75, 1.2);

scale 属性可以与其他 transform 属性值结合使用,比如 translaterotate 等,以实现更复杂的变形效果。同时,scale 属性也可以用在 CSS 动画中,通过改变缩放比例来实现元素的动态缩放效果。 具体代码如下:

let screen = ref();


// 挂载时首先去获取视口的宽高
onMounted(() => {
  // 使用ref获取到的dom对象调用时都需要带.value
  screen.value.style.transform = `scale(${getScale()}) translate(-50%,-50%)`;
  console.log(`scale(${getScale()}) translate(-50%,-50%)`, '666');
});


// 创建函数
function getScale(w = 1920, h = 1080) {
  let ww = window.innerWidth / w;
  let wh = window.innerHeight / h;
  // 按照变化较小者的比例去进行缩放
  return ww < wh ? ww : wh;
}


// 视口发生变化时
window.onresize = () => {
  screen.value.style.transform = `scale(${getScale()}) translate(-50%,-50%)`;
}

getScale() 函数通常用于根据浏览器视口大小计算一个缩放因子。这个因子通常被用作 scale 属性的值,以确保 screen 元素可以根据屏幕大小自动调整大小。translate(-50%,-50%) 部分是用于将缩放后的元素居中显示的样式, transform-origin: left top 表示 transform 属性的原点位于元素的左上角。 这段代码提供了一种响应式的方式来调整页面元素的大小和位置,使得页面在不同大小的屏幕上都能够友好地显示。

先给大家展示下最终效果,我再来一步步演示大屏数据图表的生成。

整个可视化大屏分为六部分:

两个横向柱状图、一个中国地图、一个折线图、一个饼状图和一个热力图‍

横向柱状图 & 折线图

x轴配置:

  • 类型为value,表示x轴为数值轴;
  • 轴标签的颜色为白色;
  • 边界间隙为[0, 0.01],表示x轴的起始和结束位置会留有一定的空白。

y轴配置:

  • 类型为category,表示y轴为类目轴;
  • 轴标签的颜色为白色;
  • y轴的类目数据包括了多个汽车品牌名称。

Echarts-category 类目轴,适用于离散的类目数据。为该类型时类目数据可自动从 series.datadataset.source 中取,或者可通过 yAxis.data 设置类目数据。

seriestype:'category' 柱状图(或称条形图)是一种通过柱形的高度(横向的情况下则是宽度)来表现数据大小的一种常用图表类型。

type:'line' 折线图是用折线将各个数据点标志连接起来的图表,用于展现数据的变化趋势。

xAxis: {
  type: 'value',
  axisLabel: {
    color: 'white',
  },
  boundaryGap: [0, 0.01],
},
yAxis: {
  type: 'category',
  axisLabel: {
    color: 'white',
  },
  data: [],
},
series: [
  {
    name: '',
    type: 'bar',
    label: {
      show: true,
    },
    data: [],
  },
],

热力图

ECharts 热力图是一种数据可视化的图表类型,它通过颜色的深浅来表示数据的大小或密集程度。在热力图中,数据通常以矩形网格的形式呈现,每个小矩形格子的颜色深浅代表该位置上的数据大小,一般使用渐变色来表达数据的强弱。

  • min:表示热力图数据值中的最小值。在热力图中,所有小于或等于 min 的数据值都将被视为该范围的下限,通常用于确定颜色映射的起始点。
  • max:表示热力图数据值中的最大值。相应地,所有大于或等于 max 的数据值都将被视为该范围的上限,用于确定颜色映射的终点。

可以从实现的效果图中看出,热力图数据基本都是0.xx,所以我将最大值设置为1.0,如果设置的数值过大,会出现所有颜色基本一致的情况,看不出具体差异。

visualMap: {
  min: -0.75,
  max: 1.0,
  calculable: true,
  orient: 'horizontal',
  left: 'center',
  bottom: '15%',
},
series: [
  {
    name: 'Punch Card',
    type: 'heatmap',
    data: data,
    label: {
      show: true,
    },
    emphasis: {
      itemStyle: {
        shadowBlur: 10,
        shadowColor: 'rgba(0, 0, 0, 0.5)',
      },
    },
  },
],

中国地图

注册地图

在 ECharts 中,需要先注册地图类型才能使用。对于中国地图,可以使用 echarts.registerMap 方法注册地图数据。注册时,需要指定地图的名称(如china)和地图数据(即之前准备的 JSON 数据文件)。

配置地图选项

通过配置 ECharts 实例的 option 属性,可以定义地图的显示样式、数据系列、提示框、视觉映射组件(visualMap)等。对于该地图,通常需要设置地图的标题、数据系列类型为map、地图类型为china等。同时,还可以通过 series 属性中的 data 数组来设置各个省份或城市的数据,这些数据将用于控制地图上的颜色深浅或图标大小等。

渲染地图

配置完 option 属性后,调用 ECharts 实例的 setOption 方法,将配置对象传入,即可渲染出中国地图。

此时,地图将按照配置显示数据,并支持交互操作,如缩放、拖动等。

myEcharts.setOption({
  geo: {
    map: 'china', // 中国地图
    roam: true, // 是否开启放大缩小/拖拽功能
    // 地图的位置调试
    left: 150,
    top: 120,
    right: 150,
    bottom: 0,
    // 缩放比列
    zoom: 1.12,
    // 地图中心点位置
    layoutCenter: ['50%', '50%'],
    // 地图上的文字的设置
    label: {
      show: true,
      color: 'white',
      fontSize: 14,
    },
    // itemStyle地图区域的多边形图形样式
    itemStyle: {
      areaColor: '#12235c', // 地图区域的颜色
      // borderColor: '#2ab8ff', // 图形的描边颜色
      borderColor: 'rgba(147, 235, 248, 1)',
      borderWidth: 0.8,
      shadowColor: 'rgba(128, 217, 248, .8)',
      shadowOffsetX: -2,
      shadowOffsetY: 2,
      shadowBlur: 10,
      opacity: 0.9,
    },
    // 地图高亮的效果
    emphasis: {
      label: {
        color: 'white',
        fontSize: 32,
        // fontWeight: 'bold',
      },
      itemStyle: {
        // areaColor: '#5470c6',
        borderWidth: 2,
        borderType: 'dashed', // 高亮时虚线边框
      },
      // focus: 'self', // 鼠标移入地区,其余地区淡出
    },
  },
  // 布局位置
  grid: {
    left: 0,
    top: 0,
    right: 0,
    bottom: 0,
  },
  // 航线的设置
  series: [
    {
      type: 'lines', // 航线的系列
      data: [
        {
          // 北京->河南
          coords: [
            [116.405285, 39.904989], // 起点
            [113.665412, 34.757975], // 终点
          ],
        },
        {
          // 河南->北京
          coords: [
            [113.665412, 34.757975],
            [116.405285, 39.904989],
          ],
        },
        {
          // 北京->黑龙江
          coords: [
            [116.405285, 39.904989],
            [126.642464, 45.756967],
          ],
        },
        {
          // 黑龙江->北京
          coords: [
            [126.642464, 45.756967],
            [116.405285, 39.904989],
          ],
        },
        {
          // 河南->浙江
          coords: [
            [113.665412, 34.757975],
            [120.153576, 30.287459],
          ],
        },
        {
          // 浙江->河南
          coords: [
            [120.153576, 30.287459],
            [113.665412, 34.757975],
          ],
        },
        {
          // 浙江->台湾
          coords: [
            [120.153576, 30.287459],
            [121.509062, 25.044332],
          ],
        },
      ],
      // 开启动画特效
      effect: {
        show: true,
        period: 5, // 箭头指向速度,值越小速度越快
        trailLength: 0, // 特效尾迹长度[0,1]值越大,尾迹越长
        // symbol: 'arrow', // 箭头图标
        symbol: planePath, // 箭头图标使用引入的箭头
        symbolSize: 18,
      },
      // 线路统一的样式设置
      lineStyle: {
        color: '#00eaff',
        width: 1.5, // 尾迹线条宽度
        opacity: 0.7, // 尾迹线条透明度
        curveness: 0.3, // 尾迹线条曲直度
      },
    },
  ],
});

到此为止,整个大屏基本上就开发完成了!

AI 能力体验

在整个项目的开发过程中,真切体会到豆包MarsCode 内置 AI 的强大,于是单独列个模块再来介绍一下。

AI 对话视图

侧边聊天:侧边对话框(Side AI Chat)位于工作区右侧。你可以通过快捷键(macOS:+U;Windows:Ctrl+U)唤起对话框,或直接点击侧边栏中的 AI 按钮唤起。

内嵌聊天:当我们选中一段代码之后会自动弹出 AI 功能导航,可以进行代码解释、注释、生成单元测试。

代码注释:自己不想写的时候可以直接通过 AI 来生成,通过选择 YN 即可决定是否使用自动生成的注释。

使用 AI 能力

AI 问答:唤起对话框后,你可以在输入框中输入你的问题,然后点击「发送」按钮或敲击回车键,AI 助手就会对你的问题进行回答。你可以进行多轮问答,不断补充细节,从而使 AI 助手的回答更加准确。

补全代码: AI 助手支持自动补全当前代码。

总结

豆包MarsCode 编程助手是一款功能强大的开发工具,它通过集成先进的 AI 技术,为开发者提供了从代码编写到测试、维护的全流程支持。在整个开发流程中,我都真切感受到了在线开发工具的便捷、高效、流畅。对于希望提高开发效率、降低维护成本并提升软件质量的团队来说,是一个值得考虑的选择!

欢迎感兴趣的各位进一步查阅其官方文档和社区资源,更深入地了解其功能和实践。

点击「豆包MarsCode AI编程助手」即可体验豆包MarsCode~‍‍‍

打造“程序员毒舌伴侣”:用豆包MarsCode激发编程动力

thbcm阅读(232)

原标题:起猛了,编程时听到有人阴阳我

我想,我大抵是病了,

每天一想到要上班,

我的身体就像中了魔咒似的,

沉重得动弹不得。

拖延、倦怠、提不起劲,

似乎所有负面状态都在向我袭来,

内心深处仿佛在呐喊:

“要不今天就划水摸鱼算了?”

可偏偏,这种自我放纵却让我更焦虑。既然现实中没人推我一把,那我就自己搞一个 VSCode “程序员毒舌伴侣”!在我浑身班味,只想躺平时,它能用自嘲式的黑色幽默帮我满血复活。

当我想放弃时,它会适时地提醒:“你看着空白屏幕发呆的样子,还挺有艺术感的。

当我 p 人属性大爆发时,它会忍不住嘲讽:“打算拖到明年再写完这段代码吗?

当我终于完成一个艰难的任务时,它也会阴阳怪气道:“恭喜你,离下一个 bug 又近了一步!

如果你也像我一样时常需要一点推力,那就继续看下去吧,尝试用豆包MarsCode 来 DIY 一个能随时“骂醒”你的“程序员毒舌伴侣”!

前置知识

要学习和理解这个关于创建“程序员毒舌伴侣”VSCode插件的教程,你需要具备以下编程基础和技能:

编程语言和框架

VSCode 插件开发

  • VSCode API:熟悉 VSCode 扩展 API,了解如何使用 VSCode 提供的各种 API 来访问编辑器的功能,例如获取诊断信息、监听文件事件、注册命令等。
  • Yeoman 和 VSCode Extension Generator:了解如何使用 Yeoman 和 VSCode Extension Generator 来快速生成 VSCode 插件的模板项目,包括项目的结构和基本配置。

开发工具和环境

  • VSCode :熟练使用 VSCode 编辑器,了解其基本功能和插件机制。
  • 命令行工具:能够使用命令行工具(如 npm、Yeoman)来执行项目生成、依赖安装、调试等操作。推荐课程:《Linux命令行与Shell从入门到精通

其他相关知识

  • 事件监听和处理:了解如何在插件中监听和处理各种事件,例如文件创建、删除事件,窗口焦点变化事件等。
  • 音频播放库:了解如何使用第三方库(如 play-sound)来播放音频文件,并能够处理相关的错误和回调。
  • TypeScript 类型声明:了解如何为第三方库编写 TypeScript 类型声明文件(.d.ts),以便在 TypeScript 项目中正确使用这些库。

软件工程知识

  • 代码组织和注释:能够合理组织代码结构,并编写清晰的注释,以便于代码的可读性和维护性。
  • 调试技能:掌握基本的调试技能,能够使用 VSCode 的调试工具来调试插件代码,查找和修复问题。

具备以上基础和技能,将有助于你更好地理解和应用教程中的内容,从而成功地创建一个“程序员毒舌伴侣”VSCode插件。

“程序员毒舌伴侣”开发

1. 安装环境

在开发“程序员毒舌伴侣”前,完成 Node.js 和 Yeoman 及 VSCode Extension Generator 的安装:

npm install -g yo generator-code

2. 生成插件模板

使用 Yeoman 生成一个 VSCode 插件模板,按照提示完成配置。建议类型选择 TypeScript

yo code

3. 安装 play-sound

在插件中安装 play-sound 库用于播放声音。

npm install play-sound

4. 创建 sounds 文件夹

在项目根目录下创建 sounds 文件夹,用于存放需要播放的声音。

5. 编写代码

打开 src/extension.ts 文件,我们需要在这里添加、修改代码。需要注意的是,代码中播放声音的文件名需要和第 4 步存放的声音文件一致。

import * as vscode from 'vscode';
import * as path from 'path';
import play from 'play-sound';


// 创建音频播放器
const player = play({});


// 设置时间限制
const TIME_LIMIT = 30 * 1000;


// 记录窗口是否聚焦
let isWindowFocused = true;


// 记录累计活动时间的变量
let accumulatedActiveTime = 0;


export function activate(context: vscode.ExtensionContext) {
  // 注册命令
  let disposable = vscode.commands.registerCommand('extension.checkProblems', () => {
    // 获取所有诊断信息
    const allDiagnostics = vscode.languages.getDiagnostics();


    // 统计问题数量
    let problemCount = 0;
    allDiagnostics.forEach(([_, diagnostics]) => {
      problemCount += diagnostics.length;
    });


    // 如果问题数量大于 0,播放警告声音
    if (problemCount > 0) {
      playSound('a.mp3');
    } else {
      playSound('b.mp3');
    }
  });


  context.subscriptions.push(disposable);


  // 监听文件创建事件
  vscode.workspace.onDidCreateFiles(() => {
    playSound('c.mp3');
  });


  vscode.workspace.onWillDeleteFiles(() => {
    playSound('d.mp3');
  });


  // 监听窗口焦点变化事件
  vscode.window.onDidChangeWindowState((event) => {
    isWindowFocused = event.focused;
  });


  setInterval(() => {
    if (isWindowFocused) {
      accumulatedActiveTime += 5000; // 累加活动时间
      console.log('累计活动时间:', accumulatedActiveTime / 1000, '秒');
    }


    if (accumulatedActiveTime >= TIME_LIMIT) {
      playSound('e.mp3');
      accumulatedActiveTime = 0; // 重置累计活动时间
    }
  }, 5000);
}


function getProblemCount(): number {
  const allDiagnostics = vscode.languages.getDiagnostics();
  let problemCount = 0;
  allDiagnostics.forEach(([_, diagnostics]) => {
    problemCount += diagnostics.length;
  });
  return problemCount;
}


function playSound(fileName: string) {
  const soundPath = path.join(__dirname, '..', 'sounds', fileName);
  player.play(soundPath, (err) => {
    if (err) {
      console.error(`无法播放声音: ${err}`);
    }
  });
}


export function deactivate() { }

当你遇到看不懂的代码时,可以询问豆包MarsCode AI 助手

例如:

vscode.languages.getDiagnostics()的目的是什么」,AI 会告诉你,是为了获取文件的诊断信息,如警告、错误等。

如果想修改代码,也可以在编写注释后等待自动补全代码。

6. 创建 TypeScript 类型声明文件

在项目根目录下创建 typings 文件夹,并在里面创建 play-sound.d.ts 文件,编写以下代码:

declare module 'play-sound' {
  interface PlayOptions {
    player?: string;
  }


  interface Player {
    play(fileName: string, callback?: (err?: Error) => void): void;
  }


  function play(options?: PlayOptions): Player;
  export = play;
}

如果你不知道 play-sound.d.ts 文件的作用,同样可以询问豆包MarsCode AI 助手:

7. 修改配置文件

修改 package.jsontsconfig.json 文件:

// package.json 文件
{
  "name": "extension-demo",
  "displayName": "extension_demo",
  "description": "",
  "version": "0.0.1",
  "engines": {
    "vscode": "^1.92.0"
  },
  "categories": [
    "Other"
  ],
  "activationEvents": [
    "onCommand:extension.checkProblems",
    "*"
  ],
  "main": "./out/extension.js",
  "contributes": {
    "commands": [
      {
        "command": "extension-demo.helloWorld",
        "title": "Hello World"
      },
      {
        "command": "extension.checkProblems",
        "title": "Check Problems"
      }
    ]
  },
  "scripts": {
    "vscode:prepublish": "npm run compile",
    "compile": "tsc -p ./",
    "watch": "tsc -watch -p ./",
    "pretest": "npm run compile && npm run lint",
    "lint": "eslint src --ext ts",
    "test": "vscode-test"
        },
  "devDependencies": {
    "@types/mocha": "^10.0.7",
    "@types/node": "20.x",
    "@types/vscode": "^1.92.0",
    "@typescript-eslint/eslint-plugin": "^7.14.1",
    "@typescript-eslint/parser": "^7.11.0",
    "@vscode/test-cli": "^0.0.9",
    "@vscode/test-electron": "^2.4.0",
    "eslint": "^8.57.0",
    "typescript": "^5.4.5"
  },
  "dependencies": {
    "play-sound": "^1.1.6"
  }
}
// tsconfig.json 文件
{
  "compilerOptions": {
    "module": "Node16",
    "target": "ES2022",
    "outDir": "out",
    "lib": [
      "ES2022"
    ],
    "sourceMap": true,
    "rootDir": "src",
    "strict": true,
    "typeRoots": [
      "node_modules/@types",
      "typings"
    ]
  }
}

8. 调试“毒舌伴侣”

完成之后就可以开始调试我们的“毒舌伴侣”:

点击上方的运行,选择「启动调试」,启动调试后,会自动打开一个 VSCode 窗口,我们随便选择一个本地项目打开。

9. 体验“毒舌伴侣”

打开项目后,可以随意尝试创建文件、删除文件以及持续编码30秒等工作,过程中就可以感受专属“程序员毒舌伴侣”对你的“冷嘲热讽”咯,它不仅能让你告别拖延,还会让你在与自己的对话中,找到一丝久违的动力。

开发至此“毒舌伴侣” 第一版就完成了,称它为第一版,是因为它现在只支持在连续编码一段时间,以及创建文件、删除文件时鼓励你。

点击「豆包MarsCode AI编程助手」即可体验豆包MarsCode~‍‍‍

联系我们