2009-07-24 26 views
9

Tôi đang bận! Hầu hết thời gian của tôi được sử dụng kỹ thuật phân tích, hoặc trên công việc khóa học, và khi tôi chuyển sang chế độ lập trình, tôi cần tạo mã nhanh chóng. Vì, Điều tra viên chính cho phòng thí nghiệm tôi không quan tâm nếu tôi sử dụng TDD hoặc bàn tính miễn là tôi nhận được kết quả nhanh.Làm cách nào để kết hợp TDD vào luồng công việc của tôi với tư cách là nhà lập trình/sinh viên/nhà nghiên cứu khoa học?

Tôi đã đọc "TDD theo ví dụ" và thấy nó khá hữu ích. Sau đó tôi đã mua "Tái cấu trúc: Cải thiện thiết kế của mã hiện tại", "Mẫu thiết kế: Các yếu tố của phần mềm hướng đối tượng có thể sử dụng lại" và "Làm việc hiệu quả với Mã cũ" nhưng những cuốn sách này lớn và triển vọng nhảy vào chúng bây giờ là khó khăn !

Kiểu trò chuyện và dòng chảy của "TDD by example" giúp dễ dàng kết hợp vào lịch biểu của tôi. Nhưng, tôi không biết cách làm việc trong những cuốn sách khác và theo thứ tự nào; Dường như mỗi cái đều có liên quan (tôi đang ở trong một loại bế tắc của nhà triết học ăn uống - tôi đang chờ từng khía cạnh của bộ công cụ lập trình của mình để cải thiện, nhưng sự phụ thuộc lẫn nhau của họ có tôi bị khóa hoặc mất thời gian để chuyển ngữ cảnh - xin lỗi vì tương tự :)). ví dụ. Tôi có mã kế thừa cần phải được tái cấu trúc và được kiểm tra bằng các thử nghiệm, tôi cần đẩy về phía trước bằng cách sử dụng TDD (nhưng tôi không bao giờ làm), tôi cần mã hóa với các mẫu thiết kế vì vậy tôi ngừng phát minh lại bánh xe.

Có cách nào tốt để chia nhỏ các số này yêu cầu đọc thành các khối có kích thước byte và cách thực hiện trong khi áp dụng kỹ thuật của họ cho các dự án hiện tại (cá nhân, tôi mất thông tin nếu tôi không thể áp dụng nó ngay lập tức)? Tôi có tập trung vào một cuốn sách và hoàn thành nó không? Tôi có cần TDD đầu tiên sau đó tái cấu trúc và kỹ năng thiết kế mẫu (nhưng 'gà và trứng' tất cả các cuốn sách kiểm tra đơn vị nói về mẫu thiết kế và tái cấu trúc như thể tôi biết họ lạc hậu và chuyển tiếp)?

Tôi đã đọc số best tutorials for beginners nhưng không giải thích cách tôi tích hợp điều này vào lịch biểu bận rộn. Và, tôi đọc programming in a scientific environment nhưng một lần nữa nó bỏ lỡ dấu hiệu của làm thế nào để bạn thêm các kỹ thuật này khi bạn đã ở phía sau về thời gian.

Trả lời

2

Với mô tả về những gì bạn làm, trước tiên tôi sẽ bắt đầu bằng việc đặt câu hỏi giả định. Tôi không biết gì về sự phức tạp của các chương trình của bạn, nhưng nếu mã hóa của bạn bao gồm việc tạo ra các phép tính và nó là "mức kịch bản", có nghĩa là đối với một đoạn mã bạn có thể dễ dàng ném nó ra và viết lại nó như giữ nó, sau đó rất nhiều các kỹ thuật này là quá mức cần thiết. Tôi nghĩ rằng TDD (có lẽ một phiên bản ghép đôi mà loại kết hợp trong thử nghiệm tích hợp) sẽ luôn luôn có giá trị, nhưng ngoài ra, không nhất thiết. Tuy nhiên, nếu bạn thực sự thiết kế các hệ thống phần mềm (và ít nhất một số việc bạn có thể làm có thể đủ điều kiện ngay cả khi không có, ví dụ như mô hình cơ sở dữ liệu, màn hình đầu vào, phân phối kết quả) thì tôi sẽ đọc đủ những cuốn sách này để bắt đầu và đừng lo lắng về việc không làm việc đó đúng lúc cho người mới bắt đầu, chỉ cần đảm bảo rằng bạn đang thực hiện các tiến bộ có thể đo lường mỗi tuần. Bằng cách này, các mẫu thiết kế có thể hữu ích để đọc về các vấn đề tương tự như thế nào được giải quyết, nhưng không "thiết kế sử dụng chúng" thay vì một cái gì đó khác. Thiết kế của bạn có thể không tốt về riêng của nó, nhưng các mô hình đến từ thiết kế thực tế, không phải là cách khác xung quanh. Vì vậy, bạn chắc chắn có thể thấy nhiều giải pháp hướng đối tượng hơn là những gì bạn có thể làm, nhưng đừng lo lắng về việc bạn đang làm gì phù hợp với một mẫu thiết kế. Đảm bảo rằng những gì bạn đang làm là thiết kế có thể duy trì tốt theo các điều kiện riêng của nó và các mẫu sẽ chảy ra từ đó.

