版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
开源软件构建技术——开源任务参与实践《开源软件构建技术:理论与实践》2课件使用介绍课程资源网站(正在建设中,持续更新维护):课程配套8个实践案例:/paths/krytlieb
部署在头歌平台,
关卡作答模式,平台配套实验环境。欢迎老师在头歌平台新建课堂,引入课程实验案例资源。3.课程部分互动,学生作答环节(投票题),需要下载安装“雨课堂”应用。
1
开源成长路径:3开源成长路径包括两个维度开源社区角度的发展路线企业角度的发展路线1
开源贡献的核心能力:开发、运营、治理4开发能力:开发技术能力、知识共享能力、质量保证能力运营能力:协作和沟通能力、社区参与能力、项目管理能力。治理能力:开源合规能力、开源治理能力、商业洞察能力。开源贡献能力是一项复合型能力,要求参与者精通技术开发、善于社区协作、懂得开源治理,这三者共同构成了在开源贡献的核心能力。2开源职业发展路线:开源社区视角5“开源小白”到“开源达人”的递进式成长模型:掌握基础技能→参与项目贡献→提升文档能力→融入社区交流→主导项目开发2开源职业发展路线:开源社区视角6学习基础知识:编程语言和开发工具2开源职业发展路线:开源社区视角7学习基础知识:编程语言和开发工具参与开源项目:项目选择、代码贡献、问题发现与讨论2开源职业发展路线:开源社区视角8学习基础知识:编程语言和开发工具参与开源项目:项目选择、代码贡献、问题发现与讨论阅读与编写文档:项目选择、代码贡献、问题发现与讨论2开源职业发展路线:开源社区视角9学习基础知识:编程语言和开发工具参与开源项目:项目选择、代码贡献、问题发现与讨论阅读与编写文档:项目选择、代码贡献、问题发现与讨论参与社区交流:加入开源社区、学习与分享、理解开源文化2开源职业发展路线:开源社区视角10学习基础知识:编程语言和开发工具参与开源项目:项目选择、代码贡献、问题发现与讨论阅读与编写文档:项目选择、代码贡献、问题发现与讨论发布开源项目:选择项目方向、开发与发布、维护与推广参与社区交流:加入开源社区、学习与分享、理解开源文化2开源职业发展路线:开源社区视角11学习基础知识:编程语言和开发工具参与开源项目:项目选择、代码贡献、问题发现与讨论阅读与编写文档:项目选择、代码贡献、问题发现与讨论持续学习与贡献:学习新技术、分享经验、推动社区发展发布开源项目:选择项目方向、开发与发布、维护与推广参与社区交流:加入开源社区、学习与分享、理解开源文化开源项目开发者社区CodeToolsTalentUserDoc爱好者--->使用者--->贡献者--->提交者--->领导者2开源职业发展路线:职业阶段12开源贡献的职业发展是一个从初学者到资深专家的渐进过程,每个阶段都有其独特的角色和职责,开发者通过不断积累经验和提升技能,逐步在开源社区中建立自己的影响力。2开源职业发展路线:企业视角13传统开发岗位需求趋势随着AI技术的发展,传统软件开发岗位的需求进入下降的趋势开源人才紧缺,92%的单位把是否有开源项目经历作为招聘标准。Liunx基金会调查报告2开源职业发展路线:企业视角14岗位名称主要职责关键技术栈适合背景开源软件开发工程师参与开源项目代码开发,维护核心功能,提交PR,修复Bug,与社区协作。Linux内核、K8s、TensorFlow/PyTorch、Hadoop/Spark、Git/GitHub流程。计算机/软件工程专业,熟悉至少一门主流编程语言(如Go/Python/Java)开源社区运营/布道师推动开源项目社区活跃度,组织技术会议,撰写文档/案例,推广开发者生态。技术文档写作、社区管理工具(Slack/Discord)、演讲与沟通能力。技术背景+强沟通能力,英语能力突出者优先开源合规与安全工程师审计开源许可证(GPL/Apache),管理企业合规风险,扫描代码漏洞(如SBOM工具)。开源许可证法律知识、漏洞扫描工具(BlackDuck)、软件供应链安全。法律/安全背景,熟悉开源治理流程当前企业视角下主要的开源岗位的需求2开源职业发展路线:企业岗位现状15华为:全栈布局,从操作系统(OpenHarmony/openEuler)到AI框架(MindSpore),积极构建其软硬件产品的开源根基。阿里巴巴:聚焦中间件与云原生,通过RocketMQ、Dubbo等项目推动其云计算业务的核心技术发展。腾讯:开源紧密结合其业务优势,覆盖游戏引擎、社交大数据(Angel)和云原生(TKE)等关键领域。百度:AllinAI,以飞桨(PaddlePaddle)和自动驾驶(Apollo)平台为核心,打造开源AI生态。字节跳动:为解决高并发业务挑战而开源,主打微服务框架(CloudWeGo)和AI工具,支撑其海量数据业务。蚂蚁集团:专注于金融级可靠性与安全,将其分布式数据库(OceanBase)和中间件(SOFAStack)技术开源。AI技术的发展,催生了更多的开源岗位需求。2开源职业发展路线:企业视角16企业岗位名称岗位职责岗位要求薪资标准腾讯腾讯云开发者社区运营1、通过分析开发者需求、结合技术热点,策划执行符合开发者诉求的社区内容、社区活动,提升内容数量和创作者数量,提升社区活跃和氛围,推动业界技术布道、提升社区在开发者中的影响力;
2、负责社区内容及影响力传播策略制定,能够独立完成内容撰写策划及制定宣发计划,整合各媒体社区等资源;
3、负责社区创作者和开发者圈子的建立和活跃,以保证社群用户的活跃与粘性,对运营品牌口碑负责,连接技术与行业生态,助力领先的腾讯云技术推广与落地。
4.通过对用户侧的深度了解,分析数据,对产品功能等进行建议,改善用户的内容体验;完善审核推荐规则和流程,严格把控内容质量,维护社区良好秩序。1、善于挖掘热点和话题点并进行相关内容和活动的策划;
2、具备较强的策划能力、文案能力和数据分析能力,善于运用数据驱动产品优化;
3、具有良好的沟通能力、学习能力,具有抗压能力和团队合作精神;
4、熟悉开发者领域、IT技术行业产品的功能特点及社区文化者优先;薪资面议字节跳动开发者社区运营-大数据/开源1、负责字节跳动大数据产品与技术交流社群的组建,包括社群用户的拉新、日常管理运营和维护工作,负责社群内容发布、话题引导、用户答疑;
2、对各类开源社区有基础了解,熟悉开源平台的用户增长和内容增长逻辑,能通过数据分析制定内容运营策略,激励优质社区内容生产;
3、利用技术社区、社交媒体和平台,策划并执行面向开发者的线上\线下活动,提升字节跳动大数据产品在开发者群体中的影响力;
4、建立和维护开发者核心圈,整合内外资源,维护开发者群体KOL等。1、熟悉和了解数据行业,对国内外数据领域的发展有一定认知和洞察;
2、具备良好的文案写作能力,英语读写能力以及活动策划组织能力,了解主流学术媒体、科技类媒体平台和渠道运营;
3、两年以上互联网企业、数据领域的工作经验,对数据技术和开发者社区有较为全面的了解者优先;
4、具备良好的团队合作能力和沟通能力,能顺畅地协同和推动内外部合作伙伴,并拿到结果;45-75k字节跳动开源社区运营专家1、负责抖音开放平台的开发者运营工作,包括但不限于梳理各业务开发者的类型、开发者对平台需求,为开发者入驻到准出的全链路生命周期负责;
2、通过对开发者分类分层运营及成长体系的建设,打造健康的开发者生态,支撑各业务方发展,为开发者的规模和满意度负责;
3、梳理开发者平台内全生命周期需管控节点,明确权限范围和授信关系,参与生态治理体系的制定,保障开发者生态健康发展;
4、结合面向小程序的能力及内容开放,制定有效的小程序分层开放策略及激励机制。1、本科及以上学历,3年及以上互联网平台产品工作经验,有开放平台、ToB平台运营经验优先;
2、具备大型生态供给端运营经验,包括但不限于设计合理的供给端分层逻辑以及不同层级的运营策略,通过运营手段提升开发者数量及质量;
3、对数据敏感,可通过数据分析及市场反馈不断推进业务优化;
4、优秀的沟通协调、资源整合、问题解决能力,能有效推进解决方案落地,有较强的自我驱动能力、判断能力、执行能力,能够适应业务的快速发展和变化。25-40k大应科技开源布道师1.作为Aloudata开源产品主动元数据框架BIGMeta的技术代言人,在目标行业或知名技术大会、Meetup、Webinar等场合发表针对性演讲,提升产品认知度,影响目标群体心智。
2.负责高质量的技术传播内容产出,内容形式不限于博客、视频、直播、演示代码等
3.在GitHub、论坛、社区微信群或其他开发者平台,与开发者保持互动,促成产品试用
4.负责标杆用户的技术支持工作,推动BIGMeta在更多一线团队和目标行业落地
5.参与国内、国际主动元数据、数据管理等技术标准制定,白皮书编写。1.5年以上复杂系统架构设计经验,对技术架构有理解力和分析能力
2.在数据管理、数据治理、元数据等领域有丰富技术实践或独到见解,了解Hadoop/Spark/Flink/Kylin/Clickhouse等至少1~2项目的原理机制
3.熟悉常见开源运转方式和开发者群体,有参与开源项目/社区经历者优先
4.具备良好的技术文章写作与技术演讲能力
5.良好的英语写作能力(6级),满足工作交流需要40k-60k·15薪2开源职业发展路线:企业岗位现状17企业重点部门典型开源岗位主要技术栈/方向华为终端BG1)嵌入式开发工程师
2)系统架构师OpenHarmony、物联网、Linux内核2012实验室(中央研究院)1)深度学习框架工程师MindSpore、AI训练优化、分布式计算云计算BG(CloudBU)1)Linux内核开发者
2)云原生工程师openEuler、Kubernetes、OpenStack阿里巴巴阿里云智能事业群1)云原生工程师
2)Java生态开发工程师RocketMQ、Dubbo、Kubernetes(ACK)达摩院(DAMOAcademy)1)机器学习系统工程师DeepRec、AI工具链蚂蚁集团(关联公司)1)数据库内核工程师
2)分布式系统工程师OceanBase、SOFAStack、金融级中间件腾讯腾讯云(TencentCloud)1)容器技术专家
2)云原生开发工程师TKE(K8s发行版)、服务网格TEG(技术工程事业群)1)大数据算法工程师Angel(分布式机器学习)、Flink/SparkIEG(互动娱乐事业群)1)图形学开发者
2)游戏引擎工程师Unreal/Godot、游戏工具链百度百度研究院(BaiduResearch)1)AI框架开发工程师
2)AI编译器工程师PaddlePaddle、模型部署优化智能驾驶事业群(IDG)1)自动驾驶系统工程师Apollo、ROS、CyberRT字节跳动基础架构团队1)云原生开发工程师(Go/Rust)
2)高性能网络工程师CloudWeGo(Kitex/Hertz)、QUIC协议推荐算法团队1)分布式系统工程师
2)大数据开源优化工程师BytePS、Spark/FlinkAILab/计算机视觉团队1)AI开源工具链工程师
2)CV算法工程师MLflow/Ray、OpenMMLab3开源任务参与指南:贡献指南18K8S贡献指南示例贡献方式:社区鼓励代码、文档、测试、社区支持等多元贡献,并建议新手从文档或“GoodFirstIssue”入手。贡献流程:遵循标准的GitHub工作流,即通过提交清晰的Issue和规范的PullRequest,并积极参与代码审查来完成贡献。社区结构与角色:社区由SteeringCommittee、SIG和WG组成,贡献者可通过持续参与逐步晋升为提交者或委员会成员。本地化贡献:主要通过翻译并提交多语言文档来参与,并鼓励加入本地化团队以协作保证质量。工具与资源:利用GitHub工作流、Bot命令等自动化工具来提升贡献和协作的效率。参考文档:丰富的官方指南(如贡献者文档、SIGDocs)和行为准则是快速上手和规范参与的重要资源。3开源任务参与指南:PullRequest提交指南19准备工作:Fork项目仓库:在GitHub或Gitee上Fork目标项目的仓库到自己的账户将Fork后的仓库克隆到本地:gitclone/你的用户名/项目名.git创建分支:基于主分支(如main或master)创建一个新分支,分支名称应简洁且有意义:gitcheckout-bfix-login-bug。3开源任务参与指南:PullRequest提交指南20编写代码:(1)实现功能或修复问题:在新分支上编写代码,确保代码符合项目的编码规范和风格。(2)编写测试:如果项目有测试要求,确保新增代码通过测试,并添加必要的测试用例。提交代码:(1)提交更改:将更改提交到本地分支,提交信息应简洁明了:gitadd.;gitcommit-m"修复登录页面加载缓慢的问题"。(2)推送分支:将本地分支推送到远程仓库:gitpushoriginfix-login-bug。在新建分支上编写代码将编写好的代码commitandpush3开源任务参与指南:PullRequest提交指南21创建PullRequest(1)访问GitHub/Gitee:在GitHub或Gitee上进入Fork后的仓库,点击“Compare&pullrequest”按钮。(2)填写PR描述:标题---简洁概括PR的内容,例如“修复登录页面加载缓慢的问题”。(3)选择目标分支:确保PR的目标分支是主项目的正确分支(如master)。(4)关联Issue:关联当然PR到对应修复的Issues。规范的PR页面如图所示。3开源任务参与指南:PullRequest提交指南22创建PullRequest(1)访问GitHub/Gitee:在GitHub或Gitee上进入Fork后的仓库,点击“Compare&pullrequest”按钮。(2)填写PR描述:标题---简洁概括PR的内容,例如“修复登录页面加载缓慢的问题”。(3)选择目标分支:确保PR的目标分支是主项目的正确分支(如master)。(4)关联Issue:关联当然PR到对应修复的Issues。规范的PR页面如图所示。3开源任务参与指南:PullRequest提交指南23创建PullRequest(1)访问GitHub/Gitee:在GitHub或Gitee上进入Fork后的仓库,点击“Compare&pullrequest”按钮。(2)填写PR描述:标题---简洁概括PR的内容,例如“修复登录页面加载缓慢的问题”。(3)选择目标分支:确保PR的目标分支是主项目的正确分支(如master)。(4)关联Issue:关联当然PR到对应修复的Issues。规范的PR页面如图所示。3开源任务参与指南:PullRequest提交指南24签署贡献者许可协议(ContributorLicenseAgreement,CLA):(1)检查CLA要求:CLA是一种法律协议,用于明确贡献者(开发者)与开源项目之间的知识产权关系。(2)签署流程:如图,a.在PR页面被提示需要签署CLA。b.阅读协议内容并确认签署。c.输入验证命令确保签署成功。(3)未签署CLA的后果:如果未签署CLA,PR将无法被合并。3开源任务参与指南:IssueReport提交指南25提交Issue的要点:搜索现有Issue:提交前先搜索现有Issue,避免重复提交并在已有问题下补充信息。(1)使用GitHub或Gitee的搜索功能,输入关键词(如错误信息、功能名称等)。(2)浏览项目的Issue列表,查看是否有重复或相关的Issue。如果发现类似Issue,可以在现有Issue下补充信息或表达支持,避免重复提交。tag+具体描述Issue列表3开源任务参与指南:IssueReport提交指南26提交Issue的要点:搜索现有Issue:提交前先搜索现有Issue,避免重复提交并在已有问题下补充信息。选择Issue模板:许多开源项目提供了Issue模板,帮助贡献者规范提交内容。选择适合的模板(如BugReport、FeatureRequest、Documentation等),并按照模板要求填写信息。3开源任务参与指南:IssueReport提交指南27提交Issue的要点:搜索现有Issue:提交前先搜索现有Issue,避免重复提交并在已有问题下补充信息。选择Issue模板:许多开源项目提供了Issue模板,帮助贡献者规范提交内容。选择适合的模板(如BugReport、FeatureRequest、Documentation等),并按照模板要求填写信息。填写标题:标题应简洁明确,概括问题核心,便于快速识别。好的标题:登录页面加载缓慢;不好的标题:页面有问题。好的标题不好的标题3开源任务参与指南:IssueReport提交指南28提交Issue的要点:搜索现有Issue:提交前先搜索现有Issue,避免重复提交并在已有问题下补充信息。选择Issue模板:许多开源项目提供了Issue模板,帮助贡献者规范提交内容。选择适合的模板(如BugReport、FeatureRequest、Documentation等),并按照模板要求填写信息。填写标题:标题应简洁明确,概括问题核心,便于快速识别。详细描述:在Issue正文中,提供详细的背景信息,包括:(1)问题描述:清晰说明问题的具体表现。(2)复现步骤:列出复现问题的详细步骤,帮助开发者快速定位问题。(3)预期行为:描述期望的结果。(4)实际行为:描述实际发生的结果。(5)环境信息:提供操作系统、浏览器、软件版本等相关信息。(6)附加信息:附上错误日志、截图、代码片段或测试用例,帮助开发者更好地理解问题。复现步骤实际行为预期行为附加信息3开源任务参与指南:IssueReport提交指南29提交Issue的要点:搜索现有Issue:提交前先搜索现有Issue,避免重复提交并在已有问题下补充信息。选择Issue模板:许多开源项目提供了Issue模板,帮助贡献者规范提交内容。选择适合的模板(如BugReport、FeatureRequest、Documentation等),并按照模板要求填写信息。填写标题:标题应简洁明确,概括问题核心,便于快速识别。详细描述:问题背景、复现步骤、预期与实际行为、环境及附加信息。添加标签:根据项目的标签规范,为Issue添加合适的标签(如bug、enhancement、question等)。标签有助于分类和管理Issue。标签筛选3开源任务参与指南:IssueReport提交指南30提交Issue的要点:提交前先搜索现有Issue,避免重复提交并在已有问题下补充信息。许多开源项目提供了Issue模板,帮助贡献者规范提交内容。选择适合的模板(如BugReport、FeatureRequest、Documentation等),并按照模板要求填写信息。填写标题:标题应简洁明确,概括问题核心,便于快速识别。详细描述:问题背景、复现步骤、预期与实际行为、环境及附加信息。添加标签:根据项目的标签规范,为Issue添加合适的标签(如bug、enhancement、question等)。标签有助于分类和管理Issue。提交Issue:确认信息无误后,点击提交按钮。提交后,保持关注Issue的更新,及时回复开发者的提问或提供更多信息。开发者回复318种常见的开源任务种类3105-社区管理与运营02-工具与框架贡献1)开发工具:为开源项目开发辅助工具,如CLI工具、IDE插件等。2)框架支持:为项目适配新的技术框架或库,例如支持新的编程语言版本或数据库。03-文档与翻译
1)文档编写:撰写项目的使用说明、技术文档或贡献指南。2)文档翻译:将项目的文档翻译成多种语言,帮助更多用户理解和使用项目。04-测试与反馈1)测试用例编写:为项目编写测试用例,确保功能的稳定性和兼容性。2)问题报告:提交Issue,报告项目中的Bug或提出改进建议。3)用户反馈:通过社区或邮件列表提供使用反馈,帮助改进项目。01-代码开发与维护1)功能开发:为开源项目添加新功能或优化现有功能。2)Bug修复:解决项目中的已知问题或错误。3)代码重构:优化代码结构,提升代码的可读性和性能。4)测试编写:为项目编写单元测试、集成测试等,确保代码质量。5)文档更新:完善项目的技术文档、API文档或用户指南。06-设计与用户体验
1)UI/UX设计:为项目设计用户界面或优化用户体验。2)图标与视觉设计:为项目设计Logo、图标或其他视觉元素。0102040506070807-基础设施与DevOps
1)CI/CD配置:为项目配置持续集成和持续部署(CI/CD)管道。2)服务器维护:管理项目的服务器或云资源,确保服务稳定性。3)容器化与部署:将项目容器化(如Docker)并部署到云平台。4新手开源任务指南:开源任务种类08-安全与合规
1)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 遂宁市大英县2025-2026学年第二学期二年级语文第七单元测试卷部编版含答案
- 长春市朝阳区2025-2026学年第二学期五年级语文期末考试卷(部编版含答案)
- 福州市福清市2025-2026学年第二学期四年级语文第八单元测试卷(部编版含答案)
- 威海市环翠区2025-2026学年第二学期五年级语文第八单元测试卷(部编版含答案)
- 浆丝机操作工岗前诚信道德考核试卷含答案
- 木竹藤材处理工岗前生产安全水平考核试卷含答案
- 交换机务员诚信道德能力考核试卷含答案
- 石膏制品生产工安全教育评优考核试卷含答案
- 龙岩武平县2025-2026学年第二学期三年级语文第八单元测试卷(部编版含答案)
- 昌都地区类乌齐县2025-2026学年第二学期四年级语文第八单元测试卷(部编版含答案)
- 2024年山东司法警官职业学院招聘笔试真题
- 新人教版初中7七年级数学下册全册完整教案
- 2025年土地使用权永久性转让协议书
- DBJ41T 201-2018 民用建筑信息模型应用标准
- 灰土挤密桩施工分包合同
- 2024年广东省东莞市常平镇机关事业单位招聘编外86人历年(高频重点提升专题训练)共500题附带答案详解
- 2024山东特检集团招聘24人公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- 2022室外排水设施设计与施工-钢筋混凝土化粪池22S702
- 2022版义务教育(道德与法治)课程标准(附课标解读)
- 设计学研究方法书
- 农业科技成果转化与推广应用管理实践
评论
0/150
提交评论