云上“炼”码兵器 GitHub Codespaces

GitHub 是全球最受欢迎的开发者平台, ⾃从微软收购了 GitHub 后, GitHub 的功能就越来越强⼤,除了原有的代码管理外,也增加了很多硬货,这就包括了集成 CI/CD 的 GitHub Actions ,以及完善的项⽬管理功能,还有⼀个云端的开发环境 GitHub Codespaces。GitHub Codespaces 并不只是⼀个简单的改改代码的编辑器,它还包含了⼀个完整开发环境 ,让你可以在云上开发完整的项⽬。

什么是GitHub Codespaces

GitHub Codespaces 是云端的开发环境,它允许开发⼈员通过浏览器或从本地的 Visual Studio Code IDE 直接进⾏调试、维护、更改、部署 GitHub 上的代码。现阶段 GitHub Codespaces 只提供给团队和企业版本 。

273d43525da037f19f35ed4b327334d6.png

上图是官⽅对于 GitHub Codespaces 实现的描述。你可以把 GitHub 看成⼀个传统的 C/S 架构。在后端使⽤虚拟化技术(容器/虚拟机)设置你的代码,开发环境以及相关依赖等,在前端部分可以通过本地安装的Visual Studio Code 或者浏览器访问使⽤。

GitHub Codespaces 有⼏个优点:

1、⾼性能 ⸺ 开发⼈员可以使⽤更好性能的虚拟开发环境,提⾼开发⼈员的⽣产⼒

2、⾼安全 ⸺ 只有授权⽤户才能访问 GitHub Codespaces

3、易管理 ⸺ 开发⼈员可以轻松地在每个项⽬的基础上管理依赖项和扩展

4、⼀致性 ⸺ 团队开发⾥,通过 GitHub Codespaces 开发⼈员之间有统⼀的的开发环境,可以⾮常轻松地管理项⽬上的依赖和扩展

5、跨设备 ⸺ 基于浏览器的编码体验意味着可以在任何设备上进⾏开发,例如⼿机、iPad、平板电脑等,从⽽提⾼了开发⽣产效率

通过 iPad 开发⼀个 Azure Functions 的项⽬

1.⾸先打开我的 iPad Safari 浏览器 , 访问我的⼀个 GitHub Repository , 选择Code 按钮 ,再选择Codespaces 标签点击 New Codespaces, 你就可以启动⼀个基于该 Repo 下的 Codespaces 环境

d3bf664eb50300069f094bdb71c82999.png

2.选择成功后, 会让你选择需要的虚拟开发环境配置 (你可以根据你的需要去设置),这⾥我选择⼀个4核CPU,8G 内存 , 32GB 存储的虚拟环境

5aef874c3e83fdc45d02b99a1ac636d2.png

选择后,需要稍等⽚刻,这⾥会帮你在云端开启虚拟环境

6badf72d5d81d3b92f9a71f6071a5542.png

配置成功后,在浏览器就可以启动云端的 Visual Studio Code 环境

bc1de2db58c902145cd7fe8bca24393f.png

3.按 Cmd + Shift + P 选择开发开发环境 ( Codespaces: Configure Container Features... ) , 你可以选择你的应⽤场景和开发的语⾔

25d29098773612d6964e88d8cb49915f.png

如果你是第⼀次会让你添加相关的⽂件

036db6de6175446a45371dda1d2e5abc.png

列表选择展示所有设定( Show All Definitions...)

af0d11140e58fc0158125e3ea2e2ae0f.png

选择 Azure Functions & Python 3

18de27ed3d0fe19853eaa4a0e2f60b04.png

创建成功后,你会看到 Repo 会新增.devcontainer⽂件夹,新增 devcontainer.json 和 Dockerfile

5363e7abe86374438d3823694e7a1278.png

选择右下⻆ Rebuild / Cmd + Shift + P 选择 Codespaces: Rebuild Container 就可以配置好你的 Azure Functions 开发环境了,

fddfaded5e5ef8cebd64068f5068d282.png

这⾥我要说说在 .devcontainer 下的两个⽂件

//

①devcontainer.json

devcontainer.json 是 Codespace 下设定的开发环境配置,除了对应的 Dockefile 外,还包括开发需要到的端⼝,设定,以及对应的 Visual Studio Code 插件安装。像我这⾥就有开发的 Docker 端⼝,以及 Python /Docker / Azure Functions 等插件。这个配置环境对于多⼈开发的项⽬是⾮常有⽤的,因为新的开发⼈员不⽤再关⼼开发环境如何配置,节约了配置时间。

f85bfa56250c08213754226b78f6eaca.png

