登录 支持培训 合作伙伴 行业 服务 澳门新葡8455最新网站 关于我们
NOKIA HZTC 软件匠艺组织将于2020年在10下旬携手杭州两大高校——杭电以及浙工大共同举办以Clean Code为主题的代码大赛,这是我司第一次与高校携手举办代码大赛。
每年一次的代码大赛是软件匠艺组织从2012成立以来就一直持续的传统,志在为我司开发人员提供工作之外一个交流和提升的平台。从2012以来,我们组织过以Clean Code, 业务算法以及人工智能等为主题的代码活动,每年都会吸引大批的开发人员参加,平均人数为二三百人,并且一些winners后来成为了我们软件匠艺组织的成员。
软件匠艺历届负责人寄语:
第一任(2012-2015)Wang Gang-Layner —— 现Nokia Ecosystem Manager
作为公司软件匠艺活动的参与者,我有幸和一批专家一起合作过,目睹和参与了很多和软件匠艺相关的工作。我对软件匠艺的理解首先它是一种超越自我、精益求精、追求卓越的态度。其次,软件行业也是一个飞速发展的行业,软件工程涉及多个环节和多个学科的结合,软件匠艺也是将多种知识有效结合的一种技能,这些对程序员提出既有广度又有深度的要求,同时,随着软件规模的日益增大,软件匠艺也越来越是一种团体协作和互助共赢的过程。顺祝各位匠人在前进的路上感受到其中的乐趣。
第二任(2016-2019) Zhang Yang —— 现就职麦肯锡咨询公司
2012年的时候我加入软件匠艺的时候,就问过高手们一个问题:代码能写一辈子吗?“能!”看到他们坚定的眼神,我就知道来对地方了。一群对代码保持自尊心的人,聚在这里,希望将追求精益求精的理念传播给更多的人:烂代码就是在摧毁未来!
之后的八载,成员有去来,理念永不改,大赛年年有, 今年更可爱
软件匠人们的2020年分两半,一半在家里,一半在放风;一半在写代码,一半在测代码。还有三个月就要过去,疫情阴影高悬,风景这边独好,匠艺精神永存
现任 (2020-) Zhou Feng-Fred —— 现5G&SC Change Leader
早在2010年,澳门新葡亰杭州研发中心的3G RNC平台开启了第一次Clean Code大赛,刚开始这只是一个产品线内部自发组织起来的比赛,但是由于热爱编程的人非常多,许多其他部门的同事也希望有机会参加这样的比赛,到了2013年几个产品线联合起来,举办了整个杭州研发中心的Clean Code大赛。从那时起,Clean Code大赛在澳门新葡亰杭州研发中心每年都会举办,从未中断过,已经成为了许多程序员心目中的一个嘉年华。
在历届比赛中,有近百位编程高手获得了荣誉,增强了信心,扩大了影响力,可以更有效地把整洁代码的理念应用到日常工作中。更重要的是,获奖选手们逐渐成了整洁代码在澳门新葡亰杭州研发中心的推动者,他们可以相互学习,共同组织各种和编程相关的培训和活动,推动了澳门新葡亰杭州研发中心的技术氛围的提升。
2019年,我们的clean code比赛走出了公司,吸引了国内一家著名银行的同好们共同举办了比赛。2020年,我们的Clean code比赛将走进大学校园,希望有更多的同学可以借此了解Clean Code(整洁代码),掌握一手写出好代码的技艺,并且为个人的职业发展插上翅膀。
裁判眼中的Clean Code:
Clean Code Rule:
有意义的命名
1. 名副其实,能够通过名称知道变量、方法的作用意义;
2. 避免误导,避免留下掩藏代码本意的错误线索;
3. 做有意义的区分;
4. 使用读的出来的名称;
5. 使用可搜索的名称;
6. 避免使用编码,把类型或作用域编进名称里面,徒然增加了解码的负担;
7. 避免思维映射,不应当让读者在脑中把你的名称翻译为他们熟知的名称;
8. 每个概念对应一个词,给每个抽象概念选一个词,并且一以贯之;
9. 添加有意义的语境,用有良好命名的类、函数或命名空间来放置名称。
函数
1. 短小,函数的第一规则是要短小;
2. 只做一件事;
3. 每个函数一个抽象层级,函数中的语句都要在同一抽象层级上;
4. 使用描述性的名称,命名方式要保持一致;
5. 函数参数,最理想的参数数量是零, 我们不太期望信息通过参数输出;
6. 无副作用,不做预期以外的行为;
7. 分隔指令与查询,函数要么做什么事,要么回答什么事,但二者不可得兼;
8. 使用异常替代错误返回码,错误处理代码就能从主路径中分离出来;
9. 别重复自己,重复可能是软件中一切邪恶的根源;
10. 结构化编程,每个代码块尽量做到一个入口、一个出口。
注释
1. 注释不能美化糟糕的代码;
2. 用代码来阐述,很多时候,简单到只需要创建一个描述与注释所言同一事物的函数即可。
格式
1. 垂直格式,变量和函数应该在靠近被使用的地方定义;
2. 横向格式,遵循无需拖动滚动条到右边的原则。
面向对象设计的原则(SOLID)
1. 单一职责原则(SRP),就一个类而言,应该仅有一个引起它变化的原因;
2. 开放-封闭原则(OCP),软件实体(类、模块、函数等)应该是可以扩展的,但是不可修改;
3. Liskov替换原则(LSP),子类型必须能够替换掉他们的基类型;
4. 依赖倒置原则(DIP),抽象不应该依赖于细节,细节应该依赖于抽象;
5. 接口隔离原则(ISP),不应该强迫客户依赖于他们不用的方法,接口属于客户,不属于它们所在的类层次结构。
单元测试(必需)
1. 保持测试代码的整洁,和产品代码一致的质量要求;
2. 每个测试Case只测试一个场景;
3. 整洁的测试遵循F.I.R.S.T.规则:
a. 快速(Fast),测试应该能够快;
b. 独立(Independent),测试应该互相独立;
c. 可重复(Repeatable),测试应当在任何环境中重复通过;
d. 自足验证(Self-Validating),测试应该有布尔值输出表述通过或失败;
e. 及时(Timely),测试应及时编写。
迭代
1. 通过迭代设计达到整洁目的;
2. 提倡频繁的检入代码和UT;
3. 鼓励按TDD方式写UT,TDD三原则:
a. 在编写失败的单元测试之前,不可编写相应的产品代码;
b. 单元测试做到刚好失败或编译错误,不做额外编写;
c. 产品代码刚好足以通过当前失败的测试,不做额外编写。
规则简介:
1.考查点:理解试题并实现题目给出的算法;重在考查代码整洁度。
2.Q&A 环节: 入群如有问题,可咨询Ji Sandy (微信:18626881771)。
   Q&A 群的设立是为了参赛人员理解试题提供协助,大赛开始后,Q&A群为唯一问题澄清渠道,望参赛人员注意。组织方会定期将群内的问题与裁判的解答整理成册分享给参赛人员,最大限度地为参赛人员提供便利与协助。
3.注意:关于比赛过程中对代码提交的反馈(Dashboard) 并不代表最终排名,解释权归裁判所有。
比赛试题:
虚拟机(VM)安装: :
下载虚拟机镜像(.ova文件)
Git上传代码操作指导:
GIT用户名密码获取渠道:
NOKIA员工通道
大学生通道:用户名密码将会通过邮件发送,请注意查收:发件人:Clean_Code_University,?ccu (NSB - Global)

关于我们

公司概况

企业责任

澳门新葡亰

国务院国资委

中国华信邮电科技有限公司

联系我们

在社交媒体关注我们

Copyright??2018澳门新葡8455手机版版权所有
沪ICP050146651号-2 上海市互联网违法与违规信息登记中心
沪公网安备 31011502006572号
Alternate Text
XML 地图 | Sitemap 地图