Mần răng để giảm tối đa thời gian học , sự vất vả cho một lập trình viên khi chuyển đổi từ web framework này sang web framework khác , ngôn ngữ lập trình này sang ngôn ngữ lập trình khác? Mần răng start up với nhân sự mỏng , tài chính hạn chế chọn đúng web framework theo các tiêu chí: dễ lập trình , dễ bảo trì , tương trợ cộng đồng tốt , tốc độ cao , mở mang dễ dàng , tính năng phong phú? Ngày nay các web framework ngày càng phong phú về số lượng và tính năng. Trong mỗi ngôn ngữ lập trình có tới chục web framework: PHP: Laravel, Phalcon , Slim , Code Igniter , YII , Cake PHP , Zend Frameworks còn hầu hết nữa Ruby: Rails , Sinatra , Hanami Python: Django , CherryPy , Tornado , Flask , TuboGear , Bottle , Web2Py , còn hầu hết JavaScript - Node.js: Express , Meteor , Hapi.js , Sail.js , Mean.js , Ghost , Arrowjs.io Java: Spring , Spark , Play , Ninja , Vaadin ... Golang: Iris , Martini , GoGin , Beego , Tango , Vulcan... C#: ASP.net Web Form , ASP.net MVC , Nancy , SignalR Scala: Play Framework , Finatra , Scalatra , Lift , .... Elixir: Phoenix Framework , Sự tình đặt ra: Hiện nay một lập trình web để làm chủ web framework thường mất 6 tháng hoặc 12 tháng. Công nghệ liên tục đổi thay , khách hàng , đề án đổi thay nhanh. Nếu chỉ bảo thủ biết độc nhất một web framework khiến đội phát triển , lập trình viên mất đi nhiều cơ hội , thu nhập. Ngôn ngữ lập trình khác nhau , cơ chế hoạt động ( io blocking vs no blocking io ) , ... khác nhau nhiều nhưng tất thảy các web framework đều tụ hội , đáp ứng các yêu cầu chung và căn bản của ứng dụng web hiện đại Tương trợ các http verbs: GET / POST / PUT / DELETE. Cơ chế phân luồng xử lý request URL: router cấu trúc MVC ( Model-View-Controller ) hoặc MVVM ( Model-View - ViewModel ) Trả về dữ liệu định dạng XML , JSON. Hỗ trợ yêu cầu AJAX tương trợ 1 hoặc nhiều templating engine: cơ chế điền dữ liệu vào trang web mẫu Kết nối các cơ sở dữ liệu giao tiếp ( MySQL , Postgresql , Oracle , MS SQLServer ) và phi giao tiếp ( Mongodb , Redis , CouchDB , FireBase.. ) Server side validation : thẩm tra hợp lệ dữ liệu trên server Phần lớn hỗ trợ web socket , server sent event tương trợ đa ngôn ngữ Tạo RESTful web service tương trợ các kiểu chính xác khác nhau Basic Authentication , OAuthen , JWT Upload file binary Trả về file binary - streaming Đọc ghi Cookie - Session Flash message tối ưu khả năng phục vụ nhiều kết nối nhờ bộ đệm: caching Reverse proxy: phân tải ra nhiều máy chủ web Nếu không hợp với lập trình web, bạn cũng có thể thử học lập trình Android cơ bản cũng đang rất hot hiện nay. Đề xuất giải pháp đào tạo lập trình viên web có thể chuyển đổi nhanh giữa các framework Dựa vào kinh nghiệm bản thân sau khi dự khán nhiều loại đề án web: framework , ngôn ngữ , cơ chế khác nhau , tôi xin đề xuất cách xây dựng khung giáo trình thống nhất và Đứng riêng ra với web framework. Giảng sư dạy chuyên framework nào sẽ khởi đầu khung giáo trình lập trình nên các giá dụ mẫu , đề án mẫu. Giảng sư cần tái sự dụng tối đa các tài nguyên chuẩn như HTML , CSS , JavaScript , kịch bản demo chương trình , cấu trúc cơ sở dữ liệu , dữ liệu mẫu.... Khoảng 5 buổi hàng đầu , giảng sư demo , cùng học viên thực hiện các giá dụ ngắn , sáng sủa minh họa các tính năng luôn luôn dùng của một chương trình web. Khoảng 4 buổi tiếp theo: xây dựng chương trình lưu trữ , truy hỏi đọc ghi dữ liệu xuống cơ sở dữ liệu back end. Trong đề án DB: học viên sẽ làm quen cơ sở dữ liệu giao tiếp MySQL hoặc Postgresql , pattern ORM ánh xạ bảng vào đối tượng dữ liệu trong chương trình web , cách viết câu lệnh truy hỏi thô , raw query để truy xuất dữ liệu. Học viên cũng sẽ học thêm kỹ thuật: thẩm tra hợp lệ dữ liệu tại trình duyệt sử dụng javascript và trên máy chủ. Nếu còn thời gian có thể giá dụ chương trình tương đương sử dụng NoSQL: MongoDB. Không nên dạy cú pháp ngôn ngữ lập trình. Việc này là thừa hoặc học viên tự tìm hiểu qua sách Ebook hoặc học trực tuyến. Giảng sư nên tập kết demo , giải thích Sau những buổi cơ bản , học viên sẽ thực hiện với những đề án phối hợp nhiều công nghệ. Có thể phân thành một khóa học mới , nâng cao , tách biệt để phục vụ đối tượng lập trình viên kinh nghiệm Đề án REST là đề án phục vụ thiết bị di động. Phối hợp chính xác bảo mật dịch vụ REST Đề án web socket demo chương trình chat , phối hợp thư viện React , Angular hay VUE Đề án Unit Test demo Unit Test kiểm thử phương thức của controller , và quy trình CI , tích hợp liên tục Đề án Microservice: demo chương trình phức tạp kết nối 2-3 dịch vụ : Auth0 dịch vụ quản lý tài khoản người dùng , message queue Như vậy khung giáo trình không phụ thuộc vào web framework cụ thể nào . Giảng sư dạy chuyên web framework nào sẽ lập trình giá dụ , đề án theo khung giáo trình. Ích lợi của khung giáo trình Đứng riêng ra với web framework Học viên học web framework này , chóng vánh chuyển qua làm quen web framework khác Giảm tối đa thời gian xây dựng lại khung giáo trình Giáo trình khung chuẩn hóa định hướng tốt cho cả giảng sư , học viên xác định mình đang thiếu kỹ năng nào , cần phải bổ xung. Tái sử dụng các tài nguyên giá dụ HTML , CSS , JavaScript theme , cấu trúc cơ sở dữ liệu back end , chương trình di động kết nối giảng sư có thể tham khảo , porting đề án mẫu từ framework này sang framework khác dễ dàng Công bằng benchmark tốc độ web framework , đánh giá theo từng chức năng của các framework ngang ngửa nhau khi các đề án mẫu chung thiết kế , front end và cơ sở dữ liệu back end. tham khảo thủ pháp đo của Techempower Tiếp theo sẽ làm gì? Trên đây là ý kiến đề xuất của tôi để cải tiến giáo trình đào tạo của Techmaster giúp học viên chuyển đổi kỹ năng nhanh hơn. Nội dung giáo trình được xây dựng theo chuẩn để các giảng sư có thể trao đổi , học hỏi , thi đua với nhau. Trong thời gian tới , hàng ngũ giảng sư sẽ từng bước thực hiện thí điểm đối với framework Arrowjs.io trên Node.js và Rails 5. Tiếp đến là Iris Golang và Java Spring. Nguồn: Học lập trình PHP ở đâu tốt nhất