例如我想安装 Thunder Client 插件给到开发团队 ,就可以在 extensions 字段添加"rangav.vscode-thunderclient"

"extensions": [
"ms-azuretools.vscode-azurefunctions",
"ms-azuretools.vscode-docker",
"ms-python.python",
"rangav.vscode-thunder-client"
],

再选择 Rebuild container 就可以为以后的开发者,安装好 Thunder Client 组件了

5b3c0bb2507e3ca55cd7cd1a07acf212.png

//

②Dockerfile

Dockerfile 就是对应的开发环境设置,当然你也可以根据⾃身开发需要,创建⾃⼰的开发环境容器。

4.这个时候你就可以选择 Azure 环境创建 Azure Functions 应⽤了(这⼀步我就不⼀⼀介绍了,和本地创建是⼀样的)

8ad82f8737ed1060e2603457fa13ed9e.png

5.来谈谈调试,可以直接进⾏调试,就如本地应⽤⼀样,⾮常⽅便

598a3c71870bb3a478f5459fe6d62784.png

调试成功后,你可以同步⼀下代码到你的GitHub

0feb97f98c93264d7004168a75a460f0.png

当然你也可以直接通过 GitHub Actions 对 Repo 进⾏ CI / CD 操作,这⾥篇幅有限我就不⼀⼀多说了。

小结

GitHub Codespaces 与 GitHub ⽆缝连接,通过云端不仅管理好你的代码,更可以作为开发环境,直接通过任意浏览器就可以完成整个研发周期的⼯作,降低了对本地硬件的依赖。更让依赖于 GitHub 的个⼈和团队,提供更好的⽣产⼒。⼩伙伴们快快⽤起来。

*相关资源

1.了解 GitHub Codespaces 更多信息,请访问以下链接 https://docs.github.com/en/codespaces

2.Azure Functions 的开发https://docs.microsoft.com/zh-cn/azure/azure-functions/create-first-function-vs-code-python

往期推荐:

CA周记 - 2022年的第一课Rust

CA周记 - 用 Visual Studio Code 做基于 .NET MAUI 跨平台移动应用开发

CA周记 - 通过 Azure ML + GitHub + GitHub Action 打通 ML 开发的任督二脉

CA周记 - 宇宙最強的IDE - Visual Studio 25岁生日快乐

CA周记 - “探店”低代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/289954.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 中的yum pip

为什么80%的码农都做不了架构师?>>> python 中的yum pip pip 可以管理python中的模块,之于python就像yum之于redhat 转载于:https://my.oschina.net/sskxyz/blog/368099

ArcGIS怎样获取重分类后各类所占的像元个数

【问题描述】如下图所示,给西北地区2007年平均NDVI分等级,求各个等级的面积所占百分比? 解决方法: 刚开始老在如下图所示的Properties界面中进行重分类,虽然能得到分类结果,但是却得不到像元个数,因为是连续的,也不会有属性表生成: 后来发现,工具箱中还有个分类工具…

13.ThreadPoolExecutor线程池之submit方法

jdk1.7.0_79 在上一篇《ThreadPoolExecutor线程池原理及其execute方法》中提到了线程池ThreadPoolExecutor的原理以及它的execute方法。本文解析ThreadPoolExecutor#submit。 对于一个任务的执行有时我们不需要它返回结果,但是有我们需要它的返回执行结果。对于线程…

java idea 模块_idea 多模块项目依赖父工程class找不到问题的方法

比如,我们有这么个过程,项目结构如下:a--b--ca是总结点,b是子节点,c是父节点b依赖父节点class,通过maven构建时通常我们会在子节点中添加父节点依赖,如:com.xxxc${project.version}虽…

关于OAuth2.0 Authorization Code+PKCE flow在原生客户端(Native App)下集成的思考

Working with Proof Key for Code Exchange (PKCE) - DEV Community写在前面前几天看了园友的一篇文章被广泛使用的OAuth2.0的密码模式已经废了,放弃吧 被再次提起:Implicit Flow Password Grant,均已被标记为Legacy,且OAuth2.1里…

