Skip to main content

Training guideline

Guide này là để giúp các bạn techlead, dev tham gia vào training cho các bạn dev mới, hoặc intern theo chương trình Training của Avada Việc training không chỉ đơn giản là việc mình đưa cho chương trình Training đã được hệ thống hóa sẵn và check xem các bạn đã làm tới đâu. Nó là một kĩ năng về sư phạm, leadership cần được các bạn làm tốt để đảm bảo việc huấn luyện người mới đạt hiệu quả cao nhất.

Tại sao nó quan trọng?

Ân và uy

Việc training cho bạn mới sẽ là cơ hội để các bạn có thể bồi đắp ra các bạn nhân sự mới, có thể dưới quyền mình hoặc không. Do đó, đây là thời điểm để các bạn mở rộng khả năng hỗ trợ của mình với các bạn nhân viên mới, thời điểm này các bạn rất cần sự giúp đỡ của các bạn. Một khi các bạn giúp đỡ các bạn trong lúc các bạn cần nhất, các bạn sau sẽ tham gia hỗ trợ các bạn nhiều nhất có thể.

Sự phát triển

Thế hệ sau phát triển hơn thế hệ trước. Đây là sự phát triển chung của xã hội. Thế hệ sau luôn có cách, học nhanh gọn hơn so với chúng ta trong quá khứ. Đây cũng là cơ hội để các bạn có thể tiếp xúc với các thế hệ mới, tìm hiểu xem thế hệ mới học như thế nào và làm mới chính bản thân mình.

Khái quát chương trình training của Avada và các checkpoints

Chương trình training của Avada sẽ tập trung vào việc giúp các bạn học nhưng kiến thức mới càng sâu càng tốt, càng hiểu rõ bản chất vấn để càng tốt. Do đó, chương trình được chia thành 5 part, mỗi part được chia thành những bài tập nhỏ khác nhau với những goal nhỏ riêng để các bạn đạt được và nhớ những kiến thức này lâu nhất có thể.

Part 1: Warm up

Tuần này tập trung vào NodeJS và KoaJS để các bạn có một góc nhìn đầy đủ nhất về

  • HTTP framework
  • Lập trình bất đồng bộ trong NodeJS
  • KoaJS dưới dạng cơ bản viết vào file, thay vì viết vào DB.

Lập trình bất đồng bộ

Với checkpoints này, người training cần review kĩ bài tập NodeJS basic Excercise với những tiêu chí:

  • Các bạn xử dụng đúng Promise.all
  • Các bạn với câu 8 có dùng đúng API để get từng item, thay vì gọi cả API /posts, comments Việc này rèn luyện cho các bạn tiếp xúc với 1 API Request tiêu chuẩn.
  • Ưu tiên sử dụng map, filter, reduce

KoaJS

Với check points này, người training cần cần review kĩ bài tập KoaJS API với những tiêu chí sau:

  • Các bạn phải làm API chuẩn Restful. Đường dẫn đúng trong yêu cầu. Với HTTP status với create phải trả 201, còn lại 200, không lẫn lộn.
  • Việc viết dữ liệu phải viết vào trong repository. Hàm getProducts({limit = 10, sort = 'desc', fields = null} = {}) phải viết chuẩn như thế. Các bạn biết chaining các filter. Thí dụ ko sai giữa việc thực hiện limit trước khi sort. Nếu sau, sau các bạn sẽ ko hiểu gì về Firestore cả.

=> Bài tập này tập trung cho các bạn hiểu KoaJS 1 các độc lập là gì. Hiểu được là KoaJS nó chỉ là 1 framework để tự động hóa, đơn giản hóa các tác vụ HTTP thôi. Việc học theo 1 stack như MERN gì đó khiến các bạn không tách biệt được các thành phần. Các bạn viết vào file cơ bản thay vì database sẽ giúp các bạn hiểu được Database là gì? Database phải được giải thích cho các bạn hiểu là 1 dạng lưu trữ lâu dài, thay vì nhắn hạn như RAM, thay vì đó lưu vào ổ đĩa. Các phần mềm DB khác cũng lưu và ở đĩa, chẳng qua là format khác. Việc này giúp sau này khi gặp lỗi, các bạn có hiểu biết để khoanh vùng, biết được vấn đề nằm ở HTTP, database hay thành phần khác dễ dàng hơn.

Part 2: ReactJS

Tuần này tập trung vào ReactJS để các bạn có một góc nhìn đầy đủ nhất về

  • ReactJS cơ bản
  • Custom React Hooks
  • setState tiêu chuẩn
  • Shopify Polaris

