Chúng ta cần phải chuẩn hóa giáo trình thiết kế web ngay

Thảo luận trong 'Rao vặt tổng hợp - Chợ linh tinh' bắt đầu bởi sonvu, 10/8/16.

  1. sonvu

    sonvu Thành viên xây dựng 4rum

    Tham gia ngày:
    24/2/16
    Bài viết:
    78
    Đã được thích:
    0
    Điểm thành tích:
    6
    Giới tính:
    Nam
    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

    1. Tương trợ các http verbs: GET / POST / PUT / DELETE.
    2. Cơ chế phân luồng xử lý request URL: router
    3. cấu trúc MVC ( Model-View-Controller ) hoặc MVVM ( Model-View - ViewModel )
    4. Trả về dữ liệu định dạng XML , JSON. Hỗ trợ yêu cầu AJAX
    5. tương trợ 1 hoặc nhiều templating engine: cơ chế điền dữ liệu vào trang web mẫu
    6. 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.. )
    7. Server side validation : thẩm tra hợp lệ dữ liệu trên server
    8. Phần lớn hỗ trợ web socket , server sent event
    9. tương trợ đa ngôn ngữ
    10. Tạo RESTful web service
    11. tương trợ các kiểu chính xác khác nhau Basic Authentication , OAuthen , JWT
    12. Upload file binary
    13. Trả về file binary - streaming
    14. Đọc ghi Cookie - Session
    15. Flash message
    16. tối ưu khả năng phục vụ nhiều kết nối nhờ bộ đệm: caching
    17. 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....

    [​IMG]

    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
    1. Học viên học web framework này , chóng vánh chuyển qua làm quen web framework khác
    2. Giảm tối đa thời gian xây dựng lại khung giáo trình
    3. 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.
    4. 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
    5. giảng sư có thể tham khảo , porting đề án mẫu từ framework này sang framework khác dễ dàng
    6. 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
     

Chia sẻ trang này