12/11/2019, 10:19

Nguồn tự học web front-end và web configuration ngon bổ rẻ

Lập trình web là công việc đòi hỏi nhiều kĩ năng và kiến thức chuyên môn khó. Có rất nhiều phương pháp để tự học, nhưng đa phần trong số đó đều đã lỗi thời và không còn có ích cho các lập trình viên bởi sự phát triển chóng mặt của ngành công nghệ này. Nếu bạn đang tìm kiếm những nguồn tài ...

Lập trình web là công việc đòi hỏi nhiều kĩ năng và kiến thức chuyên môn khó. Có rất nhiều phương pháp để tự học, nhưng đa phần trong số đó đều đã lỗi thời và không còn có ích cho các lập trình viên bởi sự phát triển chóng mặt của ngành công nghệ này.

Nếu bạn đang tìm kiếm những nguồn tài liệu miễn phí trên Internet thì xin chúc mừng, bạn đã đến đúng địa chỉ. Bài viết này sẽ cung cấp cho thần dân nhà dev những nguồn tự học giúp anh em thoát khỏi thời gian dài vừa fix bug vừa tìm hiểu nguyên nhân tại sao framework của bạn ngừng hoạt động.

Front-end căn bản

Interneting is Hard

Đây là trang web với đầy đủ tài liệu hướng dẫn cách sử dụng HTML và CSS để xây dựng những website hiện đại. Nó sẽ bắt đầu từ góc nhìn của những học viên chưa biết gì về HTML hay CSS. Nếu bạn đang tìm kiếm một nơi cung cấp cho bạn về kiến thức nền tảng như thế thì hãy tham khảo ngay link phía trên.

Mozilla Developer Network

Đây có lẽ là nguồn tham khảo tốt nhất cung cấp các kiến thức tổng quát về lập trình web và thay thế được cho W3 Schools trong thư viện điện tử của tôi.

CSS Diner

Luyện tập CSS selector cũng giống như chọn lựa trái cây và rau củ vậy! CSS selector rất quan trọng để xây dựng nên một nền tảng CSS sạch và bền vững.

  9 dự án mới nhất giúp bạn thành trùm Frontend trong năm 2019

Sự tương thích của các đặc tính của browser

CanIUse

Thực tế là không phải browser nào cũng được tạo ra theo cách giống nhau. CanIUse sẽ chỉ rõ sự khác nhau trong từng feature. Hãy tham khảo các query mẫu dưới đây:

  • Referrer Policy
  • Content Security Policy
  • Video
  • Client Hints: DPR, Width, Viewport-Width
  • Srcset and sizes attributes
  • Http/2
  • CSS Grid
  • Imports
  • CSS image-set
  • calc()
  • TrueType and OpenType

CSS Grid

Grid By Example

Một trang web thực sự hữu dụng đối với bất cứ ai vừa mới bắt đầu học thiết kế web.

  CSS Grid dưới góc nhìn thực tế

Templating engines

Mặc dù không hoạt động như các framework Angular hay React, các engines này giúp chúng ta tránh khỏi những khó khăn khi viết một HTML đơn thuần, chẳng hạn như tổng hợp danh sách. Bạn có thể vừa học vừa ứng dụng các object nhỏ này.

Ý tưởng đằng sau những loại công cụ này đang trợ giúp các block của HTML bằng việc tạo ra các template từ các nhóm logic (giống như thẻ của dữ liệu) và cho phép các dữ liệu được chèn vào một vùng cụ thể của template ngay tại thời điểm hoạt động. Bằng cách này, một nhóm đơn lẻ của HTML có thể được tái sử dụng trong khi những thứ nổi bật thực tế chỉ cần tồn tại đúng 1 lần duy nhất (chúng ta cũng có thể sử dụng cách này để tránh các framework vượt mức).

  • Pug – formerly Jade
  • Handlebars

Ngoài ra Express cũng đã hỗ trợ một số template engine (không liệt kê trong bài này).

Browser usage stat

gs.statcounter

Đây là một trang web giải thích trực tiếp vào vấn đề, không có những dữ liệu gây khó hiểu về cách sử dụng browser, những kiến thức chung về độ phân giải màn hình và cách sử dụng các thiết bị. Nếu bạn đang muốn xây dựng một web app nhắm đến một đối tượng khách hàng cụ thể thì trang web này có thể giúp bạn quyết định mình nên bắt đầu từ đâu.

