Các dịch vụ thiết kế web: Sử dụng công nghệ nào (p6-cuối)

Giới thiệu

Ở bài trước mình đã giới thiệu qua các hướng xây dựng web theo hướng đẹp về giao diện hay độc về tính năng. Và đã đến lúc bạn muốn tự chủ tự lực về công nghệ lập trình để chủ động phát triển nâng cấp các tính năng riêng của mình. Ở bài này mình sẽ phân tích bạn nên sử dụng loại công nghệ nào. Mình chia theo các hướng công nghệ sau:

  • Dùng các CMS mã nguồn mở.
  • Dùng Framework mã nguồn mở.
  • Dùng Framework riêng của công ty.
  • Phát triển thô từ đầu.

Chúng ta sẽ đi vào từng cái để xem điểm hay dở của từng loại nhé.

Dùng phần mềm mã nguồn mở

SamSet Phần mềm mã nguồn mở

Đây luôn là sự lựa chọn hàng đầu của các công ty, nhóm, cá nhân hay tổ chức muốn xây dựng một website đơn giản và nhanh chóng. Với các phần mềm mã nguồn mở hiện nay thì việc xây dựng một website không còn trở nên phức tạp nữa, chỉ cần cài đặt chừng 30 phút là bạn có một website nhanh chóng. Ngày nay, cộng đồng mã nguồn mở rất phát triển nên số lượng và chất lượng các cms cũng rất tốt. Các phần mềm mã nguồn mở được phát triển trên nhiều platform, trên nhiền nền tảng công nghệ khác nhau nên bạn tha hồ lựa chọn
Đầu tiên phải nhắc đến là các mã nguồn mở viết bằng PHP, một ngôn ngữ phổ biến cho lập trình web, hàng loạt các mã nguồn mở cho bạn lựa chọn. Với những người yêu thích công nghệ của Microsoft cũng có rất nhiều mã nguồn mở trên nền tảng này, một phần do Microsoft chủ động đầu tư để cạnh tranh lại với cộng đồng mã nguồn mở trên nền tảng linux hướng đến xu hướng miễn phí và tự do. Bên cạnh đó , trên nhiều nền tảng ngôn ngữ khác cũng có rất nhiều mã nguồn mở nổi tiếng: Mỗi ngôn ngữ, mỗi công nghệ đều có một thế mạnh riêng, java, ruby, python, v.v… cũng có rất nhiều mã nguồn mở. Mình liệt kê ra một số để các bạn tham khảo.
Trên hệ điều hành Linux, ngôn ngữ Php, nói chung xu hướng miễn phí, mọi người thường chọn các mã nguồn mở trên nền tảng này:

  • Blog, tin tức, giới thiệu : WordPress, Joomlar, Drupal, NukeViet,v.v..
  • Diễn đàn: phpBB, myBB, Simple Machine,v.v..
  • Thương mại điện tử: Mangento, Open Cart, WordPress + Woocommere, v.v..
  • Quản trị dự án : DotProject,

Trên hệ điều hành Windows, sử dụng công nghệ dotNet, đối với các tín đồ Microsoft thì thường sử dụng các CMS sau:

  • Blog, tin tức, giới thiệu: DotnetNuke, Kentico CMS, Mojo Portal, v.v..
  • Quản trị dự án : TeamLab,v.v..
  • Thương mại điện tử: FlickRocket, Nopcommerce,v.v..

Khi đòi hỏi yếu tố bảo mật cao hơn, người ta thường nghĩ đến sử dụng Java, với ngôn ngữ này cũng có rất nhiều CMS:

  • Blog, tin tức, giới thiệu : OpenCMS, Liferay, Enonic, LogicalDoc,v.v..
  • Quản trị dự án : eXoPlatform, GanttProject, LibrePlan, v.v..
  • Diễn đàn: Syndie, eXoPlatform, v.v..
  • Thương mại điện tử: Apache OFBIZ, Konakart, v.v..

Ngoài ra, các ngôn ngữ và nền tảng công nghệ khác cũng có rất nhiều CMS tốt, Bạn có thể tham khảo đầy đủ hơn trên các link Wikipedia sau. Bên cạnh các phần mềm chức năng này, còn có rất nhiều mã nguồn mở ở nhiều lĩnh vực chuyên môn khác mà mình không tiện nêu ra ở đây.

Dùng Framework mã nguồn mở

SamSet Framework mã nguồn mở

Khi bạn muốn xây dựng một website đặc thù mà việc sử dụng các mã nguồn mở sẽ phải tùy biến rất nhiều, điều đó là không tốt sẽ làm hỏng kiến trúc chuẩn của các mã nguồn mở, và sẽ gặp khó khăn khi nâng cấp version. Do đó, việc lựa chọn công nghệ lúc này nên là sử dụng một Framework mã nguồn mở. Framework là gì ? Có rất nhiều định nghĩa đơn giản đến phức tạp về cái này. Tuy nhiên, theo mình hiểu, thì Framework là một tập hợp các chức năng căn bản để giúp cho bạn lập trình thuận lợi hơn và đở tốn công hơn. Giống như việc bạn xây một bức tường cho ngôi nhà thì bạn sẽ phải bắt đầu từ gạch, xi măng. Tuy nhiên, framework sẽ xây dựng sẵn một số loại tường để bạn sử dụng mà không cần phải làm từng việc nhỏ. Framework không đầy đủ để bạn có thể làm một ngôi nhà ngay như phần mềm mã nguồn mở mà mình giới thiệu ở mục trên, nó chỉ cung cấp các thành phần để bạn có thể xây dựng ngôi nhà của bạn nhanh hơn.

