.png?w=420)
Thiết kế hệ thống quy mô lớn Phần 1
Jayce
Tìm hiểu các thành phần chung của dịch vụ quy mô toàn cầu thông qua các bài báo, sách và bài báo nổi tiếng.
초급
software-design, DBMS/RDBMS
Tìm hiểu sâu về hành vi của Git, tiêu chuẩn thực tế cho các công cụ kiểm soát phiên bản và tạo công cụ của riêng bạn!
63 học viên
Độ khó Cơ bản
Thời gian Không giới hạn

Hoạt động nội bộ của Git
lập trình hệ thống
Bạn có thể giải thích điều gì xảy ra bên trong Git khi bạn gõ lệnh git checkout và git commit " không? Bài giảng này sẽ khám phá các thuật toán nội bộ và hoạt động của hệ thống tệp đằng sau các hoạt động cốt lõi của Git, đồng thời hướng dẫn bạn cách tạo "Tig", một triển khai tương tự Git, bằng ngôn ngữ mà bạn quen thuộc.
H. Khóa học được giảng dạy bằng cờ vây. Tôi có cần biết cờ vây không?
A. Bài giảng bao gồm các cấu trúc điều khiển và vòng lặp cơ bản, phép gán, kiểu dữ liệu, v.v., tất cả đều tương đương với các ngôn ngữ khác. Go có cú pháp rất đơn giản. Các gói lập trình hệ thống của nó cũng rất trực quan. Do đó, bạn sẽ không gặp khó khăn khi theo dõi các bài giảng bằng ngôn ngữ của mình.
H. Tôi có cần biết lập trình hệ thống không?
A. Khóa học này dạy lập trình hệ thống cơ bản. Nội dung lập trình hệ thống được sử dụng trong các bài tập lý thuyết không phức tạp. Đó là lập trình hệ thống cơ bản, bao gồm tạo, ghi và đọc tệp. Tuy nhiên, bạn sẽ cần tìm hiểu cách thực hiện việc này bằng ngôn ngữ thực hành của riêng mình.
H. Có hướng dẫn sử dụng lệnh Git không?
A. Mặc dù các lệnh Git được giải thích trong khóa học, nhưng chúng không chi tiết bằng các lệnh dành cho người mới bắt đầu. Khóa học này yêu cầu một số kinh nghiệm trước đó với Git.
Khóa học này dành cho ai?
Bất cứ ai tò mò về hoạt động bên trong của Git
Bất kỳ ai muốn trở thành nhà phát triển hấp dẫn thông qua Deep Dive
Bất cứ ai muốn nghiên cứu chuyên sâu về nguồn mở đẳng cấp thế giới
Cần biết trước khi bắt đầu?
Một ngôn ngữ lập trình mà bạn tự tin
406
Học viên
17
Đánh giá
4
Trả lời
4.8
Xếp hạng
2
Các khóa học
Xin chào. Tôi là Jayce. Hiện tại tôi đang làm việc với tư cách là kỹ sư nền tảng (Platform Engineer) tại một startup kỳ lân.
Tôi đã từng khởi nghiệp, phát triển các dịch vụ quy mô lớn và xây dựng nền tảng cho các nhà phát triển. Trong một thời gian ngắn, tôi đã đảm nhận cả vai trò của một nhà phát triển dịch vụ lẫn một kỹ sư nền tảng (platform engineer). Qua quá trình đó, tôi đã tự đúc kết được cho mình câu trả lời về việc "Một kỹ sư phần mềm giỏi có những đặc điểm gì và làm thế nào để trở thành một người như vậy".
Nói một cách ngắn gọn, tôi cảm thấy những người biết đào sâu (Deep Dive) là những kỹ sư rất có sức hút khi làm việc cùng. Những người chỉ đơn thuần xử lý công việc được giao như một cỗ máy thường mất khá nhiều thời gian để đưa ra được lựa chọn tối ưu cho một tình huống nhất định. Ngược lại, những người luôn đào sâu tìm hiểu lý do kỹ thuật cốt lõi đằng sau mỗi quyết định sẽ nhanh chóng trở thành người có khả năng đưa ra những lập luận đầy thuyết phục về mặt kỹ thuật trong các quyết định khác.
Khóa học tôi tạo ra không nhằm mục tiêu giúp bạn học những công nghệ mới một cách hời hợt. Tôi muốn hướng dẫn các lập trình viên trẻ cách để trở thành một người đồng nghiệp tuyệt vời, một nhà phát triển đầy sức hút và một kỹ sư vững vàng về chuyên môn. Tôi sẽ nỗ lực hết mình để tạo ra những bài giảng phù hợp cho những ai muốn nghiên cứu sâu hơn để trở thành một kỹ sư tài năng và cuốn hút hơn nữa. 🙂
Tất cả
36 bài giảng ∙ (6giờ 46phút)
Tài liệu khóa học:
8. Đối tượng
01:48
9. Objects: Blob
06:54
10. HashObject: Spec
12:51
12. CatFile: Spec
08:28
14. Đối tượng: Cây
05:25
17. WriteTree: Spec
19:53
19. LSTree: Đặc tả
17:06
22. CommitTree: Spec
13:07
Tất cả
1 đánh giá
4.0
1 đánh giá
Đánh giá 1
∙
Đánh giá trung bình 4.0
Đã chỉnh sửa
4
Tôi đã nghe đến khoảng bài 9~10. Phần cuối của bài 9 bị cắt. Trong lúc giảng, câu nói chưa kết thúc thì video dừng lại. Bài 10 tôi thấy bị cắt phần đầu, nhưng lại bắt đầu từ phần sau của nội dung bài 9. Một phần bị chỉnh sửa nên không có đoạn nào trùng với phần cuối của bài 9, khiến việc bắt đầu ngay từ cuối bài 9 trở nên khó khăn. Khi giải thích code, tác giả sử dụng cú pháp đặc trưng của Go hoặc framework kiểm thử của Go nhưng không có giải thích về cú pháp hay hàm framework đó. Trong phần giới thiệu và giải thích ban đầu của khóa học, tác giả nói rằng người dùng các ngôn ngữ khác cũng có thể dễ dàng học, nhưng tôi thấy không phải vậy. (Tôi tìm kiếm thì thấy Python sử dụng cú pháp tương tự) Trong bài 6, không thấy thực hiện chạy thực tế, nên tôi đã nghĩ không biết khóa học kết thúc theo kiểu này sao, nhưng xem bài 9 và 10 thì có lẽ bài 6 cũng bị cắt mất phần thực hiện chạy thử nghiệm thực tế. ---------------------------------------------------------- Tôi đã sửa từ 1 điểm trước đây. Phản hồi và chỉnh sửa nhanh chóng rất tốt. Nếu nhận xét sau khi hoàn thành khóa học, tôi thấy tiếc vì bài giảng đi theo thứ tự viết test code cho từng chức năng, sau đó mới triển khai chức năng. Thời gian video viết test code dài hơn thời gian triển khai thực tế, mà trọng tâm của khóa học này, như tên gọi, là tự triển khai các chức năng bên trong của Git, nên việc hiển thị test code đã viết sẵn trước hoặc sau bài giảng triển khai chức năng (chỉ ra rằng chức năng này cần các test case như thế này) sẽ giúp tập trung hơn vào chủ đề của khóa học. Vì phần triển khai lại khá ngắn, nên cảm giác như tôi học cách viết test case nhiều hơn. Nếu bạn mới bắt đầu học Git hoặc chỉ biết một chút, tôi khuyên bạn nên học thêm một chút rồi mới nghe bài giảng này. Mặc dù bài giảng dạy từ những kiến thức cơ bản về hoạt động bên trong, nhưng có một lượng kiến thức nhất định sẽ giúp hiểu bài dễ dàng hơn. Cảm ơn vì đã vất vả.
Xin chào. Tôi rất tiếc khi biết bạn cảm thấy không tiện. Xin lỗi vì phải nói những lời biện hộ. 1. Ngữ pháp của Go đã được giải thích đơn giản ở phần đầu bài học, nhưng đúng như bạn nói, tôi chưa giải thích về framework. Lý do là phương pháp kiểm thử này thực ra không phải là một phương pháp đặc biệt trong Go. Ngược lại, thay vì sử dụng phương pháp kiểm thử đặc biệt của Go, tôi đã viết bằng cách sử dụng framework BDD phổ biến. Dù vậy, tôi nghĩ rằng cách tôi viết code có thể vẫn chưa quen thuộc với bạn. 2. Tôi thực sự xin lỗi về phần bị cắt mà bạn đề cập. Tôi đang tự hỏi không biết điều này xảy ra như thế nào. Dường như có chút khác biệt so với lúc tôi tải lên trước đây. Tôi sẽ chỉnh sửa và liên hệ với nền tảng.
승녕님, tôi đã kiểm tra rồi. Phần cuối của bài giảng 6, không hiểu sao phần triển khai đã bị mất. Tôi có dấu vết đã tải lên nhưng nó lại biến mất trong bài giảng, hơi khó hiểu. Hiện tại tôi đã tải lên lại rồi. Bài giảng 9 và 10 (hiện tại là 10, 11) đúng là kết thúc đột ngột như bạn nói, nhưng phần đầu của bài giảng 10 và phần cuối của bài giảng 9 đúng là các bài giảng nối tiếp nhau. Đây là phần tôi đã chia ra để viết phần test trước, rồi mới viết phần triển khai cụ thể. Dù sao đi nữa, tôi xin lỗi vì sự bất tiện do sự bất cẩn của mình.
2.057.301 ₫
Hãy khám phá các khóa học khác của giảng viên!
Khám phá các khóa học khác trong cùng lĩnh vực!