2008-09-13 11 views
24

Khi bạn bắt đầu một dự án lập trình cá nhân, bước đầu tiên của bạn là gì? Tôi đang cố gắng để bắt đầu một dự án mà chỉ là một ý tưởng vào lúc này. Tôi nhận được rất nhiều những điều này và tôi đi sâu vào mã và sau một thời gian hoàn toàn mất đi sự quan tâm và hay quên đi dự án.Cách tốt nhất để bắt đầu dự án

Khi bạn bắt đầu, bước đầu tiên của bạn là gì? bạn có kế hoạch dự án không? tạo một sơ đồ? viết một số mã trên giấy? Làm thế nào để bạn bắt đầu một dự án theo cách mà bạn biết bạn sẽ thành công?

Trả lời

16

Điều duy nhất phù hợp với tôi: Tạo khả năng triển khai nhỏ nhất có thể bằng cách nào đó có thể sử dụng được và sau đó sử dụng nó.

2

Đối với các dự án cá nhân của riêng tôi, tôi chỉ đi sâu vào. Tất nhiên, chưa có dự án nào đủ lớn để yêu cầu bất kỳ loại lập kế hoạch trước nào. Nếu điều này là một dự án nghiêm trọng hoặc một quy mô tương đối lớn, thì luôn luôn là một ý tưởng tốt để tuôn ra ít nhất những gì mỗi phần của chương trình cần phải làm và một cái nhìn mức độ cao về cách họ sẽ làm điều đó.

9

Tôi dành nhiều thời gian suy nghĩ về các khía cạnh khác nhau của dự án trước khi tôi chạm vào bàn phím.

tôi đi qua những gì tôi đã học được từ các dự án trước đó và viết nó xuống trong các chuyên mục khác nhau ('kỹ thuật', 'khuyến mãi', vv)

dự án cá nhân hay không, tôi luôn luôn thiết lập kiểm soát mã nguồn. Git, Mercurial of Bazaar là các ví dụ về các công cụ kiểm soát mã nguồn không xâm phạm vì bạn không cần thiết lập một máy chủ chủ. Chỉ cần gõ một lệnh đơn giản để tạo dự án, kiểm tra các tệp của bạn, cam kết. Trong tương lai, khi bạn làm hỏng một trong các tệp của mình, bạn sẽ có thể 'hoàn tác'

Tôi cũng thiết lập hệ thống vé nhẹ để theo dõi 1.issues và 2.ideas Bởi "trọng lượng nhẹ" I có nghĩa là nếu duy trì hai tài liệu văn bản với những danh sách này phù hợp với bạn, điều đó đủ tốt.

Hy vọng điều này sẽ hữu ích.

0

Đầu tiên hãy phác thảo phác thảo cơ bản của ứng dụng cuối cùng. Hầu hết các tính năng quan trọng, GUI cơ bản, luồng chương trình, v.v. Sau đó tinh chỉnh lại để bạn không sử dụng quá nhiều vào lúc đầu, loại bỏ các tính năng không cần thiết và thêm những gì bạn muốn trong phiên bản đầu tiên. Sau đó, sử dụng phác thảo đó để bắt đầu một danh sách nhiệm vụ để tạo ra phiên bản làm việc nhỏ nhất có thể có của ứng dụng của bạn. Sau đó, dễ dàng hơn để thêm các tính năng bổ sung và làm cho nó hoạt động đầy đủ.

11

Từ 7 Habits of Highly Effective People, Thói quen 2: Bắt đầu với mục đích kết thúc.

Với bất kỳ dự án nào bạn cần một mục tiêu rõ ràng, một điểm mà bạn có thể nói "Tôi đã hoàn thành". Một kết quả rõ ràng sẽ cho bạn hướng đi. Một khi bạn có điều đó, bạn có thể bắt đầu lập kế hoạch làm thế nào để đạt được điều đó. Kích thước và độ phức tạp của dự án sẽ xác định xem chi tiết kế hoạch của bạn cần bao nhiêu, nhưng nói chung bạn sẽ muốn cảm thấy sự tiến bộ của bạn đối với kế hoạch của bạn khá thường xuyên.

Bước tiếp theo của tôi là phác họa thiết kế các mô-đun cần thiết và các API giữa mỗi mô-đun. Nếu các API được sạch thì các mô-đun có thể đúng. Sau đó, tôi bắt đầu thực hiện các mô-đun, thử nghiệm khi tôi đi.

1

Nó phụ thuộc vào dự án - nó lớn bao nhiêu?

Nếu tôi đang viết bản sao Notepad tiếp theo, tôi có thể chỉ đi sâu vào, nếu tôi muốn cuộn hệ điều hành của riêng mình, nó sẽ mất nhiều công việc không mã hóa hơn.

Tôi thích làm nhiều sơ đồ, công cụ tôi sử dụng để phát triển nhất là giấy A4 sạch và bút chì. Rút ra giao diện người dùng, quy trình làm việc, các lớp cơ bản và cách bạn lưu trữ bất kỳ dữ liệu nào - sau đó mã hóa chỉ là cách có thể đọc được bằng văn bản của những gì bạn đã vẽ.

Kiểm soát nguồn le.g. SVN là một vài tổ hợp phím/lần nhấp, vì vậy chi phí thấp và lợi ích cao, tiện dụng để thử nội dung và chỉ trở lại trạng thái trước đó nếu chúng không hoạt động.

Sau đó, chỉ cần tạo kiểu ảnh cơ bản nhất sẽ hoạt động - một khi điều gì đó thực sự diễn ra thì dễ dàng hơn nhiều để có được niềm đam mê và thêm nhiều hơn nữa. Nếu nó là áp đảo tôi sẽ tìm thấy tôi nghĩ rằng vấn đề được giải quyết trong đầu của tôi, và đó là đủ.

