战码先锋,PR征集令(以下简称“战码先锋”)第二期正如火如荼地进行中,涉及OpenAtom OpenHarmony(以下简称“OpenHarmony”)主干仓、SIG仓、三方库,共计1000+代码仓任君挑战。

刚看到活动的朋友们肯定有个疑问:什么样业务背景的人能参与战码先锋活动?是否可以找到提PR的一些基本方法?为此,我们邀请了战码先锋第一期的贡献者,也是第二期队长之一的King He为我们带来了他的一些有效经验。以下是他的分享。

实践证明,来自不同背景的人,有助于充分发现问题。如果你是一名翻译,虽然不一定有深厚的技术功底,但你可以发挥专业能力,帮助大家发现项目中语言类问题。同理,测试、资料、法务背景的同事亦是如此,不同专长的人加入,更有利于充分地发现各种类型的问题。这点类似敏捷开发的全功能团队。参与角色更全面,发现问题更充分。英雄不问出处,只要敢于挑战,均可参与战码先锋,为开源项目添砖加瓦。

本文是基于一名技术笔译的视角,从开发者体验的角度和大家一起探讨代码文件中的常见资料类问题,并在此基础上分享一些个人的建议。文章主要分为三个部分:资料内容对于开发者生态的意义;影响资料体验的典型问题;提升资料体验的一些倡议。

首先,需要简单了解一下资料内容对于开发者生态的意义。

根据近几年的开发者生态现状和开源生态报告,完善、准确的内容,是开发者选择一个生态的重要因素之一。根据Accenture的调查报告显示,开发者认为技术准确及最新的内容(technically accurate and up-to-date content)是开发者生态中最为重要的两个要素。

来源:ENGAGING THE DEVELOPER COMMUNITY - What Developer Ecosystems Need to Know,Accenture

OSCHINA和Gitee联合发布的2021中国开源开发者报告,进一步佐证了这一点。从报告可以看出,相关文档/资料是否丰富的重要性仅次于源码质量。

--摘自《2021中国开源开发者报告》

好的资料胜过千军万马,资料的重要性不言而喻。好马配好鞍,好的代码要有好的资料配套,才能产生1+1大于2的效果,才能帮助开发者更好地上手,产生良好的开发者体验,吸引更多的开发者参与。一个复杂的技术产品,如果没有说明书,用户就没法高效、正确地使用该产品。代码就好比复杂的产品,没有完备的资料,开发者将无法理解源码的作用和实现机制,在极大程度上影响其体验。

对于OpenHarmony开源项目,文本内容主要包含两个部分:一是Docs仓中发布的文档,包括但不限于开发指南、API参考等。二是代码仓中包含的各种描述性信息,如readme、代码注释、log日志、API说明等。

那么,影响开发者体验资料内容质量要素有哪些呢?

根据开发者生态相关报告,这些要素包括但不限于:accuracy(准确性)、completeness(完整性)、currency(时近性)、findability(检索性)及readability(易读性)。需要注意的是,此前的报告大多以主流开源项目作为基础研究对象。这些项目主要由欧美Top玩家主导,在语言文化方面有着天然优势,具备良好的国际化和本地化成熟度。因此,国际化、本地化、基础语言质量等方面同样需要OpenHarmony开源项目重点关注。

接下来,我们将针对英文文本内容,在战码先锋活动中可关注哪些方面的典型问题?本次主要以非Docs仓的文本问题作为示例。

特别声明:以下示例仅作为技术交流的示意用途,不构成任何明示或暗示的声明、陈述。同时,由于相关仓内容在持续的变化更新,如有出入,请以实际为准。

一、准确清晰

示例1:辞不达意。这里API是DelUser,其功能为删除用户,因此描述应该是Delete a user而非user authentication。

示例2:意思错误。PIN_MIXED是Mixed PIN鉴权,FACE_2D才是2D人脸识别鉴权。

示例3:含义相反。这里是inactive状态的回调,叠加语法错误,增加理解难度。实际含义应为:Callback invoked in the main thread when an ability becomes inactive.

二、内容完整

根据开源要求,开源代码仓中注释内容均需英文化。受限于英文表达能力或内部合规方面的考量,开发人员可能会倾向于删除或者放弃提供一些需要英文化的必要内容,如文件的简述、实现机制或者注意等,如下例所示:左侧enum缺少必要的注释,开发者无法理解short period、normal period和long period的差异。

三、组织合理

信息的组织应符合用户的逻辑认知顺序,例如,API介绍应遵循“API功能说明+权限+参数说明+返回说明”的信息组织结构。下面例子中,API名称被直接替代为API功能说明,而实际的API功能说明则出现在permission之后。

参考修改如下:

四、一致性

一致性主要体现在风格的一致性和内容的一致性两方面。

示例1:表达风格不一致。如下日志描述中,上下两行的大小写风格不一致:

