Đứng trên vai người không lồ là tốt nhất?

Trong học lập trình các bạn sẽ được nghe nói một khái niệm đó là đứng trên vai người không lồ? ngụ ý đó là  người lập trình viên phải biết tận dụng những gì có sẳn để phát triển những  ứng dụng lớn hơn tô hơn mạnh hơn? Điều này hoàn toàn đúng vì chúng ta luôn tiến về phía trước. Tuy nhiên hãy nhìn nhận lại xem có nên ngoái lại phía sau không nhé.

Bạn nào đã từng vào siêu thị mua những món ăn đã chế biến sẳn về chỉ bắt lên bếp là có món ăn ngay, canh chua, cá kho tộ, mắm chưng…. Nói chung đủ cả. các bạn có  cảm thấy ngon như mẹ làm, ngon như ngoại nấu không? Tôi tin là không? Nhưng nó giải quyết được chúng ta có món ăn, rẻ, nhanh. Nhưng bù lại hương vị tuyệt ngon thì không có. Vậy muốn  ngon thì phải tự mua nguyên liệu, tự chế biến thì mới  theo đúng khẩu vị của các bạn được.

Nói về lập trình.  Đơn cử như  chương trình Giải phương trình bậc 2 : bay giờ hiện tại chỉ cần nhập vào 3  hệ số  trên máy tính bỏ túi là biết kết quả nghiệm là gì bao nhiêu nghiệm… thôi chắc cũng không ngoái lại làm gì? Những cái gì trong thư viện của ngôn ngữ lập trình có thì có thể tận dụng…

Sử dụng mã nguồn mở: muốn làm một trang bán hang, một trang tin tức thôi thì dung một số mã nguồn mở có sẳn để xây dựng lên trong 1 buổi là có thể dung để bán hang rồi… sao lại phải lập trình. Cần gì ngoái lại chứ.

Tuy nhiên  giống hương vị món ăn, muốn về mà được như khẩu vị ngon thì bạn phải nên nếm lại, phải làm lại  gia vị  thì món ăn mới có thể ngon được. tương tự vậy khi bạn làm phát triển website đến một mức độ nào đó, thì cần những tính năng riêng biệt hơn cá tính hơn, thì bạn phải biết viết thêm cho nó, viết những plugin, module gắn thêm vào cho nó mới là đứng trên vai người không lồ. còn không có khả năng lập trình thêm thì tác vụ của bạn nó sẽ không phát triển thêm được nữa. bên cạnh những cái gì có sẳn nó quá cồng kềnh nên làm cho hệ thống của bạn chậm chạp… vậy làm lại hay tiếp tục phát triển?

Ví dụ 2: nếu bạn nào đã sử dụng .net thì biết thư viện của .net framework cho phép bạn tạo 1 web browser có core như internet explorer hay nay là Microsoft edge.  Vậy tại sao firefox, safari lại không xài framework này để phát triển? chắc các bạn sẽ có câu trả lời. nếu họ dùng thì nay bạn không có google chrome.

Ví dụ 3: google plus ra đời với mong muốn có 1 sản phẩm  mạng xã hội tương tự như facebook. Nhưng tính năng thì có nhiều cái hay hơn facebook. Để làm điều đó những nhà lập trình cảu google đã phải viết lại google plus… nhưng cuối cùng dự án ra đời và cũng  sau một thời gian đã ngưng tiếp tục phát triển? điều này không nói được công nghệ sẽ thắng. nhưng nếu bạn phát triển một code giống facebook thì bạn chắc chắn sẽ thua facebook.

  Tôi gặp nhiều dự án các lập trình viên viết  một từ điển  bằng hê quản trị cơ sở dữ liệu, khai thác tìm kiếm tra từ bằng câu lênh SQL select… bạn đang có một ứng dụng tuyệt vời, nhưng nếu so với một chương trình được viết nhỏ hơn dung file tổ chức dữ liệu B cây… thì khả năng tra từ ở đây tôi nói về tốc độ thì  nó bỏ xa nhé. Thế nên nếu bạn vớ phải một module nào đó viết bằng cách trên thì nên vứt đi và tìm cái khác hoặc viết lại một cái khác để project của mình nó nhanh hơn mạnh hơn.. quá khắc khe nhỉ? nhưng với những người quan tâm đến tối ưu thuật toán thì .. chắc không quá đáng..

Với tôi thì khi sử dụng một thư viện nào của  một nhóm nào viết tôi phải xem coi có nhiều thư viện tương tự không? Ngoái lại tí rồi mới tiếp.

Tùy theo vấn đề mà có nên đứng trên vai người không lồ nhé. Muốn tạo nhanh ứng dụng hãy đứng trên vai người không lồ. muốn tạo sự khác biệt thì viết lại nhé. Còn thành công hay không cho dự án còn nhiều điều sau phần công nghệ nữa nhé mà các bạn sẽ được trải nghiệm thêm nhưng môn học trong ngành học hệ thống thông tin. Nhưng không viết lại chắc chắn bạn sẽ thua ứng dụng đang có  mà họ đang phát triển….

tháng 8/2021