Angular vs Ember. RSpec vs Minitest. Haml vs Slim vs ERB. Bạn có quá nhiều lựa chọn khi bắt đầu dự án mới. Mỗi phía đều có người bảo vệ sôi nổi. Và sớm bạn nhận ra rằng bạn có thể đã bắt đầu dự án trong thời gian bạn lãng phí đọc tutorial thứ tư hoặc tranh luận 30 comment về Sass có tốt hơn Less không.
Vậy làm sao chọn thư viện đúng, để bạn có thể bắt đầu viết code thật?
Bạn đang dưới áp lực lớn
Cộng đồng dev di chuyển rất nhanh. Thư viện mới xuất hiện mỗi ngày, giải quyết đủ loại vấn đề. Nhiều trong số đó giải quyết vấn đề đã được giải quyết trước đó. Và nhiều trong những thư viện đó được xây dựng như phản ứng đối với thư viện trước đó.
Những tranh luận này trở nên cá nhân. Mọi người đã dành một phần cuộc đời xây dựng kinh nghiệm dùng thư viện này. Một số đã bị đau khổ vì vấn đề thư viện mới được xây dựng để giải quyết. Vì vậy lập luận cho việc dùng thư viện cụ thể充满激情 và cảm xúc.
Khi bạn đọc tất cả những lập luận đầy cảm xúc này, dễ dàng cảm thấy như thể bạn sẽ bị khinh thường nếu đưa ra quyết định sai.
Làm sao để thoải mái chọn thư viện?
Rõ ràng không phải mọi người sẽ đồng ý với lựa chọn của bạn. Tốt nhất bạn có thể làm là hài lòng cá nhân với quyết định. Bạn phải hài lòng với thư viện bạn chọn ở cả mặt kỹ thuật lẫn cá nhân.
Về mặt kỹ thuật, tôi viết hướng dẫn chọn gem đúng cho project, và hầu hết lời khuyên đó áp dụng cho loại lựa chọn này.
Sở thích cá nhân cũng ảnh hưởng đến lựa chọn. Nhưng mà không build app dùng thư viện, thì khó dự đoán thư viện nào bạn sẽ thích dùng.
Tìm kiếm code trên GitHub có thể giúp bạn đưa ra quyết định. Khi bạn search tên class từ thư viện bạn đang cân nhắc, bạn có thể tìm project dùng từng thư viện. (Bạn thường có thể lấy tên class từ README hoặc gem documentation).
Từ code, bạn có thể thấy thư viện được dùng như thế nào, tích hợp với code và thư viện khác như thế nào, và đơn giản đến mức nào. Điều này giúp rất nhiều, đặc biệt khi bạn không đủ context để quyết định dựa trên lập luận kỹ thuật.
Có quan trọng không?
Lựa chọn sai có thể gây đau khổ sau. Nhưng khi nói đến xây dựng phần mềm, Thất bại 0 là thất bại không bắt đầu dự án. Mất quá nhiều thời gian chọn thư viện đúng cho app không giúp gì ngăn chặn thất bại đó. Hầu hết thời gian, đưa ra bất kỳ lựa chọn nào giúp bạn nhiều hơn là lựa chọn sai làm hại bạn.
Bạn không nên cảm thấy tồi về lựa chọn mình làm. Không có gì sai khi học thư viện mới, thử trên project, và đưa ra phán đoán cá nhân và kỹ thuật về thư viện nào bạn thích.
Đến khi bạn đổi ý sau, những gì bạn học từ thư viện bạn chọn sẽ luôn ở lại với bạn. Bạn có thể học thư viện mới nhanh hơn nhiều như một diff so với kiến thức hiện có, thay vì học từ con số 0.
Lâu lắm rồi, tôi có thể dễ dàng trở thành Pythonista thay vì Rubyist. Tôi có thể không hạnh phúc bằng. (Dù thật ra, ai biết?) Nhưng tôi vẫn sẽ viết code, và vẫn sẽ yêu nó.