Các khái niệm quan trọng nhất bạn nên biết để có được công việc với tư cách là nhà phát triển Django là gì?
Matthew Freire
Matthew Freire
4 tháng 1 năm 2021 • 7 phútcông việc
Cho những người mới bắt đầu
Các khái niệm quan trọng nhất bạn nên biết để có được công việc với tư cách là nhà phát triển Django là gì?
Nếu bạn thích xem video thay vì đọc, bạn có thể xem video tại đây
Học một khuôn khổ là một thách thức. Bạn phải làm quen với cách mọi thứ hoạt động, vị trí của mọi thứ và cách tận dụng tối đa các công cụ được cung cấp cho bạn. Django cũng không ngoại lệ. Đó là một cơ sở mã khá lớn, với rất nhiều công cụ và chức năng. Học mọi thứ Django cung cấp có thể mất nhiều thời gian. Rất may, hầu hết thời gian bạn thực sự có thể đạt được mục tiêu của mình mà không cần phải học mọi thứ cần biết về Django
Trong bài đăng này, tôi sẽ giải thích các khái niệm quan trọng nhất mà bạn nên biết để có được công việc với tư cách là nhà phát triển Django
Điều đáng nói là danh sách này hoàn toàn là ý kiến của riêng tôi. Nó là kết quả của việc làm việc với tư cách là một nhà phát triển Django chuyên nghiệp trong ba năm qua
Nếu bạn thích định dạng video hơn, bạn có thể xem phiên bản video của hướng dẫn này tại đây
TLDR;
Đây là những khái niệm bạn cần hiểu [theo thứ tự quan trọng]
- Thiết kế cơ sở dữ liệu [quan trọng nhất]
- Xác thực và ủy quyền
- Luồng dữ liệu [biểu mẫu → dạng xem → cơ sở dữ liệu → và ngược lại]
- Cách cấu hình tệp tĩnh và tệp phương tiện phù hợp với Django
- triển khai
- Tìm kiếm
- Đáng nói. Để thoải mái thì hãy không thoải mái
Kỹ năng nổi bật
- Tích hợp với API của bên thứ 3
- docker
- Xây dựng API [e. gDRF]
- Tích hợp với các giao diện người dùng [React, Vue, v.v. ]
- Xếp hàng tác vụ [Cần tây, Django-Q, v.v. ]
Vậy hãy bắt đầu
Thiết kế cơ sở dữ liệu
Dữ liệu là phần quan trọng nhất của bất kỳ ứng dụng web nào. Cách dữ liệu đó được lưu trữ, truy xuất và sử dụng là rất quan trọng vì phần còn lại của dự án phụ thuộc vào nó. Do đó, thiết lập cơ sở dữ liệu là một trong những bước đầu tiên khi bắt đầu một dự án Django mới
Bạn sẽ liên tục sử dụng Mô hình của Django để thiết kế lược đồ cơ sở dữ liệu. Bởi vì lược đồ có tác động lớn đến phần còn lại của dự án, điều quan trọng là bạn phải đảm bảo rằng bạn đã thiết kế lược đồ một cách chính xác. Bạn sẽ cần phải rất thoải mái với Mô hình của Django để nâng cao kỹ năng thiết kế cơ sở dữ liệu. Điều này sẽ yêu cầu bạn hiểu tất cả các loại quan hệ bảng khác nhau, chẳng hạn như Khóa ngoại, OneToOneFields và ManyToManyFields.
Hiểu biết tốt về thiết kế cơ sở dữ liệu là nền tảng để hiểu rõ về Django
Xác thực và ủy quyền
Hồi mới học Django bỏ bê phần này lâu quá. Đây lẽ ra phải là phần tôi dành nhiều thời gian nhất để học. Hầu như tất cả các ứng dụng web bạn sẽ xây dựng sẽ yêu cầu một số hình thức xác thực
Bước đầu tiên là hiểu sự khác biệt giữa xác thực và ủy quyền là. Tôi khuyên bạn nên bắt đầu bằng cách tìm hiểu xác thực tích hợp do Django cung cấp. Mô-đun auth của Django chứa rất nhiều dạng xem và biểu mẫu tạo nên logic xác thực. Xem qua mã đó và hiểu chức năng của từng biểu mẫu và chế độ xem sẽ cho bạn điểm khởi đầu tốt về cách thức hoạt động bên dưới mui xe.
Trong khi tìm hiểu xác thực tích hợp, bạn cũng nên tìm hiểu các loại xác thực khác nhau, chẳng hạn như xác thực phiên và mã thông báo. Nếu bạn hiểu rõ về những điều này thì bạn có thể muốn xem xác thực JWT
Nếu bạn hiểu rõ về xác thực thì bạn sẽ muốn bắt đầu xem qua các gói được sử dụng phổ biến nhất, chẳng hạn như Django AllAuth. Rất có thể bạn sẽ sử dụng các gói của bên thứ ba để xử lý xác thực vì nó rất lặp đi lặp lại. Vì vậy, hãy bắt đầu làm quen với các gói có sẵn và những gì có thể là tốt nhất cho trường hợp sử dụng của bạn
Luồng dữ liệu
Bạn có thể đã nghe nói về từ viết tắt CRUD [Tạo Xóa Truy xuất Cập nhật]. Từ viết tắt này đại diện cho các loại hành động được thực hiện trong ứng dụng web. Sử dụng CRUD, bạn có thể thiết kế chế độ xem của mình để tập trung vào việc cho phép thực hiện một hoặc nhiều hành động này
Lấy ví dụ hành động Tạo. Để triển khai hành động này, bạn sẽ cần triển khai biểu mẫu lấy dữ liệu và tạo tài nguyên [thường thông qua mô hình Django]. Chế độ xem dựa trên lớp của Django rất tốt trong việc giảm thiểu số lượng mã được viết trong chế độ xem CRUD, nhưng chúng cũng trừu tượng hóa rất nhiều logic. Tôi thực sự khuyên bạn nên xem qua mã nguồn của tất cả các chế độ xem dựa trên lớp chung của Django [CBV] và hiểu chức năng của từng phương thức, thứ tự thực thi của các phương thức đó và cuối cùng là hiểu cách các chế độ xem đó xử lý logic của CRUD cho bạn
Django của FormView đặc biệt có rất nhiều phương pháp có thể được truy cập. Đây là một số phương pháp phổ biến bạn sẽ muốn hiểu.
- get_context_data
- get_form_class
- get_form_kwargs
- get_success_url
- form_valid
- form_invalid
- bưu kiện
Một phần của việc hiểu luồng dữ liệu là hiểu cách dữ liệu di chuyển giữa người dùng và cơ sở dữ liệu. Điều này có nghĩa là hiểu cách dữ liệu được truy xuất từ cơ sở dữ liệu, được chuyển vào dạng xem và được hiển thị trong mẫu. Tương tự như vậy theo cách khác - hiểu dữ liệu được chuyển vào một biểu mẫu, được gửi tới dạng xem và được lưu trữ trong cơ sở dữ liệu
Cấu hình tệp tĩnh và phương tiện
Một trong những khái niệm khó khăn hơn là tệp tĩnh và tệp phương tiện. Điều này là do thiết lập khác nhau tùy thuộc vào việc bạn đang phát triển hay sản xuất tại địa phương. Hiểu sự khác biệt giữa hai là quan trọng. Tôi cũng khuyên bạn nên tìm hiểu về giao thức S3 và lý do tại sao việc lưu trữ tệp của bạn trên một máy chủ riêng bằng dịch vụ như Digital Ocean Spaces lại thuận lợi
Hiểu các tệp tĩnh và tệp phương tiện cũng sẽ giúp bạn hiểu kiến trúc triển khai của một ứng dụng web hiện đại
triển khai
Đây là một trong những phần quan trọng nhất của phát triển web. Ngày nay, có nhiều dịch vụ bạn có thể sử dụng để triển khai dự án Django của mình, nhưng điều quan trọng cần hiểu là các nguyên tắc cơ bản về cách máy chủ Django được vận hành trong sản xuất. Một thiết lập truyền thống sẽ liên quan đến việc thiết lập thủ công gunicorn và nginx trên máy chủ. Một cách tiếp cận hiện đại hơn là sử dụng Docker và triển khai bộ chứa docker
Trên thực tế, tôi muốn nói rằng bạn càng biết nhiều về triển khai một dự án Django thì nó càng có vẻ tốt hơn đối với các nhà tuyển dụng tiềm năng.
Tìm kiếm
Đôi khi bạn đang làm việc, bạn có thể không biết câu trả lời trong đầu. Và điều đó ổn. Chúng tôi không phải máy tính. Chúng ta không nên ghi nhớ mọi thứ. Nhưng những gì bạn sẽ cần phải giỏi là nghiên cứu. Điều tôi học được là các nhà phát triển có kinh nghiệm chỉ cần nhớ nơi cần tìm và nội dung cần tìm khi họ gặp lỗi hoặc sự cố mà họ chưa từng gặp phải trước đây.
Thật không may, cách duy nhất để cải thiện điều này là tiếp tục xây dựng các dự án. Càng làm nhiều dự án, bạn càng có nhiều cơ hội đối mặt với thử thách mới và học hỏi điều gì đó mới
Để thoải mái thì hãy không thoải mái
Điều này có vẻ như là một trong những điều sáo rỗng để nói, nhưng đó là sự thật - có thái độ đúng đắn là rất quan trọng. Đôi khi công việc của bạn yêu cầu bạn phải làm những việc bạn không muốn hoặc sửa những lỗi mà bạn không mong đợi
Bạn cần trở nên thoải mái khi làm việc trong những tình huống không thoải mái
Bạn càng làm tốt điều này, bạn càng trở nên có giá trị. Điều quan trọng là tiếp cận vấn đề với thái độ đúng đắn
- hít một hơi
- Suy ngẫm về vấn đề của bạn
- Làm một vài nghiên cứu
- Đừng căng thẳng quá nhiều
kỹ năng thưởng
Mỗi vai trò đều khác nhau, vì vậy rất khó để cung cấp một danh sách kỹ năng chung cho tất cả. Nhưng theo kinh nghiệm của tôi, đây là điều có thể khiến bạn khác biệt với các nhà phát triển Django khác
Tích hợp với API của bên thứ 3
Đây có lẽ là kỹ năng bị đánh giá thấp nhất - theo ý kiến của tôi
Một trong những thử thách khó khăn nhất mà tôi gặp phải khi xây dựng JustDjango là kiến trúc của mô hình thanh toán cho trang web. Tôi muốn có một quy trình thanh toán được tùy chỉnh hoàn toàn và điều này yêu cầu tôi phải xây dựng nhiều chức năng tích hợp với Stripe
Sọc chỉ là một ví dụ. Nếu bạn có thể tích hợp với các API như GitHub, Slack, Twitter và nhiều API khác, bạn đang cho thấy rằng bạn hiểu gần như tất cả các khía cạnh cơ bản của Django
Ngày nay có toàn bộ doanh nghiệp được xây dựng dựa trên API của các công ty khác. Vì vậy, kỹ năng này là một kỹ năng quan trọng đối với tôi và tôi nghĩ rằng rất nhiều công ty khác tận dụng API
Tích hợp với frontend
Các giao diện người dùng ngày nay bị chi phối bởi các thư viện JavaScript. Hầu hết các ứng dụng đang tách riêng phần giao diện người dùng và phần phụ trợ, điều đó có nghĩa là nếu bạn muốn được coi là nhà phát triển full-stack, bạn sẽ cần phát triển một số kiến thức chuyên môn về JavaScript
React và Vue là hai đề xuất của tôi. Tôi thích React cho các dự án lớn hơn nhưng điều đó tùy thuộc vào sở thích của bạn. Tôi nghĩ rằng mọi người đều đồng ý rằng React khó học hơn Vue, vì vậy điều đó làm cho React trở thành một kỹ năng ấn tượng hơn để có
docker
Docker là một công cụ tuyệt vời để tạo môi trường nhất quán giữa các thành viên trong nhóm. Nếu bạn đang tham gia một nhóm lớn, rất có thể bạn sẽ làm việc với Docker nên việc phát triển kỹ năng này trước sẽ giúp cuộc sống của bạn dễ dàng hơn
Docker cũng được sử dụng rộng rãi để triển khai. Có rất nhiều hướng dẫn chỉ ra cách cập cảng một dự án Django và nó khá dễ hiểu. Tôi nghĩ đây là một kỹ năng bạn có thể dễ dàng tận dụng. Điều đó đang được nói rằng tôi sẽ không cố gắng trở thành một chuyên gia về Docker. Các nguyên tắc cơ bản là quá đủ để bạn vượt qua
Xây dựng API
Xây dựng API với Django rất phổ biến. Phổ biến đến mức tôi có thể nói rằng hầu hết các dự án Django đều bắt đầu hoặc được chuyển đổi thành API còn lại. Điều đó đang được nói rằng điều này phụ thuộc vào dự án bạn sẽ thực hiện
Django Rest Framework cho đến nay là dự án được sử dụng nhiều nhất để xây dựng API. Có toàn bộ hệ sinh thái các gói tích hợp với DRF cho các chức năng khác nhau
Bước này chắc chắn là một quá trình học tập đầy thử thách và tôi khuyên bạn nên thực hiện chậm nếu bạn đang gặp khó khăn. Hiểu cốt lõi của Django quan trọng hơn nhiều trước khi đi sâu vào DRF
Có thể nói rằng khả năng xây dựng API là một tài sản lớn trong danh sách các kỹ năng của bạn
Xếp hàng tác vụ
Đây chắc chắn là kỹ năng phụ thuộc vào dự án nhiều nhất. Một số dự án không có nhu cầu về các tác vụ không đồng bộ. Đó cũng là một kỹ năng rất khó để thành thạo. Rất nhiều nhà phát triển đã chia sẻ kiến thức của họ về các tác vụ không đồng bộ vì nó liên tục đưa ra một loạt thách thức và khó khăn mới để giải quyết
Tôi sẽ coi kỹ năng này là cả một lĩnh vực chuyên sâu
Phần kết luận
Những gì bạn sẽ tìm thấy trong các gạch đầu dòng này là chúng không phải là duy nhất đối với Django. Những kỹ năng này áp dụng để trở thành bất kỳ loại nhà phát triển nào. Sự khác biệt là vì Django là một framework, nên bạn phải hiểu các khái niệm này và có thể áp dụng chúng theo cách mà Django đã thiết kế để áp dụng chúng.
Các khái niệm như khung thông báo của Django, tín hiệu, trình quản lý mô hình và tùy chỉnh quản trị viên Django không phải là ưu tiên cần hiểu. Đây là những công cụ nhỏ hơn giúp bạn hiểu sâu hơn về Django, nhưng chúng không cần thiết
Nếu bạn dự định nhận công việc với tư cách là nhà phát triển Django vào năm 2021, hãy đảm bảo rằng bạn hiểu các khái niệm được đề cập trong bài đăng này. Nếu bạn muốn nổi bật so với những người khác trong thị trường việc làm, hãy cải thiện kỹ năng của bạn trong các lĩnh vực khác như phát triển giao diện người dùng và xây dựng API
Điều quan trọng là phải liên tục học hỏi và cập nhật những gì đang xảy ra trong thế giới Django. Đọc các bài đăng trên blog và bản tin, nghe podcast và chú ý đến những gì người khác đang làm để bạn nhận thức được các xu hướng và mô hình trong ngành