公司内部组织的代码道场,旨在大家一同提高编程理念、编程效率、个人竞争力,为大家提供一个有活力的代码社区。
- 注册一个leetcode账号,官方地址:https://leetcode-cn.com
- 如果你使用java,ios,android,可以到 https://github.com/a5535772/code-dojo 下载简易环境
- 关于结对编程的知识可以在 https://www.cnblogs.com/kf7798/articles/184410.html 做一些了解
- 由于组织员的能力有限,欢迎大家联系群管理员共建各种语言的初始化环境,当前为内部群,暂不对外开放。
- 签到
- 开发环境准备,如果你使用java,ios,android,可以到 https://github.com/a5535772/code-dojo 下载简易环境
- 进行分组、介绍结对编程;记住尽量不要重复组队
- 介绍题目、选择约束;
- 参与者进行编码;主持人&小助手进行巡场,给予需要帮助的同学提供帮助
- 完成编码,进行代码review
- 进行下一个session
投票选取当日代码最优的同学,可以从完成度、可读性、执行速度多方面开看。
不要沉迷于实现需求,通过练习可以掌握到很多有用的知识。
白手起家:使用纯文本编辑器
自证清白:使用测试用例来证明自己是对的
测试驱动:使用TDD的红绿的模式进行编码,注意必须先写测试用例!
绝代双骄:小鱼儿使用鼠标,花无缺使用键盘
武器大师:不允许使用鼠标
闪电侠:本场就看谁最快提交正确的代码
抽象大师:每个方法不超过 5 行
建筑大师:使用一种或者多种设计模式
语言大师:不允许写注释,发现可读性最佳的代码
整蛊专家:你可以为你的下一队成员增加一个约束
time of session : 10min
num. of rounds : 2
best of the best : 小黑、小芳
rule s1 : 没有规则,10min
rule s2 : 自证清白,10min
time of session : 10min
num. of rounds : 2
best of the best : 豆豆、crystal吴 (自解释的代码)
rule s1 : 没有规则,10min
rule s2 : 采用“语言大师”的约束,15min
purpose : 代码的自解释,了解结对编程
time of session : 30min
num. of rounds : 2
best of the best : WH、LX (分享纯键盘编程心得)
rule s1 : 采用“绝代双骄”,30min,剧透算法,关注合作,公布贪心算法答案
rule s2 : 采用“武器大师”的约束,时间30min,小鱼儿使用键盘,花无缺使用百度帮助小鱼儿,关注纯键盘操作
purpose : 更快的编程效率,关注纯键盘操作
IDEA 快捷键 : https://www.jianshu.com/p/6d752d85cd35
Eclipse 快捷键 : https://www.jianshu.com/p/dd05065d4d18
参考资料 : https://mp.weixin.qq.com/s/jFarfOH2YVhxYLRrAL4ibg
time of session : 40min
num. of rounds : 1
best of the best : NA
rule s1 : 重构BindedCarApiImpl,没有规则,对于重构的代码做展示。并由主持人现场进行重构的演示。
purpose : 使用真实的怀味道来体验重构,讨论什么是烂代码,什么又是小伙伴重构后认为的好代码。
课后练习 : 教练与组员结对完成一些生产代码的重构。
遗憾 : 本次课程很多同学是第一次参加,导致对于单元测试、代码怀味道、快捷键的认识不足;
垃圾代码的书写准则 : https://github.com/trekhleb/state-of-the-art-shitcode/blob/master/README.zh-CN.md
time of session : 40min
num. of rounds : 2
best of the best : NA
rule s1 : 重构BindedCarApiImpl,没有规则,对于重构的代码做展示。
rule s2 : 由主持人演示重构的技巧和思路
purpose : 学习重构,通过练习完成代码重构
源码参考 : https://github.com/wubin28/order-receipt-baseline
答案参考 : https://github.com/seabornlee/order-receipt-baseline/tree/answer
time of session : 2h
num. of rounds : 2
best of the best : NA
rule s1 : 武器大师 & 自证清白
purpose : 学习重构,通过练习完成代码重构,了解策略模式
源码参考 : https://github.com/emilybache/GildedRose-Refactoring-Kata
参考答案 : https://github.com/wubin28/gildedrose-refactoring-kata-java
参考文档 : https://www.jianshu.com/p/2c8e46001f61
参考文档 : https://www.jianshu.com/p/866cf440ad3e
time of session : 10min
num. of rounds : 2
best of the best : NA
rule s1 : 没有规则,15min
总结 : 给大家介绍了结对编程的**,给大家演示了单元测试作为屏障的好处
结对编程介绍 : https://www.jianshu.com/p/8e157eafa286
参考活动记录
时间:每日中午零散时间 地点:登陆www.codingame.com,体验在线来一把的爽快编程,你可以加leo_zhang为好友,加入上汽内部的在线来一把。
感谢财哥对原生框架的支持,感谢潇洒哥、Ady Cheng分别提供了code-dojo-android、code-dojo-ios的基础框架
代码道场得到了组织的认可,从个人团队横跨整个公司后端团队,后续会产出更多经验和工作中的任务