示例2:内容和实际不符。如下Readme中,目录结构中代码仓名称和实际代码仓名称不符:

五、基础语言问题

示例1:拼写错误出现在注释语句或API名称、参数等,如下例所示:faild拼写错误,正确应该为failed。

再看一个特例,这里pin虽然并非拼写错误,但是实际上它是personal identification number的缩写PIN,如写成pin,表达的意思就完全不一样了。

示例2:语法错误、表达不规范等问题在代码文件中普遍存在,如下例所示:上下两个句子风格不一致。start device find for restart没有使用sentence caps,第一个单词首字母大写。两个句子均存在语法错误,而且因为用词不当问题,两个句子之间的内在逻辑关联没有体现,前面表示动作:Start discovery of devices for restart.后面则表示动作结果:Failed to start device discovery.

再来看一个示例,此处Active和Deactive为形容词,不能代替动词使用,对应动词应该是Activate和Deactivate。

六、版式问题

单行内容超宽,或者断行不当等问题会造成版式不美观。如下例所示,该句子被不当断行,下面一行内容可移到上面一行:

修改如下:

七、包容性

包容性语言是当今的一个重要趋势,使用无偏见、包容性的措辞是品牌温度在文化遵从和人文关怀方面的重要体现。一些原被接受认可的术语被逐步取代,如chairman、aldermen暗示男性的统治力,尤其是在对女性致辞/讲话时。如下示例表达违反了包容性语言中角色和标签的要求,应该使用parent替代father:

还有一些值得我们关注的方面,如慎用定义阶层、种族的术语。例如,当前行业和友商的做法是尽量用primary及secondary分别替换master和slave,用trustlist和blocklist分别替换blacklist及whitelist等。

以上是一些影响语言文化体验的问题示例,我们在战码活动中可对此种类型的问题多加关注。

提升资料体验的一些倡议

一个成功的生态离不开极致的开发者体验。错误无论大小,都会给开发者体验带来不同程度的负面影响。借此机会,呼吁大家:

• 转变观念:开发者资料是开发者旅程(developer journey)中的关键一环,对开发者体验起着不可忽视的重要作用。对于开源项目,高质量的资料更是开发者参与贡献的基础。产品功能和资料如天平的两端,应被赋予同样的重视。

• 用户视角:开发者是资料的第一读者和用户。在战码活动中,我们可基于开发者的视角去发现影响开发者完成任务的准确性、完整性、清晰性等各方面问题,积极去提Issue、PR,共同提升资料质量。

• 低错清零:一些低级错误不一定会阻碍用户理解并完成任务,但可以确定的是会对品牌的声誉带来负面影响。我们应尽量去发现并修改此类问题,共同捍卫OpenHarmony的质量口碑。

欢迎感兴趣的开发者朋友们一起参与战码先锋,PR征集令!在Gitee的OpenHarmony代码仓提交PR参与活动,和全球的开发者一起共建OpenHarmony的繁荣生态!现在就打开Gitee,为OpenHarmony提PR,你的一小步,就是OpenHarmony开源的一大步。

我们一群人在一起做一件伟大的事情,唯有共同携手,在各自专长的领域去构筑极致的开发者体验,方能助力OpenHarmony生态行稳致远,也必将共同见证OpenHarmony成为万物互联时代的明珠。

若干年后,当我们回顾起这段历史,我们可以对着开源贡献者证书,自豪地对着我们的孩子说,这伟大的生态背后有着我们的一份努力和付出,这多么的让人引以为傲。

