跳到主要内容

22 篇博文 含有标签「人工智能」

人工智能和机器学习

查看所有标签

实战 CI/CD:微软加持的 GitHub Actions,怎么用才香?

· 阅读需 6 分钟
马老师 Marvin
软件工程师 & 开源爱好者

引子

GitHub Actions 是 GitHub 官方推出的 CI/CD 工作流(Workflow)服务,旨在减轻开源贡献者们运维负担,让云原生 DevOps 赋能开源社区。如果您不知道什么是 CI/CD、DevOps,请参考笔者之前在夜幕团队公众号写的文章《用开源软件轻松打造企业级DevOps工作流》。笔者的开源项目,例如 CrawlabArtiPub,都集成了 GitHub Actions。作为开发贡献者,我认为 GitHub Actions 不仅好用,而且是真香免费(这是最主要的)。希望很多不了解如何将 GitHub Actions 运用在自己的开源项目的开发者,可以从本文中得到灵感。

从官方文档开始

对于 GitHub Actions 不熟悉的朋友,我强烈推荐你先阅读 GitHub Actions 官方文档,这里有视频介绍快速开始例子、概念、原理等等。如果把文档研究透了,再结合自己平时运用 CI/CD 的经验,应该可以很轻松的在 GitHub 上做 DevOps。本文所用到的相关代码,都可以在官方文档上找到对应的参考指南。

GitHub Actions Docs

思路

先理清一下我们想要实现什么:用 GitHub Actions 来运行仓库中的爬虫获取每日 GitHub Trending

除了甘特图,你还应该了解些什么软件项目管理知识

· 阅读需 18 分钟
马老师 Marvin
软件工程师 & 开源爱好者

前言

A bad plan is better than no plan.

坏计划也好过没有计划。--彼得·蒂尔《从0到1》

在软件开发工程中,很少会有单打独斗的程序员。这是因为现代较常见的软件项目通常都非常复杂,所要求的人力、资源、时间也比较多,仅由一个开发者来完成大型软件项目无异于 “愚公移山”。因此,软件开发通常离不开团队协作和项目管理。所谓项目管理(Project Management),简单来就是有序的组织、规划、执行并完成项目中各个任务的一种方法论。当然,实际项目管理的范畴还远不止这些,通常还会涉及资源调配、优先级制定、进度追踪等。它是工业革命的产物,也是现代管理学的分支,它能够大幅提高工程完成效率以及成功率。本文讨论的主要是软件项目管理,相较于传统的建筑工程、机械工程等项目管理有很大的不同。早期的 IT 项目管理来自于建筑工程等传统项目管理方法论,在信息时代早期扮演了重要的角色,大幅提高了软件开发和协同效率。然而,随着 IT 行业高速发展,消费者产品需求瞬息万变,市场形势变得越来越不确定(Volatile),传统的软件项目管理模式已经不能再满足软件开发需求。因此,现代软件开发模式,例如敏捷开发(Agile Development),应运而生,成为了很多互联网企业的首选。

传统项目管理模式(例如瀑布流)有什么弊端?现代项目管理模式(例如敏捷)又有什么改进?我们是否应该完全摈弃瀑布流模式,全面拥抱敏捷开发?作为一个程序员,是否应该掌握一些项目管理知识以及相关工具?作为一个团队领导,应该如何制定项目管理流程保证开发效率和质量?如果读者有类似上述问题的疑惑,本篇文章将为您详细分析和解答。

传统方法论