GithubHelp home page GithubHelp logo

code-dojo's Introduction

"why code-dojo"

公司内部组织的代码道场,旨在大家一同提高编程理念、编程效率、个人竞争力,为大家提供一个有活力的代码社区。

准备

  1. 注册一个leetcode账号,官方地址:https://leetcode-cn.com
  2. 如果你使用java,ios,android,可以到 https://github.com/a5535772/code-dojo 下载简易环境
  3. 关于结对编程的知识可以在 https://www.cnblogs.com/kf7798/articles/184410.html 做一些了解
  4. 由于组织员的能力有限,欢迎大家联系群管理员共建各种语言的初始化环境,当前为内部群,暂不对外开放。

活动流程

开场

  1. 签到
  2. 开发环境准备,如果你使用java,ios,android,可以到 https://github.com/a5535772/code-dojo 下载简易环境
  3. 进行分组、介绍结对编程;记住尽量不要重复组队

session

  1. 介绍题目、选择约束;
  2. 参与者进行编码;主持人&小助手进行巡场,给予需要帮助的同学提供帮助
  3. 完成编码,进行代码review
  4. 进行下一个session

best of the best

投票选取当日代码最优的同学,可以从完成度、可读性、执行速度多方面开看。

注意事项

不要沉迷于实现需求,通过练习可以掌握到很多有用的知识。

关于约束

白手起家:使用纯文本编辑器

自证清白:使用测试用例来证明自己是对的

测试驱动:使用TDD的红绿的模式进行编码,注意必须先写测试用例!

绝代双骄:小鱼儿使用鼠标,花无缺使用键盘

武器大师:不允许使用鼠标

闪电侠:本场就看谁最快提交正确的代码

抽象大师:每个方法不超过 5 行

建筑大师:使用一种或者多种设计模式

语言大师:不允许写注释,发现可读性最佳的代码

整蛊专家:你可以为你的下一队成员增加一个约束

主线活动记录

1.Fizz Buzz | 2020/09/18

time of session  : 10min
num. of rounds : 2
best of the best : 小黑、小芳
rule s1 : 没有规则,10min
rule s2 : 自证清白,10min

2.Best Time to Buy and Sell Stock | 2020/09/24

time of session  : 10min
num. of rounds : 2
best of the best : 豆豆、crystal吴 (自解释的代码)
rule s1 : 没有规则,10min
rule s2 : 采用“语言大师”的约束,15min
purpose : 代码的自解释,了解结对编程

3.Best Time to Buy and Sell Stock II | 2020/10/15

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

X.Shit Code 01 | 重构体验 | 2020/10/22

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

4.Order Receipt | 重构 | 2020/11/05

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

5.Gilded Rose | 重构 | 2020/11/26

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

专项记录

Fizz Buzz | 2020/11/27

time of session  : 10min
num. of rounds : 2
best of the best : NA
rule s1 : 没有规则,15min
总结 : 给大家介绍了结对编程的**,给大家演示了单元测试作为屏障的好处
结对编程介绍 : https://www.jianshu.com/p/8e157eafa286

Best Time to Buy and Sell Stock | 2020/11/04

参考活动记录

CLASH OF CODE

时间:每日中午零散时间 地点:登陆www.codingame.com,体验在线来一把的爽快编程,你可以加leo_zhang为好友,加入上汽内部的在线来一把。

更新日志

2020/09/24

感谢财哥对原生框架的支持,感谢潇洒哥、Ady Cheng分别提供了code-dojo-android、code-dojo-ios的基础框架

2020/12/22

代码道场得到了组织的认可,从个人团队横跨整个公司后端团队,后续会产出更多经验和工作中的任务

参考文档

code-dojo's People

Contributors

a5535772 avatar

Stargazers

Lastthing拉诗的猩 avatar Frank Woo(吴峻申) avatar  avatar

Watchers

James Cloos avatar  avatar

Forkers

zjshd1127

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.