资深技术笔译总结的这7条建议,看完提PR效率倍增的更多相关文章

  1. 将Web应用性能提高十倍的10条建议

    导读 提高 web 应用的性能从来没有比现在更重要过.网络经济的比重一直在增长:全球经济超过 5% 的价值是在因特网上产生的(数据参见下面的资料).这个时刻在线的超连接世界意味着用户对其的期望值也处于 ...

  2. <转>“人脉投资”的10条建议

    谁都知道人脉很重要,所以有些人非常勤奋的“做人脉”,他们往往会这样做—— 积极的参与各类线下活动,逢人就换名片.加微信. 见到名人或者重要人物必合影,而且他们还会掏出手机来给你看. 逢年过节,给所有他 ...

  3. C++编程开发学习的50条建议(转)

    每个从事C++开发的朋友相信都能给后来者一些建议,但是真正为此进行大致总结的很少.本文就给出了网上流传的对C++编程开发学习的50条建议,总结的还是相当不错的,编程学习者(不仅限于C++学习者)如果真 ...

  4. 关于PHP开发的9条建议

    这篇文章主要介绍了关于PHP开发的9条建议,都是个人的一些经验总结,有需要的小伙伴可以参考下. 本文只是个人从实际开发经验中总结的一些东西,并不是什么名言警句,写出来有两个目的:一是时刻提醒自己要按照 ...

  5. 将 Web 应用性能提高十倍的10条建议

    提高 web 应用的性能从来没有比现在更重要过.网络经济的比重一直在增长:全球经济超过 5% 的价值是在因特网上产生的(数据参见下面的资料).这个时刻在线的超连接世界意味着用户对其的期望值也处于历史上 ...

  6. 从零开始学 iOS 开发的15条建议

    事情困难是事实,再困难的事还是要每天努力去做是更大的事实. 因为我是一路自学过来的,并且公认没什么天赋的前提下,进步得不算太慢,所以有很多打算从零开始的朋友会问我,该怎么学iOS开发.跟粉丝群的朋友交 ...

  7. 学习javascript怎么入门,初学者5条建议

    你是否已经初步掌握了html和css,但完全不知道从何入手Java?如果是,这里总结了5条建议,帮助JavaScript初学者总结学习方法,提高学习效率. 一.多看视频少看书 对初学者而言,看书的效率 ...

  8. IOS开发-提升app性能的25条建议和技巧

    前言 这篇文章介绍了作者开发工作中总结的25个iOS开发tips, 多年之前读过这篇文章.收益良多,基本每一个tips在我的应用开发过程中都使用过.今天把这篇文章又一次整理转发下,与大家一起学习,不论 ...

  9. 关于Java代码优化的44条建议!

    关于Java代码优化的N条建议! 本文是作者:五月的仓颉 结合自己的工作和平时学习的体验重新谈一下为什么要进行代码优化.在修改之前,作者的说法是这样的: 就像鲸鱼吃虾米一样,也许吃一个两个虾米对于鲸鱼 ...

  10. 提高Axure设计效率的10条建议

    http://www.woshipm.com/ucd/92153.html Axure 是创建软件原型的快速有力的工具.上手很容易,但是,其中存在一个危险.这款软件是如此的直观以至于很多用户可以在没有 ...

随机推荐

  1. 第119篇: JavaScript 类

    好家伙,我们先来复习一下   关于Java,类的三大特征: 1.封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏. 2.继承,继承性更 ...

  2. MacOS安装多个jdk

    环境 Mac os 为Yosemite 10.10.5版本,想要同时使用jdk7和jdk8. 下载jdk:http://www.Oracle.com/technetwork/Java/javase/d ...

  3. 【Azure Logic App】添加 Storage Account 来提升 Logic App 的性能

    文章原文:https://techcommunity.microsoft.com/t5/azure-integration-services-blog/scaling-logic-app-standa ...

  4. 【Azure 存储服务】Azure Blob下面是否可以创建子文件夹

    问题描述 如何在Azure Storage Account(存储账户) 门户上为 Container 创建子文件夹? 问题解决 经验证,没有办法在门户上直接创建文件夹,不过可以使用Azure Stor ...

  5. 基于 Nebula Graph 构建图学习能力

    本文首发于 Nebula Graph Community 公众号 经常看技术文章的小伙伴可能会留意到除了正在阅读的那篇文章,在文章页面的正文下方或者右侧区域会有若干同主题.同作者的文章等你阅读:经常逛 ...

  6. Linux操作系统不同文件类型区别?

    蓝色代表目录,绿色代表可执行文件,红色代表压缩文件.浅蓝色表示连接文件.白色表示其他文件 相关目录及作用: Bin : 存放普通用户可执行的指令 Boot: 开机引导目录 Dev:设备目录 Etc: ...

  7. C++ STL函数对象 仿函数

    1 //STL函数对象 仿函数 2 #include<iostream> 3 #include<string> 4 5 using namespace std; 6 7 8 / ...

  8. CodeCraft-22 and Codeforces Round 795 (Div. 2)C. Sum of Substrings(分类讨论、贪心)

    感觉分类讨论的能有点弱.遇到复杂一点的分类讨论的题目,代码就写的巨长. 首先观察到处在中间位置的1对答案的贡献是11,具体在中间哪个位置是没有关系的. 只有两端的两个位置是比较特殊的 \(1位置处的1 ...

  9. CPNtools协议建模安全分析---实例(三)

    对于复杂的系统的建模或者协议的建模,各种颜色集的定义以及变量的声明很重要,要区分明确,对于函数行业进程的定义更加复杂.CPN对协议的描述只适合简单逻辑性的协议分析,如果协议包括复杂的算法,那么CPN就 ...

  10. 文心一言 VS 讯飞星火 VS chatgpt (209)-- 算法导论15.4 6题

    六.设计一个 O(nlgn) 时间的算法,求一个 n 个数的序列的最长单调递增子序列.(提示:注意到,一个长度为 i 的候选子序列的尾元素至少不比一个长度为 i-1 候选子序列的尾元素小.因此,可以在 ...