Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Ruby

Thành thạo TDD trong Rails mà không bị choáng ngợp

(Tôi viết bài này cho newsletter ban đầu. Nếu muốn đọc thêm điều tương tự, hãy đăng ký!)

Cộng đồng Rails tập trung mạnh vào testing, và cụ thể là TDD. Văn hóa testing này là một trong những điều tốt nhất của Rails. Nhưng áp lực phải test, và test đúng, có thể choáng ngợp người mới.

Nếu bạn đến từ nơi không test chút nào, TDD có thể đặc biệt khó học. Hãy nghĩ về tất cả điều bạn cần biết để làm TDD đúng:

  • Bạn phải biết tính năng nào bạn muốn implement
  • Bạn phải xác định được phần nào của mỗi tính năng nên test
  • Bạn phải học công cụ testing
  • Bạn phải biết cách viết test cho từng phần đó
  • Bạn phải biết cách viết test mà không xem code trước
  • Bạn phải biết cách viết 'điều đơn giản nhất có thể hoạt động'
  • Bạn phải học cách dùng test để phát triển thiết kế code

Khi viết ra như vậy, tôi sẽ ngạc nhiên nếu bạn không संघर्ष. Rõ ràng bạn không thể từ zero đến TDD trong một bước. Vậy làm sao? Làm sao học TDD mà không bị choáng ngợp?

Chia nhỏ ra!

Khi bạn cảm thấy đối mặt nhiệm vụ không thể hoặc không biết làm gì tiếp theo, hãy xem có gì dễ hơn bạn có thể học để gần mục tiêu hơn.

Ví dụ, để học TDD với RSpec, bạn có thể chia nhỏ như sau:

  • Viết code khám phá cho tính năng không có test. (Để có kinh nghiệm nghĩ ra và viết tính năng)

  • Nghiên cứu code và viết ra những cách code có thể hỏng với các loại input khác nhau. (Để học biết test gì và cách test)

  • Viết test cho code đã có, dùng minitest built-in của Ruby (Để học minitest và testing cơ bản, không phải lo TDD và RSpec, hoặc đấu tranh cài gem và setup môi trường RSpec)

  • Test-drive code dùng TDD và minitest (Để tập trung vào TDD mà không lo dependency gem hoặc học RSpec. Vì bạn đã biết viết test, chỉ cần học viết test trước)

  • Test-drive code dùng RSpec (khi đã practice TDD một chút, để tập trung setup RSpec và học API và culture của nó)

Mỗi thứ là kỹ năng nhỏ hơn nhiều bạn có thể practice riêng. Bạn có thể tập trung và practice bước đầu, rồi bước tiếp, và cứ thế. Thay vì nhảy thẳng vào TDD với RSpec, bạn có thể lớn lên tới nó.

Có vẻ như nhiều việc hơn. Nhưng bạn sẽ học mỗi kỹ năng nhanh hơn so với học TDD từ con số 0, và bạn sẽ có nền tảng tốt hơn để xây dựng khi phong cách testing hữu ích tiếp theo xuất hiện.

Tập trung một lúc một việc

Chìa khóa là tập trung và practice vào thứ chỉ ngoài vùng an toàn, mà không cố nhảy thẳng đến bước cuối. Mỗi bước đều có giá trị riêng. Dù bạn dừng ở bước đầu, bạn vẫn học được điều có giá trị. Nhưng chúng cũng xây dựng lên nhau nên bạn có thể tập trung học một việc thật tốt, thay vì bị ném một đống việc cùng lúc. Bạn có thể học mà không bị choáng ngợp và bỏ cuộc.

Khi trải qua quá trình này, hãy cho phép mình mắc lỗi. Bạn đang học, hoàn toàn OK! Sẽ dễ dàng hơn nhiều khi bạn làm thường xuyên. Practice nhất quán và suy nghĩ, và tiếp tục vươn tới một level vượt quá những gì bạn đã biết, và bạn sẽ đạt được.