【经典回放】多种语言系列数据结构算法:希尔排序(C/C#版)

原理:每隔sp(整数)个数即取数并判断大小,交换,先构造局部有序序列,直到sp为1,构造完整的有序序列。 给出一组数据,如下: 0 1 2 3 4 5 6 7 8 9 49 38 65 97 …

【131天】尚学堂高淇Java300集视频精华笔记(65-66)

第65集:常用类Date类的使用JDk源码分析 Date时间类(java.util.Date) 在标准Java类库中包含一个Date类。它的对象表示一个特定的瞬间,精确到毫秒。 Date()分配一个Date对象,并初始化此对象为当前的日期和时间精确到毫秒…

ArcGIS 10.2加载在线影像底图

两种方法: 一、File→ArcGIS Online→影像图→Open。 二、 效果:

都说不要装箱,那装箱到底带来了什么开销?

相信很有朋友在面试时大多会被问到 装箱 的问题,也是一个经典的问题,可深可浅,那今天我们就从 汇编 和 内存 角度进行统一解读下。为了方便演示,先上一段装箱的代码。class Program{static void Main(string[] args){var i 10;va…

Java中方法的继承以及父类未被子类覆盖的方法调用的问题

在看java继承这一块的时候发现了一个问题,即父类未被子类覆盖的方法是如何调用的? 是子类拥有了父类的该方法只是没有显示表示,还是子类调用了父类的该方法。 为此做了一下验证 代码如下: public class One {protected void print…

Excel VBA编程基础

一、程序基本调试方法 1、VB程序的三种状态:设计时、运行时和中断模式。 2、但不执行代码,快捷键为F8。 3、中断程序的方法: (1)使用断点 (2)使用Debug.Assert (3)使用监视条件 二、Excel Shape对象

分治算法之合并排序

1、问题 合并排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列 2、思路 1、分解:将待排序元素分成大小大致相同的两个子序列 2、治理:对两个子序列进行合并排序 3、…

WPF 实现截屏控件之移动(二)(仿微信)

WPF开发者QQ群此群已满340500857 &#xff0c;请加新群458041663由于微信群人数太多入群请添加小编微信号yanjinhuawechat 或 W_Feng_aiQ 邀请入群需备注WPF开发者 接着上一篇&#xff0c;兼容屏幕缩放问题。01—代码如下一、创建ScreenCut.xaml代码如下。<ResourceDictiona…

深入剖析阿里云推荐引擎——新架构,新体验

摘要&#xff1a;本文的整理自2017云栖大会-上海峰会上阿里云算法专家郑重&#xff08;卢梭&#xff09;的分享讲义&#xff0c;从2016年2月V2.0公开使用到现在&#xff0c;阿里云推荐引擎有了更大的进步。有着获取排序的在线计算&#xff0c;修正匹配的近线计算及匹配排序的离…

分治算法之快速排序

1、快速排序 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序 2、思路 ( 1 )分解:先从数列中取出一个元素作为基准元素。以基准元素为标准,将问题分解为两个子序列,使小于…

SQL Server 2008空间数据应用系列三:SQL Server 2008空间数据类型

SQL Server 2008空间数据应用系列三&#xff1a;SQL Server 2008空间数据类型 原文:SQL Server 2008空间数据应用系列三&#xff1a;SQL Server 2008空间数据类型友情提示&#xff0c;您阅读本篇博文的先决条件如下&#xff1a; 1、本文示例基于Microsoft SQL Server 2008 R2调…

.NET 很好,你可能对它有一些误解

> 作者&#xff1a;Charles Chen在 20 年前的 2002 年, 微软公布了下一代的软件、服务的愿景和路线&#xff0c;2 月 13 日&#xff0c;Visual Studio .NET 推出&#xff0c;.NET 开发平台的第一个版本正式向世界发布。到现在为止&#xff0c;.NET 都已经 20 岁了, 它已经成…

SQL语言实现金额小写转大写完整案例代码

1. 数字大小写对照表 一到十数字大小写: 1——壹,2——贰,3——叁,4——肆,5——伍,6——陆,7——柒,8——捌,9——玖,10——拾 2. 大小写转换案例 将12.345元转换为大写 select dbo.L2U(12.345,1) select dbo.L2U(123456789.345,1) 结果: 3. SQL转化代码 CREA…

盘点PHP编程常见失误

为什么80%的码农都做不了架构师&#xff1f;>>> 变量声明 如果在一条语句中声明一个变量&#xff0c;如下所示&#xff1a;$varvalue;编译器首先会求出语句右半部分的值&#xff0c;恰恰正是语句的这一部分常常会引发错误。如果使用的语法不正确&#xff0c;就会出…

Educational Codeforces Round 1

被C坑的不行不行的。。。其他题目都还可以。 A - Tricky Sum 求1&#xff0c;2&#xff0c;3,...,n的加和&#xff0c;其中2^x&#xff08;x>0&#xff09;为负。 因为2^x的个数很少&#xff0c;所以以每个2^x为分界点进行判断. 初始化x0; 如果n>2^x,求出2^(x-1)到2^(x)之…