Thiết kế

Bỏ qua những khuynh hướng nghệ thuật phức tạp, những nguồn tham khảo dưới đây chủ yếu hỗ trợ việc học thiết kế web từ cơ bản. Điều đầu tiên bạn cần đó là một theme đã được xây dựng từ trước rồi sau đó mới chỉnh sửa thêm những phần cần thiết. Hiểu được các quy trình và công cụ sẽ giúp bạn dễ dàng tương tác với chúng hơn.

  • Paletton
  • Figma
  • Ultimate Google Font Pairings
  • Typewolf
  • 7 Rules for Creating Gorgeous UI – Part 1
  • 7 Rules for Creating Gorgeous UI – Part 2

  Responsive Web Design là gì? Từ khái niệm đến thực tế

Provisioning

Biết cách xây dựng giao diện front-end là rất quan trọng nhưng nhiều dev còn chưa hoàn toàn làm chủ nó. Một số các smorgasboard của các công cụ có sẵn để xây dựng nó, nhiều điều trong số đó đưa ra nhiều hoặc ít hơn các lựa chọn

Sau đây là một số option cho các bạn chọn:

Microsoft Azure

Đây là một nền tảng rất tiện ích của .NET. Số lượng các lựa chọn trên Azure khá đa dạng. Bạn có thể chọn lộ trình này hoặc Amazon Web Services, nhưng xét ở một phương diện nào đó, Microsoft Azure có đủ độ phức tạp giúp bạn nâng cao trình độ hơn.

Heroku

Khi sử dụng Heroku, bạn sẽ không còn cần phải điều khiển machine và chạy các lệnh commands để cấu hình website. Giao diện UI của Heroku quá đủ để tạo một trang host cơ bản và thậm chí còn có nhiều công cụ tuyệt vời để cấu hình Continuous Integration.

Digital Ocean

Trái ngược với Heroku, Digital Ocean đòi hỏi nhiều kĩ thuật hơn, mặc dù vậy đây không hẳn là điểm trừ. Thực tế, có nhiều newbie đã sử dụng Digital Ocean để tạo web server trước khi họ có kiến thức về việc này.

Bên cạnh những VPS’s bị bỏ trống (Virtual Private Servers – hay còn gọi là Droplets), nó còn có các One-click apps (ứng dụng một chạm) bao gồm rất nhiều các phần mềm được cài đặt và cấu hình sẵn. Những công cụ bổ trợ như thế này rất hữu ích cho những người mới. Công cụ này còn giảm tải chi phí cài đặt và hoạt động server, cho phép chúng ta tập trung vào những điểm cụ thể trong cấu hình máy chủ (ví dụ như thiết lập các trang trên Nginx). Sau khi sử dụng NodeJS và Ghost One-Click apps (ứng dụng một chạm của Ghost) bạn nên chuyển qua thử một ứng dụng mới trên GitLab.

Digital Ocean còn có nhiều tài liệu hướng dẫn về cấu hình máy chủ. Bạn có thể tham khảo dưới đây:

  • An Introduction to DNS Terminology, Components, and Concepts
  • How to Secure Nginx with Let’s Encrypt on Ubuntu 16.04
  • How to Point to DigitalOcean Nameservers From Common Domain Registrars
  • Nginx Essentials: Installation and Configuration Troubleshooting
  • How to Install Nginx on Ubuntu 16.04
  • How To Protect an Nginx Server with Fail2Ban on Ubuntu 14.04
  • How Fail2Ban Works to Protect Services on a Linux Server

DNSMap

Chắc chắn nếu đã là web dev thì bạn hẳn sẽ gặp vấn đề đau đầu mỗi khi không thể thay đổi DNS ngay lập tức. Khi bạn bổ sung một tên miền cho các tên máy chủ khác nhau trong khi điều chỉnh cấu hình trang web (trong Nginx), điều này sẽ gây nhầm lẫn bởi vì các trình duyệt sẽ hiển thị trang web bị cấu hình sai (đặc biệt là nếu các liên kết SSL có liên quan) dù trong thực tế việc truyền DNS những thay đổi vẫn chưa hoàn tất. Có một loạt các biến thể trên công cụ trên, nhưng nó giúp nhận biết khi nào các thay đổi này đã ‘hoàn thành’. Các công cụ này có thể chưa thực sự hoàn hảo, nhưng DNSMap hiện vẫn đang là cách tốt nhất.