Không như mã nguồn mở, framework được biết đến trong cộng đồng lập trình viên hơn là người dùng bình thường. Vì nó liên quan sâu hơn đến kỹ thuật hơn là sự tương tác với người dùng. Framework có rất nhiều lợi ích nên luôn được các công ty cân nhắc sử dụng khi bắt đầu một dự án. Nó giúp tiết kiệm được thời gian phát triển phần mềm, giúp định hướng phần mềm tốt hơn, kế thừa và sử dụng được các kỹ thuật mới hơn.

Trên mỗi nền tảng công nghệ, mỗi ngôn ngữ lập trình đều có các framework riêng :

  • Trên PHP nỗi tiếng thì có Zend, Yii, Fuel, v.v.. Xem thêm : Danh sách đầy đủ
  • Trên nền Microsoft thì to nhất là .Net framework, Sâu hơn có .Net MVC framework
  • Trên Java thì có Apache Struts, Spring MVC, v.v.. Xem thêm : Danh sách đầy đủ

Dùng Framework riêng của từng công ty

Không phải công ty hoặc đơn vị lập trình nào cũng sử dụng các framework mã nguồn mở. Có nhiều lý do để các công ty không chọn một framework mã nguồn mở mà tự mình xây dựng riêng:

  • Vì Framework mã nguồn mở thường cung cấp quá nhiều thứ đôi khi lại dư thừa đối với các dự án nhỏ.
  • Một phần vì niềm tin, Framework do cộng đồng đóng góp nên có thể có những thứ hoạt động không ổn định, chưa kể có thể chứa các virut.

Cái đó tùy thuộc vào từng công ty, tuy nhiên cá nhân mình nhận định, chính bởi tính mở của nó nên yếu tố bảo mật, virut vẫn an toàn cao hơn. Do người này làm, còn có hàng ngàn người khác sử dụng và kiểm tra. Khi xây dựng riêng một framework cho riêng mình, công ty thường phải trải qua một thời gian phát triển thì mới có được framework tương đối hoàn chỉnh và phù hợp với các dự án đặc thù của họ. Tuy nhiên nhược điểm khi xây dựng một framework riêng là tính bó hẹp của nó, do đó khi nâng cấp hoặc mở rộng tính năng sẽ khó khăn hơn.

Về phương diện người có nhu cầu xây dựng webiste dạng này, thì nên hết sức cân nhắc, nếu dự án website của bạn nhỏ thôi thì có thể sử dụng framework của công ty, tuy nhiên, khi dự án lớn và có tính năng mở rộng cao thì framework của riêng công ty sẽ có bị dính sự bó hẹp, đồng thời sau này thay đổi nhà phát triển (công ty khác) sẽ khó khăn hơn cho bạn.

Phát triển thô tư đầu

Đây là cách mà khi website của bạn ở mức quá sức đơn giản, có thể nói đây là loại website tĩnh cung cấp các thông tin đơn giản và cứng nhắc thì có thể dùng loại này. Tức bạn sẽ không thừa kế sử dụng bất kỳ một nguồn tài nguyên nào. Do đó gần như tối ưu được tối đa chi phí cũng như tốc độ xử lý.

Tuy nhiên, khi website bạn phổ biến hoặc tương đối một chút thì mình khuyên không nên dùng cách này, sẽ đem lại cho bạn rất nhiều rũi ro và phiền phức. Thời gian phát triển lâu hơn và nguy cơ các lỗi ,lỗ hỗng cũng cao hơn , do nó phụ thuộc vào trình độ của người lập trình viên do bạn thuê.

Với các tay lập trình kém, họ sẽ chăm chỉ ngồi làm từng tính năng, tuy nhiên do còn non nên sẽ có rất nhiều lỗi và lỗ hỗng. Hãy thật sự cân nhắc khi chọn cách này nhé.

Túm lại

Có một vài điều mình muốn chốt lại để các bạn lưu tâm:

  • Hãy được tư vấn thật kỹ và bạn phải đòi hỏi các công ty làm website cho bạn cung cấp công nghệ/kỹ thuật họ sử dụng để phát triển website của bạn.
  • Một số công ty họ không bàn giao source code khi hoàn thành dự án mà họ chỉ bàn giao sản phẩm đã đóng gói (mã hóa). Bạn cần lưu ý vấn đề này để thỏa luận trong hợp đồng. Vì sau này khi có nhu cầu điều chỉnh nâng cấp, với source code có sẵn bạn có thể thuê đơn vị khác điều chỉnh mà không phụ thuộc vào nhà cung cấp trước đó.
  • Nếu dự án của bạn ở mức tương đối, mình khuyên là nên thuê thêm 1 đơn vị hoặc cá nhân giám sát độc lập để theo dõi và kiểm tra phần mềm trong quá trình phát triển và bàn giao. Vì đôi khi, bạn không hiểu biết sâu về kỹ thuật, nên sản phẩm bàn giao sẽ có nhiều vấn đề mà bạn không thể nhìn nhận ra được. Nếu có thể, các thành viên trong SamSet luôn sẵn sàng hổ trợ bạn.

Tới đây, bạn gần như đã làm chủ được toàn bộ quá trình xây dựng lên 1 website. Mình sẽ đóng lại series “Các dịch vụ thiết kế website” ở đây. Các series khác mình sẽ giúp các bạn cách để vận hành và sử dụng một website hiệu quả.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.