Tại sao mọi thư viện đều cần một dự án thực tế
Nhiều tác giả thư viện mắc một sai lầm. Họ nghĩ rằng các ví dụ là đủ.
Các ví dụ là không đủ.
Ví dụ chứng minh một tính năng hoạt động. Dự án thực tế chứng minh một thư viện hoạt động. Đây là hai điều hoàn toàn khác nhau.
Tôi xây dựng nhiều ứng dụng demo. Tôi xây dựng các trang web mẫu, API và các thành phần (components). Mọi thứ trông thật hoàn hảo trong một bản demo. Demo chỉ cho thấy luồng xử lý lý tưởng (happy path). Chúng cho thấy một quy trình làm việc lý tưởng.
Demo là những môi trường được kiểm soát. Kiến trúc thì đơn giản. Các yêu cầu luôn có thể dự đoán được.
Các dự án thực tế thì khác.
Khi bạn sử dụng một thư viện cho một dự án thực tế, các quy tắc sẽ thay đổi. Bạn không còn đang làm một bản trình diễn nữa. Bạn đang giải quyết một vấn đề.
Các dự án thực tế mang lại:
- Thời hạn (deadline) gấp rút
- Yêu cầu thay đổi liên tục
- Bố cục phức tạp
- Các trường hợp biên (edge cases)
- Sai sót của con người
Đây chính là lúc một thư viện thể hiện sức mạnh thực sự của nó. Và cũng là lúc nó bộc lộ điểm yếu thực sự. Một thư viện tự bộc lộ mình dưới áp lực, chứ không phải trong một bản demo.
Các dự án thực tế phơi bày những giả định của bạn. Một ý tưởng có thể trông rất thanh thoát trên lý thuyết. Nó có thể có vẻ hợp lý trong quá trình phát triển. Nhưng rồi thực tế ập đến.
Một quy trình làm việc cảm thấy gượng gạo. Một cấu hình cảm thấy lặp đi lặp lại. Một API cảm thấy không tự nhiên. Thiết kế của bạn không sai, chỉ là nó chưa va chạm với thực tế.
Điều tốt nhất mà một tác giả có thể làm là trở thành người dùng chính phần mềm của mình. Đừng chỉ xây dựng các bản demo. Hãy xây dựng các trang web, ứng dụng và các mô hình kinh doanh bằng chính công cụ của bạn. Hãy phụ thuộc vào chúng.
Khi bạn phụ thuộc vào phần mềm của mình, góc nhìn của bạn sẽ thay đổi. Bạn ngừng suy nghĩ như một tác giả. Bạn bắt đầu suy nghĩ như một người dùng.
Người dùng quan tâm đến:
- Sự cản trở (friction)
- Sự rõ ràng
- Hoàn thành công việc
Xây dựng những thứ thực tế sẽ thay đổi các câu hỏi của bạn. Bạn ngừng hỏi "Chúng ta nên thêm tính năng gì?" Thay vào đó, bạn hỏi:
- Tại sao quy trình này lại cảm thấy gượng gạo?
- Tại sao tôi cứ phải lặp lại chính mình?
- Tại sao việc này lại mất quá nhiều thời gian?
Giải quyết những vấn đề này sẽ tạo ra phần mềm tốt hơn bất kỳ buổi thảo luận ý tưởng (brainstorming) nào.
Mọi thư viện đều cần một dự án thực tế. Dự án này không phải để làm marketing. Nó là một đấu trường thử thách. Nó buộc thư viện phải giải quyết các vấn đề thực tế. Nó tìm ra những điểm yếu trước khi người dùng của bạn phát hiện ra.
Mục tiêu không phải là để chứng minh thư viện của bạn hoàn hảo. Mục tiêu là tạo ra một cách để thư viện của bạn cải thiện.
Nguồn: https://dev.to/stinklewinks/why-every-library-needs-a-real-project-1ae7