惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
SegmentFault 最新的问题
G
Google Developers Blog
H
Help Net Security
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Proofpoint News Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
B
Blog RSS Feed
爱范儿
爱范儿
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 三生石上(FineUI控件)
大猫的无限游戏
大猫的无限游戏
人人都是产品经理
人人都是产品经理
GbyAI
GbyAI
D
Docker
Hugging Face - Blog
Hugging Face - Blog
I
InfoQ
博客园 - 司徒正美
Last Week in AI
Last Week in AI
Microsoft Security Blog
Microsoft Security Blog
美团技术团队
Stack Overflow Blog
Stack Overflow Blog
M
MIT News - Artificial intelligence

Gitee 官方博客

花几千块报志愿之前,先把这 7 个问题问清楚 Gitee 618 年中盛典开启:企业版新购最高送一年,PocketClaw 首次限时折扣 Gitee 成为首批「供应链安全号」成员单位,携手共建国产工业软件生态 七大赛道 TOP 10 公布!Gitee 年度开源项目评选结果正式揭晓 GLM-Image 上线模力方舟:首个国产芯片训练的多模态图像生成模型 「开源技术」正式纳入国家职教体系,Gitee 已为开源教育落地做好准备 Gitee 软件工厂:以密级管理为底座,构建符合国家保密资质的安全研发体系 Claude Code 的代码安全困境:插件机制齐全,却绕不开模型幻觉 北京中关村学院入驻 Gitee:打造 AI for Science 教学新范式 Gitee 移动软件工厂:突破网络限制的开发新模式 从依赖到可控:开源基础设施的国家命题 模力方舟 MCP Server 上线:在 Cursor 里玩 AI 生图+语音 【国内首家】 Gitee Repo 通过信通院《可信制品管理能力分级要求》先进级(最高级)评估 Gitee Repo 助力关键领域 DevSecOps落地:构建安全可控的制品管理体系 会翻译、懂产品、还能画头像:Gitee 智能三连上线! Gitee Pipe:关键领域 DevSecOps 的核心引擎 时代命题下的民营科技担当:从备份战略看 Gitee 的国家定位 没人喜欢写 README?Gitee:现在你不用写了 关键领域软件工厂的安全中枢:Gitee Scan 全面升级供应链检测能力 Gitee MCP 现已支持远程访问:无需本地部署,AI 助手即插即用 Gitee 企业版效能度量全面升级:构建可衡量、可洞察、可优化的研发体系 高标准+安全可控:关键领域研发为什么选择 Gitee Code? 河南农担 x Gitee:以数字化赋能「三农」信贷服务新范式 Gitee Test:驱动软件工厂DevSecOps 落地,保障关键领域安全稳定 马建仓 AI 助手全流程升级:更聪明的研发搭子,更专业的协作助手 从公益初心到商业化探索,开源中国助推中国开源生态之路 以知识管理赋能 DevSecOps,Gitee Wiki 加速关键领域软件自主演进 Gitee 企业版测试管理全面升级:流程更顺畅,交付更可靠 Gitee 企业版 AI 队友邀测开启:程序员的贴身助理来了 Gitee 构件治理实践:CBB 分布式管理助力软件工厂建设
如何在码云上展开程序类课程教学 | 码云高校版最佳实践
Gitee · 2018-09-20 · via Gitee 官方博客

如何在码云上展开程序类课程教学 | 码云高校版最佳实践-Gitee 官方博客码云 主要提供了源代码管理(Git/SVN)功能,最近又推出了高校版让普通老师也能利用起来以供教学使用。学生与老师不仅能利用其管理代码,更重要的是我们的程序教学能通过对git的使用来引入业界流行的软件开发方式。

经过摸索,大概有几个可以利用的场景。

1.学生代码管理

以前学生在实验室编写好代码带回宿舍,通常使用U盘拷贝或者QQ邮箱的方式。麻烦不说,最关键的是不够专业!作为计算机专业的学生应该对这种不专业的行为,果断说不。

可以使用码云提供的git服务来管理我们的代码。git最常用的当然是命令行版本,当然对初学者来说还是有一定的难度(很多同学连dircd命令都不知道)。我们一开始作为过渡,可以先使用网页版。

1.1 最简单的入门(创建项目)

步骤很简单,只需3步:

  1. 申请账号。
  2. 新建项目。注意:选择正确类型,比如管理Java项目,尽量选择Java的模板。
  3. 在项目中直接新建、上传、删除文件、文件夹。

进入项目后的大概界面如下:
如何在码云上展开程序类课程教学 | 码云高校版最佳实践-Gitee 官方博客

先熟悉如下功能。

代码:你的代码都在这里。可以在这里上传、删除、修改代码。

Issues:别人可以对你的代码提出问题,当然也可以当做论坛来用。

