trong vài tuần qua tôi đã nghe nói về một hiện tượng gọi là 'code-kata'. Khi tôi làm đúng, nó có nghĩa là viết mã một bài tập lặp đi lặp lại. Điểm của nó là gì? Nó có cải thiện khả năng thiết kế phần mềm tốt hơn của bạn không? Nếu có, tại sao nó làm như vậy?Mã-kata là gì và nó tốt cho cái gì?
Trả lời
tôi thu thập một loạt các tài liệu tham khảo của mình: http://slott-softwarearchitect.blogspot.com/2009/08/code-kata-resources.html
Điều quan trọng nhất trong số này là http://codekata.pragprog.com/
Điểm liên kết thứ hai đến một lời giải thích tốt - cảm ơn. –
@Roland - Tôi đồng ý, liên kết thực sự giải thích. Tôi tìm thấy liên kết này cho một số thực hành - http://tddkatas.codeplex.com/ –
Kho lưu trữ Codeplex được chuyển đến Github: https://github.com/garora/TDD-Katas –
Đây là lần đầu tiên tôi đã nghe những điều này, vì vậy sau một google nhanh chóng, đây là phản ứng ruột của tôi:
Mã Kata không lặp đi lặp lại một bài tập hơn và hơn nữa. Thay vào đó là việc liên tục mở rộng "vùng thoải mái" của bạn để bạn có thể phát triển như một nhà phát triển.
Chỉ cần thực hiện các dự án mà bạn biết cách thực hiện sẽ không giúp bạn. Bạn cần phải thử và giải quyết các dự án mà bạn rất có thể sẽ thất bại trong lần thử đầu tiên của bạn.
Mục tiêu cuối cùng là nếu bạn liên tục thử, thất bại, hãy thử lại, thất bại lần nữa, v.v, sớm hay muộn bạn sẽ thành công. Khi bạn làm, bạn đã nắm vững một số kiến thức mới và trở thành một nhà phát triển tốt hơn.
Việc lặp lại đủ điều này rõ ràng sẽ cải thiện kỹ năng của bạn.
(Xin lỗi nếu đó là một chút của một bãi chứa não)
Tôi thích bãi chứa của bạn, Jim :) Cảm ơn bạn đã giải thích – ep3static
Nó không phải chủ yếu để nâng cao kỹ năng thiết kế của bạn, chứ không phải nó là một cách để nâng cao năng suất của bạn trong IDE bạn đã chọn.
Lặp lại thao tác quen thuộc lặp đi lặp lại cho phép bạn xem và tận dụng lợi thế của các phím tắt IDE và các tính năng mà trước đó bạn không biết phải cạo giây. Nó cũng sẽ giúp bạn tìm thấy bất kỳ bước không cần thiết mà bạn đưa ra khỏi thói quen để bạn có thể cắt chúng ra khỏi thói quen của bạn.
Chúng tôi đã thử một vài trong số này tại công ty của tôi, suy nghĩ của chúng tôi là phát triển một trò chơi đơn giản (rõ ràng là có một chút logic mà chúng tôi không biết cách làm). Chúng tôi sẽ tiếp tục cải thiện nó cho đến khi chúng tôi nghĩ rằng chúng tôi có cách tốt nhất để làm mọi thứ, sau đó chúng tôi sẽ gặp lại sau một tuần và so sánh kết quả của chúng tôi . Thật thú vị khi thấy những người khác nhau đến với các giải pháp khác nhau như thế nào và mọi người học hỏi từ kinh nghiệm. Có lẽ không phải là một kata thích hợp, nhưng chúng tôi luôn cố gắng và uốn cong những điều cần một cái gì đó chúng ta sẽ thấy hữu ích :)
- 1. System.Web.Abstractions: nó tốt cho cái gì?
- 2. XSLT xsl: chuỗi. Nó tốt cho cái gì..?
- 3. query_cache_min_res_unit; Nó là gì và nó làm gì?
- 4. Lập trình meta, tốt cho nó là gì?
- 5. Lucene SpanQuery - điều gì tốt cho nó?
- 6. Khung PHP là gì và khung tốt nhất là gì?
- 7. Làm thế nào để nhận ra cái gì là gì, và cái gì không phải là đệ quy đuôi?
- 8. Inverse_of làm gì? SQL nó tạo ra cái gì?
- 9. .NET 4.5 CustomReflectionContext: nó hữu ích cho cái gì?
- 10. Cái gì tốt hơn, ConfigObj hoặc ConfigParser?
- 11. Tệp .pid là gì và nó chứa gì?
- 12. Haskell - Điều gì là Control.Applicative.Alternative tốt cho?
- 13. System.Globalization là gì và sự khác biệt giữa nó và nội địa hóa là những gì
- 14. "Cái gì đó" đang phá vỡ hộp thoại jqueryui này. Nó là gì?
- 15. Mảng đệ quy tốt cho là gì?
- 16. Plugin SVN tốt cho Eclipse là gì?
- 17. Tên ADT. `Trái a` là gì, và sau đó cái gì là` a`, trong Haskell?
- 18. IDE Prolog tốt cho Linux là gì?
- 19. GLIBC là gì? Cái này được dùng để làm gì?
- 20. Control.Category tốt là gì?
- 21. //! [0] C++ - nó là gì?
- 22. Qt SDK, Apwrapper: nó là gì, nó làm gì.
- 23. Chữ cái lớp trong Java là gì?
- 24. WCF cái gì sẽ là endpointConfigurationName?
- 25. Là 0 và! 1 cái gì đó hơn là viết tắt cho đúng/sai?
- 26. Cái mới [] viết tắt này là gì?
- 27. PHP: Bạn sử dụng cái gì để viết nó?
- 28. JAF là gì? Mục đích của nó là gì?
- 29. ReverseHTTP là gì và tại sao nó lại hữu ích?
- 30. TCHAR * envp []: Nó là gì?
Để biết thêm thông tin, hãy xem câu hỏi này: http://stackoverflow.com/questions/1432485/coding-katas-for-practicing-the-refactoring-of-legacy-code – willoller
Tôi đã nghe nói rằng Robert C. Martin đã viết blog về điều này topic: http://blog.objectmentor.com/articles/2009/11/21/whats-all-this-nonsense-about-katas –