+0

+1 - Đồng ý 100% – Paul

+1

Viết phần mềm cho phòng thí nghiệm nghiên cứu, tôi có thể nói rằng không phải là một giả định an toàn rằng thái độ "hoàn thành nhanh" là dấu hiệu cho thấy phạm vi của phần mềm nhỏ hoặc "cấp tập lệnh". Nguyên tắc các nhà nghiên cứu khoa học thường xem phần mềm tạo ra cho nghiên cứu của họ như là một phương tiện để kết thúc và không quan tâm đến chất lượng phần mềm được sản xuất, chỉ có kết quả cuối cùng của nó. Điều này thường dẫn đến việc thiết kế phần mềm kém do áp lực để hoàn thành công việc trong ngắn hạn cũng như các nỗ lực trùng lặp giữa các dự án do thiếu triển khai mô-đun. –

+0

+1 @Mark, vâng, mã này khá phức tạp và không thể dễ dàng hoàn thành trong các môi trường như Matlab hoặc Mathematica. Vì vậy, tôi cần phải bắt đầu sử dụng lại mã (mà sẽ yêu cầu tôi để refactor) .. – bias

1

Bạn không thể làm tất cả, tất cả cùng một lúc (bạn biết điều đó). Một số kỹ thuật giúp bạn tiết kiệm thời gian, và TDD và Refactoring cao trong danh sách đó. Đặc biệt với TDD - không băn khoăn về thời điểm làm điều đó, cho dù có làm thế nào, làm sao để phù hợp với lịch trình của bạn; cứ làm đi. Bạn càng sớm bắt đầu, càng sớm nó tiết kiệm thời gian cho bạn.Một khi bạn có kỹ năng đó trong tay, khi bạn tiếp cận một nhiệm vụ trên mã di sản, hãy viết các bài kiểm tra xung quanh nó để bảo vệ bạn (không, đó không phải là TDD, nhưng các kỹ năng viết thử mà bạn đã mài dũa bằng TDD sẽ được áp dụng). Khi bạn đã có độ bao phủ tốt của mô-đun mà bạn cần thay đổi, thì bạn có thể tái cấu trúc nó một cách tự do, chạy thử nghiệm thường xuyên. Trong số các cuốn sách bạn đề cập, trong trường hợp bạn mô tả, cuốn sách tiếp theo tôi khuyên bạn nên đọc là Michael Feathers 'Làm việc hiệu quả với Bộ luật kế thừa - nó sẽ cung cấp cho bạn các thủ thuật mang bạn về phía trước.

Trong thời gian này, mặc dù: TDD mọi thứ. Nó sẽ giúp bạn tiết kiệm thời gian sớm hơn mà bạn tưởng tượng, và bạn có thể dành thời gian đó vào việc học các kỹ thuật tốt hơn và tốt hơn.

1

Tôi bắt đầu với sách Tái cấu trúc (vì bạn đã đề cập đến bị tràn ngập trong mã cũ) và cố đọc từng giờ một. Sau đó, lần tiếp theo bạn lập trình, hãy tìm cách áp dụng những gì bạn đọc.

Khi bạn bắt đầu cảm thấy như đang rảnh rỗi một thời gian, hãy xem các sách khác. Tôi cũng đề nghị cuốn sách Code Complete để cải thiện kỹ năng của bạn.

Các vấn đề liên quan