React cơ bản - Bài tập todo của Digital Ocean

Trong phần React Basic sẽ có 1 phần bài tập đầu tiên cho các bạn làm 1 bài todo cơ bản theo bài tập của Digital Ocean. Bài tập này tưởng sẽ là copy của Digital Ocean thôi cơ mà không phải, nó hoàn toàn là phải 1 guide sai. Tất cả các tiêu chuẩn của React ở bài này họ đều làm sai. Các bạn làm sẽ phải đáp ứng:

  • Tách components
  • Sử dụng đúng setState(prev => {}) chứ ko merge với biến state chính.
  • Nối được API từ part 1 vào app. Thêm sửa xóa được chuẩn, load lại page không mất.

React Polaris

Trong bài tập về áp dụng React Polaris, các bạn sẽ cần áp dụng React Polaris vào giao diện cho bài tập training. Các bạn cần:

  • Sử dụng đúng component của Polaris mới nhất. Tương đối so với mockup
  • Không sử dụng custom component

Part 3: Firebase and Shopify

Shopify

Ở phần bài tập này, các bạn thường ít sẽ phải review, chỉ cần hỏi lại các bạn và đưa các câu hỏi xem các bạn có tìm hiểu thiếu gì không. Bởi quan trọng ở phần 3,4 của bài tập phần Final Project nếu các bạn không hiểu sẽ chắc chắn không làm được.

Firestore

Các bạn cần nối API koaJS ở bài todo trước thành API lưu vào Firestore.

Avada CLI

Các bạn hỗ trợ các bạn cài đặt và set up Avada app sample, giới thiếu cấu trúc lại cho các bạn nếu cần thiết.

Part 4: Final Project

Part 1: React app

Part này cần review các bạn:

  • Dùng đúng component của Polaris
  • Đúng hierarchy của Polaris. Phải Frame > Page > Layout > Card > FormLayout > Field. Có nhiều bạn sẽ field không được bọc ngoài FormLayout, không dùng component Page, tự custom primary action. Không dùng Layout và tự style flex

Part 2

Các bạn sẽ cần review các tiêu chí sau:

  • Các bạn setup database collection structure đúng chưa. Phải làm đúng Collection structure được nêu ra.
  • Các bạn có sử dụng useFetchApi không?
  • Check các UX các bạn về loading page, các nút lúc nhấn save có xoay không. Loading trang có Skeleton không?

Part 3

Bài tập phần 3 này sẽ là phần quan trọng nhất trong cả bài tập, các bạn cần review các bạn ở các tiêu chí sau:

  • Sử dụng đúng Promise.all cho toàn bộ phần afterInstall
  • Chia repository, service đúng chuẩn coding standard.
  • Các bạn nếu sử dụng REST API thì phải tối ưu về các lần gọi API. Các bạn thường gọi 30 orders, rồi gọi 30 API để lấy Product Image. Tốt hơn nên gọi 30 orders, rồi lấy ra array của các Product ID, filter unique ID list, rồi gọi 1 API product list rồi truyển params ids: 324234,3423423423 để lấy cả list 1 lần.
  • Trường hợp các bạn biết xử lí = GraphQL để lấy LineItems cùng với ảnh Product Image luôn thì tốt, nên hướng các bạn hướng này.

Part 4, 5

Phần này thì cần các bạn thao tác đăng kí webhook mượt với Shopify là được. Nhận được dữ liệu từ client thì chỉ cần đúng format như trong ảnh yêu cầu. Lưu ý các bạn phải format date ago dùng momment ở backend, không đẩy format đấy ra scripttag.

Part 6

Phần này giúp các bạn có tư duy bất đồng bộ ở ngoài FrontEnd. Phần này cần rèn luyện các bạn kĩ năng viết pseudocode như sau:


# Wait for inital delay
# For each notifications
# Display
# Delay duration
# Fade out
# Delay gap time

Sau khi các bạn xong rồi, các bạn cần sử dụng đúng hàm delay thay vì tư duy kiểu setTimeout. Nếu các bạn làm thêm animation thì tốt.

Part 5: Onboard quy trình và các kiến thức nâng cao

Các bạn kiến thức nâng cao và quy trình trước khi vào team

Onboarding checklist

  • Add vào development-team, slack channels.
  • Add vào Avada development partner Shopify.
  • Add gitlab code
  • Add fireabase
  • Add Trello board.