Coderetreat

1,800 views

Published on

What is _coderetreat_

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,800
On SlideShare
0
From Embeds
0
Number of Embeds
553
Actions
Shares
0
Downloads
2
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Coderetreat

  1. 1. Code Retreat
  2. 2. ソフトウエア職人だけでなくプロの開発者なら誰であれ生涯学習とスキルの継続的な改善を気にす るべきだろう
  3. 3. 成功するソフトウエア開発に 必要なのは幅広い技術力でありチームで 開発に取り組むことだ
  4. 4. そして、その技術の実践が何よりも重要だ
  5. 5. 残念ながら日々のワークフローと技術力の効率的な習得を 両立するのは難しい
  6. 6. 一時的にであれ、 技術力の習得に専念できる環境を作るのが CodeRetreats の目的だ
  7. 7. Code Retreat
  8. 8. このアイディアは繰り返し実施できるソフトウエア開発の基礎演習に丸 1 日を費やすというものだ
  9. 9. Code Retreat
  10. 10. この演習では単純な課題 ( ライフゲーム ) に、 複数のセッションを通じて 繰り返し取り組む
  11. 11. 各セッションでは特定のソフトウエア開発と設計 の領域の学習を行う
  12. 12. 例えば、ペアプログラミングや TDD だ
  13. 13. ライフゲームは単純なたった 3 つのルールで自動的に動く細胞の集まりで、理解しやすい一方、異なる開発手法やソフトウエア設計上のアイディアを探索するには好都合な題材だ
  14. 14. Code Retreat
  15. 15. Code Retreats のアイディア は 2009 年 1 月のCodemash カンファレンスで 生まれ継続的な改善を経て 世界中で実施されている。
  16. 16. Global Day of Coderetreatというイベントが 2011,12,3 に世界同時開催
  17. 17. プログラミング技術の 習得という観点でひとつのスタンダード と言っても 過言ではありません
  18. 18. Code Retreat
  19. 19. 演習に含まれるのは● シンプルな設計のための 4 つのルール● OO の原則 (SOLID)● 心からの TDD● 関数型プログラミング● 継続的リファクタリング● 悪い習慣を利用する : 手動テストかテスト無し● オブジェクト健康体操● ペアプログラミングとコミュニケーション● ピンポンペア
  20. 20. 参考まで● シンプルな設計のための 4 つのルール http://c2.com/cgi/wiki?XpSimplicityRules● OO の原則 (SOLID) http://en.wikipedia.org/wiki/SOLID_(object-oriented_design)● 心からの TDD http://gojko.net/2009/08/02/tdd-as-if-you-meant-it-revisited/● 継続的リファクタリング http://c2.com/cgi/wiki?RefactorMercilessly● オブジェクト健康体操 http://www.cs.helsinki.fi/u/luontola/tdd-2009/ext/ObjectCalisthenics.pdf● ピンポンペア http://c2.com/cgi/wiki?PairProgrammingPingPongPattern
  21. 21. シンプルな設計のための 4 つのルール● PASS ALL TESTS● CLEAR, EXPRESSIVE, & CONSISTENT● DUPLICATES NO BEHAVIOR OR CONFIGURATION● MINIMAL METHODS, CLASSES, & MODULES
  22. 22. OO の原則 (SOLID)● Single responsibility principle● Open/closed principle● Likov substitution principle● Interface segregation principle● Dependency inversion principle
  23. 23. Single responsibility principlean object should have only a single responsibility.
  24. 24. Open/closed principlesoftware entities … should be open forextension, but closed for modification
  25. 25. Likov substitution principleobjects in a program should be replaceable withinstances of their subtypes without altering thecorrectness of that program
  26. 26. Interface segregation principle many client specificinterfaces are better than one general purpose interface
  27. 27. Dependency inversion principle one should “Depend upon Abstractions. Do not dependupon concretions.” Dependency injection is one method of following this principle.
  28. 28. オブジェクト健康体操● One level of indentation per method● Dont use the ELSE keyword● Wrap all primitives and Strings● First class collections● One dot per line● Dont abbreviate● Keep all entities small● No classes with more than two instance variables● No getters/setters/properties
  29. 29. Pair Programming Ping Pong Pattern● A writes a new test and sees that it fails.● B implements the code needed to pass the test.● B writes the next test and sees that it fails.● A implements the code needed to pass the test.
  30. 30. 提供Global Day of Code Retreat http://goo.gl/Cru1t

×