Lập trình Front-End

Trong thời buổi công nghệ ngày nay, các trang web và ứng dụng được xây dựng bởi các lập trình viên “Front End” để truyền tải thông tin, dữ liệu đến mọi người. Vậy lập trình front-end là làm những gì?

Front-end

Thuật ngữ front-end hay còn gọi là client-side liên quan đến khía cạnh kỹ thuật của Internet mà không phải tất cả mọi người đều có thể hiểu được.

Trước đây, vài trò này được biết tới, với các tên khác như: người viết web, thiết kế giao diện website, viết mã xử lý… Internet hiện nay phát triển rất mạnh, nhưng các việc chính để xây dựng web vẫn như vậy, cũng gồm viết mã HTML, CSS, JavaScript.

Công việc này yêu cầu cả về kiến thức lập trình và khiếu thẩm mỹ để tạo nên những trang web đẹp, tiện dụng.

Đối với nhiều người, lập trình Front End là những người làm ra giao diện đẹp cho trang web. Tất nhiên, nói như vậy cũng đúng, bởi vì nhiệm vụ của người làm web là phải làm cho nó nhìn đẹp bắt mắt với người xem.

Tuy nhiên, rất nhiều công nghệ trong lĩnh vực Front-End này mà nhiều lập trình viên bỏ qua hoặc không xem trọng nó.

 HTML

Các website đều xây dựng từ các trang có cấu trúc, cấu trúc này rất quan trọng cho các cỗ máy tìm kiếm như Google, Microsoft Bing hiểu được trang web của chúng ta. Nó cũng chứa đựng các lớp, định danh để giúp lập trình viên trang trí và cài đặt các xử lý trên chúng.

Thoạt nghe thì chúng ta thấy hiển nhiên đúng không?, có lập trình viên web nào mà không biết HTML? nhưng có rất nhiều lỗi được tạo ra bởi các trang web có cấu trúc sai, hoặc bị lập trình viên dùng các “tà đạo” chiêu để ép các đoạn mã làm một viêc gì đó mà không phải việc của nó.

CSS

CSS, còn gọi là Cascading Style Sheets, là một thành phần cốt lõi trong phát triển các ứng dụng Front-End. Cho phép lập trình viên dàn trang để tạo ra các trang web dễ nhìn, gọn gàng, giúp người đọc có thể xem nhanh các nội dung.

Thiết kế không đơn giản chỉ là “Nhìn như thế nào?” mà còn là “Được cấu trúc như thế nào?”

Một việc khá quan trọng của việc trang trí là kiểm tra chéo trên các trình duyệt, thiết bị khác nhau để viết các đoạn mã tinh gọn nhưng vẫn đảm bảo các trình duyệt khác nhau xuất ra kết quả giống nhau.

Tương thích trình duyệt

Cho tới bây giờ thì trình duyệt vẫn là công cụ hiện đại với nhiều tính năng để truy cập Internet.

Kể từ cuộc chiến trình duyệt web giữa Netscape và Internet Explore trên PCs, nhiều thứ đã thay đổi. Ngày nay, các trình duyệt cạnh tranh với nhau qua các tính năng như: tốc độ duyệt web, các ứng dụng gắn thêm (Plugin), ứng dụng có sẵn (Addon)…Mục đích cuối cùng là giúp đơn giản và tăng cường trải nghiệm duyệt web.

Cùng với xu hướng chuyển ứng dụng lên Cloud, Gmail là một ví dụ phổ biến, trình duyệt được xem như là hệ điều hành, điều này đã đặt thêm thách thức trong việc trang trí và lập trình trên client ngày càng phức tạp hơn. Như Douglas Crockford đã nói “Trình duyệt là môi trường phát triển phần mềm tệ nhất có thể nghĩ đến”.

Lập trình front-end

Mặc dù, nói đến front-end thì hầu hết là về JavaScript, nhưng cũng có thể nói đến ActionScript, PHP hoặc bất kỳ ngôn ngữ phổ biến nào khác được tạo ra cho việc phát triển ứng dụng front-end.

JavaScript đã phát triển mạnh mẽ, bắt đầu từ việc nhúng mã vào trang HTML cho đến ứng dụng thực thi bất đồng bộ để tải các thành phần riêng biệt trong trình duyệt sử dụng AJAX.

Ngôn ngữ JavaScript gây ra rất nhiều điều khó hiểu điều này ảnh hưởng đến các lập trình viên, tuy nhiên, JavaScript đã được phát minh ra cho Web và dù muốn hay không, thì chúng ta vẫn phải học nó nếu muốn làm web.

Trải nghiệm người dùng (UX)

Thông tin được tổ chức khá rồi rắm trong nhiều năm trước, có nhiều người tham gia vào việc xây dựng các trang web như khách hàng, nhà thiết kế, lập trình viên, quản lý dự án, cuối cùng là lập trình viên front-end, họ sẽ là người phân tích các chi tiết, đưa ra các gợi ý cũng như là kiểm tra tính tiện dụng.

Phụ thuộc vào kích thước của team và ngân sách, thỉnh thoảng lập trình viên front-end còn làm cả việc thiết kế, kiểm tra lỗi, tính tiện dụng và khả năng dễ tiếp cận.

Một lập trình viên front-end dành khá nhiều thời gian hơn các thành viên khác để xem các website và đánh giá xem chúng trông như thế nào và làm việc ra làm sao.

Tối ưu tốc độ

Để xây dựng các trang web nhanh, mã HTML, CSS, JavaScript phải có khả năng mở rộng nhanh chóng.

Càng ngày càng có nhiều thiết bị sử dụng web hơn, và có nội dung phong phú như hình ảnh, videos…sẽ rất thú vị đối với các công ty để giảm thiểu dung lượng, kích thước trang nhiều nhất có thể để tránh gia tăng chi phí băng thông cũng như gia tăng trải nghiệm người dùng.

Đầu tư nghiên cứu

Đây là một danh sách các thứ đã xuất hiện trong những năm qua: APIs, thư viện JavaScript, cảm ứng đa điểm, mạng xã hội, nội dung videos.

Tiếp tục cập nhật những xu hướng mới trong thiết kế, viết mã và sáng kiến mới trên nền trang web là công việc của lâp trình viên front-end.

Molly Holzschlag từ Opera nói rằng:

Nếu bạn làm cùng một thứ trong 10 năm tới, bạn đang làm sai việc

Kết luận

Thucydides đã viết “Kiến thức mà không có sự hiểu biết thì vô giá trị”. Từ lúc bắt đầu, web đã đại diện cho việc thể hiện thông tin nhưng với việc dữ liệu ngày càng nhiều đã làm cho việc tổ chức thông tin trở nên khó khăn.

Mục tiêu của một lập trình viên “front-end” là tạo sự rõ ràng, dễ hiểu, dễ truy cập để giúp đọc giả hiểu và quan tâm đến thông tin được trình bày nhiều hơn.

Front-end không chỉ là một gương mặt đẹp và nó còn là sự trải nghiệm thân thiện cho người dùng.