nềnLàm thế nào để xây dựng một cái gì đó khi tôi biết tôi sẽ làm cho nó sai?
tôi có một dự án cá nhân mà tôi đã cố gắng để xây dựng cho khoảng 5 năm. Về bản chất nó là một trò chơi trực tuyến - một ứng dụng web. Nó không phải là một "nhà sản xuất tiền", chỉ là một cái gì đó mà tôi thực sự muốn xây dựng, vì vậy việc tìm kiếm tài trợ để thuê một đội ngũ có tay nghề cao là rất khó xảy ra.
Tôi đã xây dựng hai nguyên mẫu đầy đủ chức năng trong nhiều năm, cả hai đều thành công từ quan điểm thử nghiệm khái niệm/người dùng, nhưng cả hai đều thất bại ngoạn mục từ quan điểm kiến trúc; mã là một mớ hỗn độn, không thể được duy trì hoặc phát triển hơn nữa, và phải bị ném ra ngoài.
Mất một vài năm để có được các kỹ năng cần thiết để xây dựng khách hàng - phong phú/nhà nước và khá phức tạp. Tôi đã điều chỉnh sự nghiệp và nghiên cứu của mình về phía bên này của sự phân chia phát triển. Cuối cùng, tôi cũng có thể xây dựng một khách hàng tinh vi, tinh vi, có thể phát triển và không cần phải bỏ ra 6 tháng. Có rất nhiều việc phải làm ở mặt trận đó, nhưng ít nhất tôi biết tôi có thể làm điều đó, và làm điều đó một cách hợp lý. Back-end là một câu chuyện khác.
Cho đến nay tôi đã xây dựng lại back-end ít nhất 11 lần với các kết hợp khác nhau của PHP, SQL, Ruby, CouchDB, MongoDB, FriendlyORM, NodeJS vv v.v. Tôi thường không nhận được rất xa trước khi tôi khám phá một số lỗ hổng lớn với cách tiếp cận của tôi và bắt đầu lại: RPC đến REST, quan hệ với tài liệu được điều khiển. Tôi nhận thức được rằng tối ưu hóa sớm là gốc rễ của tất cả các điều ác, nhưng ứng dụng này phụ thuộc rất nhiều vào việc di chuyển nhanh, dữ liệu động. RESTful API thiết kế, mở rộng quy mô, sharding, caching, auth, replication - Tôi không có nhiều kinh nghiệm với bất kỳ điều này, và tôi không thể mong đợi được từ xa phong nha bất kỳ thời gian sớm. Những điều này đòi hỏi nhiều năm học tập và kinh nghiệm.
Có ý nghĩa hơn khi tìm một chuyên gia trong lĩnh vực này, nhưng không có kinh phí, tôi cảm thấy cần triển khai thành công một nguyên mẫu khác để thu hút đúng người. Vì vậy, tôi sẽ phải xây dựng nó tốt nhất có thể.
Các Câu hỏi
Giả sử rằng tuy nhiên tôi xây dựng nó, kiến trúc back-end sẽ là sai và sẽ cần phải được xây dựng lại, cách tốt nhất để tiến hành xây dựng "vừa đủ" để tiếp tục là những gì phát triển ứng dụng của khách hàng? Ngay cả khi nó khó chịu, có cách nào để "ném cùng" một dịch vụ web JSON không? Ruby với Sinatra và MongoDB? Django? Có một số trình xây dựng webservice out-o-the-box không? Không cần một khung công tác web đầy đủ vì không có lớp trình bày - chỉ là dữ liệu. Mọi lời khuyên sẽ được đánh giá cao.
@ Franky-D: _ "Tôi biết rõ rằng tối ưu hóa là gốc rễ của tất cả các điều ác" _. Tại sao? –
Có thể anh ấy muốn nói * tối ưu * sớm? – FrustratedWithFormsDesigner
@ Franky-D Đó là ** tối ưu hóa ** sớm mà là gốc rễ của tất cả điều ác - xem http://c2.com/cgi/wiki?PrematureOptimization –