Performance

Google’s PageSpeed Insights

Bạn có thể đã nghe nói về PageSpeed Insights vì PageSpeed hiện đã được đưa vào bảng xếp hạng tìm kiếm của Google cho thiết bị di động. Nó cũng tách biệt điểm số trên thiết bị di động và máy tính để bàn, điều sẽ giúp bạn điều chỉnh trang web của mình cho một đối tượng cụ thể. Ngoài ra bạn cũng có thể tham khảo Lighthouse nếu muốn tìm hiểu chuyên sâu hơn.

Nginx

Nginx giúp bạn tìm hiểu về định cấu hình máy chủ web trong thời gian cấp tốc. Các tài liệu dưới đây sẽ hướng dẫn bạn thực hiện theo từng bước cụ thể:

  • Nginx – Start with Igor’s Beginner’s Guide
  • Wiki home
  • Nginx Amplify

Khi bạn bắt đầu nhận chạy một số trang web, bạn hẳn đã thử tìm kiếm một số dịch vụ để theo dõi chúng. Bạn hiển nhiên sẽ không muốn tự tạo tool hoặc phân tích tệp nhật ký của riêng mình và kết thúc trên Nginx Amplify. Bạn có thể kết nối một vài trường hợp của Nginx với Amplify miễn phí và các công cụ giám sát này sẽ rất tuyệt vời. Bao gồm trong ‘tầng’ miễn phí là khả năng gửi tin nhắn và email điện tử khi số liệu vượt quá ngưỡng bạn định cấu hình. Nhờ công cụ này, bạn được thông báo chỉ vài phút sau khi bot thực hiện hàng ngàn yêu cầu mỗi giây đến một trong các trang web. Tường lửa được cập nhật và sẽ dừng vấn đề lại. Điều này không chỉ hiển thị các số liệu giám sát mà còn sử dụng số liệu phân tích trên các tệp nginx.conf của bạn để tìm sự cố chung và hiển thị thông tin về cấu hình SSL và tư vấn bảo mật cho phiên bản đang chạy của Nginx.

NginxConfig.io – Công cụ giúp khởi động việc ghi tập tin cấu hình Nginx và khối máy chủ

Công cụ cấu hình máy chủ web

Laboratory (Content Security Policy / CSP Toolkit)

Addon Firefox này sẽ xây dựng cho bạn Content Security Policy (chính sách bảo mật về nội dung) trong lúc ghi lại cách bạn sử dụng trang web. Điều này, tất nhiên, giả sử trang web của bạn ổn định và dự kiến phục vụ dữ liệu. Cũng cần lưu ý đây mới chỉ là một addon thử nghiệm.

Test your server’s SSL implementation

Trang web này tập trung vào việc phân loại chi tiết việc triển khai SSL và cách để triển khai SSL an toàn.

Tối ưu hóa hình ảnh

  • TinyPng
  • Cloudinary
  • Responsive Image Breakpoints Generator

  Tối ưu hóa hình ảnh trên trang web với định dạng webp

Trong tất cả các khái niệm frontend, tối ưu hóa hình ảnh là điều thách thức nhất. Trong thực tế, sử dụng các tính năng mới hơn như sizes and srcsets yêu cầu biết cách định cấu hình cho tất cả các tham số hoạt động.

Tuy nhiên, khi bắt đầu hiểu cách sizes và srcset hoạt động song song với các media query bạn chắc chắn sẽ càng yêu thích Cloudinary hơn. Nó hỗ trợ rất nhiều cho công việc của các web developer.

TinyPng được liệt kê vào danh sách vì nó giúp chúng ta hiểu sự khác nhau giữa cách kích thước hình ảnh tự phản hồi với tối ưu hóa hình ảnh nén. TinyPng (hỗ trợ nhiều hơn PNG) tập trung vào tối ưu hóa hình ảnh hiện có thay vì chỉ thay đổi kích thước hình ảnh. Mặc dù Cloudinary cũng cung cấp dịch vụ này, nhưng nó không phù hợp cho các trang web nhỏ. TinyPng sẽ tối ưu hóa hình ảnh của bạn miễn phí đến một quota nhất định. .NET api của nó rất dễ sử dụng có thể upload nguyên một thư mục hình ảnh để xử lý.

Chúc anh em web dev thành công!

TopDev via Dev.to

0