管理:可以删除项目、基本项目设置、项目成员管理(可以把你的团队成员加进来一同编写代码)。

然而这样建立的项目是学生自己的项目,不方便老师查看代码。我们可以利用码云上Git的Fork + Pull 模式 来实现教师对学生代码的统一管理。

1.2 使用 Fork + Pull 模式构建统一的学生代码仓库

使用这种模式管理学生代码可以让学生在提交代码的过程中学习到业界最流行的分布式开发技术。具体步骤如下:

  1. 教师新建一个代码库项目,如上图所示。代码库可以是空的项目,然后将项目地址发给学生。
  2. 学生点击右上角的Forked,将教师的代码库Fork到自己的账号下。
  3. 学生在该项目下建立自己学号命名的目录,然后将代码放入该目录。
  4. 学生点击该项目的Pull Requests,然后点击+新建 Pull Request。提出请求,将自己的代码合并到老师建立的代码库项目中。
  5. 教师端点击Pull Request,可以查看学生提交的Pull Request。然后根据需要决定是否接受该学生的合并请求。主项目截图如下。

如何在码云上展开程序类课程教学 | 码云高校版最佳实践-Gitee 官方博客

可以看到学生的代码都被放到主项目中,教师需要的时候可以查看每个学生的提交情况。

这种模式有几个特点要注意:

  1. 合并到主项目的所有代码都可以被项目成员看到。所以要小心学生作业代码泄露问题。我利用这个功能主要是为了让学生学会使用git、熟悉"Fork + Pull**模式,至于抄袭问题我会使用别的工具来解决。当然也期望码云会推出相关功能。[2018/09/20更新],码云现在已经增加了相关功能解决了该问题,见这篇参考文章 开启 Pull Requests 显示权限
  2. 如果一个班级的人数太多,让每个学生发起 Pull Request,老师一一审核。那无疑对老师发起了DDOS pull request 共计。老师一个一个确认到手软。对于这个问题,教师可以将审核任务委派给班级的学习委员。这个功能具体操作可以参见官方文章:码云上线 Pull Requests 多人代码审核功能

相关参考文章:Fork + Pull 模式

1.3 使用Git命令模式或者IDE管理源代码

可以参考如下文章:官方帮助-提交第一行代码

我的其他原创文章:

2.教师项目模板与项目代码质量检查

2.1 教师项目模板

老师布置程序项目类作业的时候,即使再三强调要按照规范来建立项目目录结构。然而最终提交结果依然不尽如人意。每个人似乎都有自己的一套项目结构,并且这个结构通常是惨不忍睹的,比如一包流,所有代码均放到一个包中。

教师完全可以规划好一个项目的标准目录结构,然后让学生Fork或clone下来,这样就无痛的规范了所有学生的项目目录结构。实际上这也是业界流行的一种方式。学生可以参考我的这个专门用于Java教学的一个项目 OnlineShop,该项目包含一个可供参考的标准项目目录结构。

2.2 项目代码质量检查

学生的代码即使按照目录规范要求提交上来,但是很多时候代码质量惨不忍睹。比如变量命名、对null的处理。让老师一一检查,这可是要了老师的命。码云项目中提供了项目代码质量检查,让学生交给老师审查之前先自查一下。如下图所示:

如何在码云上展开程序类课程教学 | 码云高校版最佳实践-Gitee 官方博客

3.真正的让团队合作开发实施起来

传统的程序项目作业,名义上是小组合作完成,然而,实际上由于缺乏工具的支持,很难真正的实现分布式开发。到最后甚至演变成,1拖n(1个组长搞定全部)的现象。

通过码云的Git服务可以真正让分布式开发真正实现,教师可以通过观察项目的提交记录,来确认每个人的是否真正完成了自己的任务。一个课程设计作业提交记录如下图:

如何在码云上展开程序类课程教学 | 码云高校版最佳实践-Gitee 官方博客

老师可以大概判断一下该项目是否真正的实现了分布式开发,开发的工作进度是如何的。

其他几点期望

在教学方面还希望码云能提供如下几个功能:

  1. 通过提交记录来判定学生项目推进情况的工具。
  2. 更完善的学生提交数据。比如学生每周提交数、代码行数。不仅是每个学生,而且要有所有学生的总体情况。最好以图形化的方式展示。
  3. 更多可以通过提交相关数据来辅助教学的工具。

往期精彩:

功能更新 | 码云上线 Pull Request 自动分析代码质量功能

功能更新 | 码云企业版支持提交代码时切换任务状态

功能更新 | 码云支持 Git Wire Protocol,提升传输效率

功能更新 | 如何控制 Git 库的膨胀?码云 GC 一步搞定!

如何在码云上展开程序类课程教学 | 码云高校版最佳实践-Gitee 官方博客