0

Tôi thích câu trả lời của Maximillian .. để mở rộng một chút, các dự án của con người được phát triển để giải quyết điều tôi đang làm. Vì vậy, khi tôi cảm thấy mệt mỏi với công việc lặp lại, tôi sẽ thử nghiệm một giải pháp. và sau đó sử dụng nó. Nếu nó tương đương với một trong những dự án trước đó của tôi, tôi sẽ mượn càng nhiều mã càng tốt và cố gắng cải thiện mức độ công việc của mình, làm cho nó trở nên chuyên nghiệp hơn.

Việc sử dụng Kiểm soát nguồn của Fusion cũng quan trọng. Mất 2 phút để cài đặt SVN.

2

Giống như những người khác, các dự án cá nhân của tôi luôn luôn có:

  • Một mục tiêu cuối cùng
  • Một Task List
  • đơn vị có thể sử dụng Nhỏ
  • kiểm soát Nguồn

Là một động lực thêm , Tôi cố gắng sử dụng một công nghệ mà tôi chưa bao giờ sử dụng trước đây. Học một cái gì đó mới thường trở thành động lực lớn nhất đối với tôi.

0

Nếu bạn muốn biến nó thành một dự án nguồn mở công khai, Producing Open Source Software được cho là một đọc tốt (có sẵn cả trực tuyến và trong in).

2

Dễ dàng - không bắt đầu tại tất cả các dự án mà bạn có khả năng mất hứng thú. Hãy dành nhiều thời gian hơn để đảm bảo bạn muốn cam kết với một ý tưởng trước khi bắt đầu công việc.

3

Tôi đồng ý với những lời khuyên đã nhất định:

  • Kế hoạch triển khai thực hiện tối thiểu mà làm điều gì đó hữu ích như là một phiên bản hoàn chỉnh đầu tiên.
  • Có mục tiêu cụ thể về những gì bạn muốn đạt được để có thứ gì đó để so sánh tiến trình của bạn.

Tôi cũng muốn giới thiệu bắt đầu với một thiết kế nhẹ của bạn tổng thể kiến ​​trúc vì vậy bạn có thể có một lộ trình làm thế nào để xây dựng sản phẩm của bạn.

Tôi cảm thấy khó khăn khi bắt đầu xây dựng một thứ gì đó khi tôi không có ý tưởng rõ ràng về cách nó sẽ trông ít nhất ở mức phân hủy đầu tiên. Hãy suy nghĩ về những gì bạn cần bên cạnh chức năng: hiệu suất cao ?, kịch bản mở rộng ?, cái nào ?, mục tiêu khả năng sử dụng ?, khả năng mở rộng cao ?, dễ triển khai và khả năng cài đặt ?, v.v. Hãy tự hỏi: Các thành phần nào tôi sẽ phải xây dựng theo thứ tự để đạt được những phẩm chất kiến ​​trúc đó ?.

Và đừng hiểu sai, tôi là người đề xuất mạnh mẽ về phát triển phần mềm nhanh. Bạn không cần tốn nhiều thời gian để thiết kế kiến ​​trúc của mình (vì nó chắc chắn sẽ phải phát triển khi bạn xây dựng và nhận phản hồi về những gì hiệu quả và những gì không), nhưng có kế hoạch chi tiết về cách xây dựng sản phẩm của bạn trên kiến ​​trúc sẽ hữu ích trong việc lập kế hoạch cho tiến trình của bạn và đặt mục tiêu thực tế.

0

Nếu dự án cá nhân của bạn tương tự như dự án nguồn mở hiện tại, bạn nên xem xét đóng góp cho dự án đó thay thế. Một vài đóng góp nhỏ (sửa lỗi, v.v.) là có giá trị hơn một nửa dự án đã hoàn thành.

3

Xác định mục tiêu cho dự án. Âm thanh như bạn đang tìm kiếm gần như độc quyền tại giải pháp hơn là vấn đề.

Chương trình không hữu ích cho bạn hoặc bất kỳ ai khác trừ khi chương trình giải quyết một số vấn đề. Viết mã để di chuyển thật tuyệt vời, nhưng bạn dường như mất hứng thú và tập trung sau khi bạn bắt đầu - bởi vì bạn đang xem mã, không phải vấn đề.

Dành một chút thời gian xem xét điều gì đã dẫn bạn viết mã này. Nghĩ xem người khác có thể khám phá ra cùng một nhu cầu như thế nào, con đường nào có thể đưa họ đến cùng một sự thất vọng mà bạn đã làm việc để giải quyết.

Sau đó, tìm một số người trong số đó và cung cấp giải pháp (một phần) của bạn và bạn sẽ tạo ra sự quan tâm và đề xuất trong số đó.

R THNG sẽ giúp bạn tiếp tục dự án của mình. Đồng nghiệp quan tâm, chia sẻ, thậm chí những bất đồng - đó là những người cần phần mềm! Đừng tạo ra các giải pháp (phần mềm) đang tìm kiếm một vấn đề (con người). Bạn bắt đầu với BẠN, với nhu cầu hoặc mong muốn của bạn, nhưng tập trung vào mã, và mất động lực cho dự án.

Lập trình thú vị hơn nhiều khi bạn giải quyết vấn đề. Nhưng bạn cần phải giữ cho vấn đề ở phía trước của bạn. Chia sẻ vấn đề xây dựng cộng đồng. Đó là những gì thực sự là tất cả về, phải không?

0

Tất cả những điều trên, nhưng bắt đầu để củng cố kế hoạch tại chỗ .....

Go cho một số công cụ SmartSheet - ngay cả khi bạn đang làm việc trên riêng của bạn, bạn nên đặt ra một số giai đoạn và ngày yEd - và Đồ thị từ www.yworks.com