Tôi thực sự muốn giới thiệu lý thuyết này vào dự án của mình và biến nó thành của riêng tôi.
5.0
박주원
100% đã tham gia
Tôi là sinh viên kỹ thuật máy tính. Thật tốt khi lần đầu tiên được tìm hiểu khuôn khổ cơ bản của mã sạch. Dựa trên điều này, nếu bạn áp dụng nó từng chút một, thực hành và nghiên cứu dần dần, bạn sẽ có thể trở thành một nhà phát triển giỏi hơn!
Thật khó để tham khảo mục lục khi xem lại, vì vậy sẽ tốt hơn nếu bạn làm cho mục lục dễ tham khảo lại chi tiết hơn!
5.0
Boram Kim
83% đã tham gia
Tôi hiện đang làm kỹ sư front-end :)
Khi mới vào công ty, tôi chưa có người quản lý và có nhiều điều tôi rất khó đặt câu hỏi cũng như khó nhận được lời khuyên. Tuy nhiên, sau khi tham gia khóa học, tôi đã có thể viết được những đoạn code đẹp mắt và hiểu rõ lý do tại sao cần phải làm như vậy. Như đã nêu trong phần giới thiệu, đây không phải là một bài giảng không thể hiểu được ngay cả khi bạn không biết ngôn ngữ Java và các nội dung chính trong cuốn sách Clean Code được giải thích một cách dễ hiểu, giúp bạn dễ đọc và dễ hiểu. hiểu.
Tôi thực sự muốn giới thiệu nó cho bất kỳ ai muốn viết mã đẹp trước khi gia nhập công ty!
Bạn sẽ nhận được điều này sau khi học.
Mẹo Refactoring
Mẹo viết Clean Code cần thiết cho việc cộng tác
Ngoài ra, những mẹo liên quan đến phát triển mà các bạn đang chuẩn bị xin việc, hoặc là nhà phát triển dự bị/mới vào nghề nhất định phải biết.
📝 Giới thiệu bài giảng
Chỉ cần nhìn vào một trang GitHub, người ta có thể quyết định xem có muốn làm việc cùng bạn hay không.
Bạn có nghĩ đây là một cách diễn đạt quá mức không? Không hề. Đó là bởi vì chắc chắn chỉ với một trang Github, người ta có thể phân biệt được phong cách viết mã của người viết là tốt hay xấu. Đặc biệt, mã được viết bởi một người hoàn toàn không biết thế nào là mã sạch và tốt cho việc cộng tác sẽ lộ rõ ngay lập tức.
Ấn tượng đầu tiên luôn là ấn tượng mạnh mẽ nhất. Vì sự tốt xấu có thể được nắm bắt ngay lập tức chỉ qua một trang Github, nên bạn nhất định phải học cách viết mã sạch (clean code) trước.
Lý do cần phương pháp viết mã sạch (clean code)
“Bất kỳ kẻ ngốc nào cũng có thể viết mã mà máy tính có thể hiểu được. Những lập trình viên giỏi sẽ viết mã mà con người có thể hiểu được.”
Đây là câu nói của Martin Fowler, tác giả cuốn sách [Refactoring]. Nó có nghĩa là một mã nguồn tốt phải là mã nguồn mà người khác có thể dễ dàng xem và thấu hiểu.
Các bạn là những người đang chuẩn bị xin việc, hoặc là lập trình viên dự bị/mới vào nghề, có lẽ hầu như chưa có kinh nghiệm bảo trì mã nguồn do người khác viết. Bởi vì hầu hết các bạn mới chỉ trải nghiệm các dự án nhóm được thực hiện để chuẩn bị cho bài kiểm tra coding, các cuộc thi hoặc xây dựng portfolio xin việc. Những dự án như vậy thường có mục đích chính là hiện thực hóa các tính năng của dịch vụ, nên chỉ cần chương trình hoạt động được là xong.
“Tuy nhiên, thực tế công việc thì khác.”
Trong thực tế, việc tìm hiểu và chỉnh sửa mã nguồn do người khác viết là điều xảy ra thường xuyên. Cũng có rất nhiều trường hợp bạn phải giao tiếp dựa trên mã nguồn của đồng nghiệp. Ngay cả mã nguồn do chính mình viết ra sau vài tháng còn khó nhận ra, liệu việc vừa tìm hiểu mã nguồn của người khác vừa hợp tác có dễ dàng không? Chắc chắn là không.
Vốn dĩ đã khó khăn, nếu mã nguồn còn lộn xộn thì sao?Các đồng nghiệp phát triển sẽ cảm thấy vô cùng bối rối. Tôi nghĩ rằng cách viết mã sạch (clean code) cũng quan trọng như khả năng giải quyết vấn đề và kiến thức cơ bản về khoa học máy tính.
✏️ Những gì bạn sẽ học được trong khóa học này
Bạn sẽ được học cách viết Clean Code (mã sạch) tốt cho việc cộng tác và cả những Anti-pattern (mẫu phản tác dụng) cần tránh khi viết mã.
Tôi đã chuẩn bị bài giảng này để bạn có thể theo dõi một cách dễ dàng mà không gặp áp lực học tập, vì vậy hãy thoải mái đọc tham khảo bất cứ khi nào bạn nhớ đến nhé.
👨💻 Giới thiệu giảng viên
Xin chào. Tôi hiện là một nhà phát triển trẻ đang làm việc tại một tập đoàn lớn. Tôi luôn quan tâm và trăn trở về các chủ đề như hướng đối tượng, kỹ thuật phần mềm, mã sạch (clean code) và tái cấu trúc mã (refactoring). Tôi muốn chia sẻ những trăn trở từ trước đến nay cùng những kiến thức kinh nghiệm có được khi làm việc thực tế với các bạn là nhà phát triển tương lai hoặc mới vào nghề, những người đang đi trên con đường mà tôi đã đi qua.
📖 Đặc điểm của bài giảng
Khóa học chứa đựng tất cả các phương pháp viết Clean Code được chọn lọc kỹ lưỡng giúp bạn trở thành một nhà phát triển mà ai cũng muốn làm việc cùng.
Khóa học này là khóa học dưới dạng bảng viết cung cấp tài liệu đọc. Bạn có thể đọc tài liệu bài giảng ngay trên màn hình khóa học của Inflearn. (Ngoài văn bản bài giảng, không có video riêng biệt nào được cung cấp. Vui lòng kiểm tra kỹ điều này trước khi đăng ký khóa học.)
🙋🏻♂️ Câu hỏi thường gặp Q&A
“Có ngôn ngữ lập trình nào tôi cần biết trước khi tham gia khóa học không?” • Mặc dù có một số phần trong bài giảng sử dụng ngôn ngữ Java làm ví dụ, nhưng bạn có thể tham gia khóa học này bất kể bạn đang sử dụng loại ngôn ngữ nào. Tất nhiên, các ngôn ngữ hướng đối tượng như Java, Python, Go, Kotlin sẽ càng tốt.
“Tôi hoàn toàn không biết về [Mô hình hướng đối tượng] hay [Mẫu thiết kế (Design Pattern)], liệu tôi có thể tham gia khóa học này không?” • Vâng, hoàn toàn có thể. Khóa học này không đề cập đến những nội dung quá khó. Mặc dù khóa học được xây dựng với giả định rằng học viên đã biết một chút về lý thuyết hướng đối tượng hoặc các mẫu thiết kế, nhưng ngay cả khi bạn không biết, bạn vẫn có thể theo học mà không gặp trở ngại nào.
“Tôi đã đọc [Clean Code] và [Refactoring] rồi, liệu có cần thiết phải nghe bài giảng này không?” • Đối tượng học viên mà tôi đề xuất nhất là những người đang có kế hoạch đọc [Clean Code] và [Refactoring]. Bởi vì nếu bạn nghe bài giảng này trước khi đọc [Clean Code] và [Refactoring], nó sẽ giúp ích rất nhiều cho việc thấu hiểu nội dung của các cuốn sách trên. Ngược lại, vì bài giảng này bao gồm nhiều nội dung đã được đề cập trong các cuốn sách đó, nên những người đã đọc rồi có thể sẽ thu nhận được ít nội dung mới hơn. Tuy nhiên, bài giảng cũng bao gồm nhiều mẹo nhỏ và đa dạng khác không có trong các cuốn sách trên, nên tôi luôn chào đón những ai muốn tham gia khóa học.
“Khóa học này có đặc điểm gì riêng biệt không?” Có một thuật ngữ gọi là 'Lời nguyền kiến thức (The curse of knowledge)'. Nó nói về vấn đề phát sinh từ ảo tưởng rằng khi truyền đạt thông tin cho người khác, họ sẽ có đủ kiến thức nền tảng để hiểu hết những gì mình đang nói. Với tư cách là một nhà phát triển cấp thấp (junior), người thấu hiểu tâm thế của các bạn đang chuẩn bị xin việc, các nhà phát triển dự bị và mới vào nghề hơn ai hết, tôi đã đưa vào khóa học cả những nội dung mà mọi người có thể nghĩ rằng "Liệu có cần thiết phải đưa cả những thứ này vào bài giảng không?".
“Sau khi nghe bài giảng này, tôi có thể viết code tốt ngay lập tức không?” • Tôi tin rằng chắc chắn sẽ có sự khác biệt rõ rệt giữa trước và sau khi nghe bài giảng này. Tuy nhiên, để thực sự tiếp thu được lý thuyết, việc thực hành song song là rất quan trọng. Tôi thực sự khuyên bạn nên thử tái cấu trúc (refactoring) những đoạn code mình đã viết dựa trên các mẹo khác nhau được hướng dẫn trong bài giảng này.
📣 Thông tin bổ sung • Các câu hỏi liên quan đến bài giảng sẽ được phản hồi nhanh nhất có thể vào mỗi tối ngày trong tuần. • Bài giảng này ở dạng bảng viết (tài liệu đọc văn bản), không cung cấp video riêng biệt. Rất khó để hoàn tiền sau khi đã quá thời hạn quy định, vì vậy vui lòng kiểm tra kỹ điều này trước khi đăng ký khóa học.
Khuyến nghị cho những người này
Khóa học này dành cho ai?
Người chuẩn bị xin việc lập trình viên
Nhà phát triển dự bị/mới vào nghề
Những người cảm thấy lo sợ khi được review code
Dành cho những ai thắc mắc về cách viết mã nguồn tốt để cộng tác.
Những nhà phát triển chưa đọc cuốn [Clean Code] và [Refactoring]
Các lập trình viên sắp đi làm hoặc mới vào nghề đã đọc qua [Clean Code], [Refactoring] nhưng vẫn tò mò về những mẹo đa dạng và chi tiết hơn nữa.
Cần biết trước khi bắt đầu?
Người đã từng học các ngôn ngữ lập trình hướng đối tượng như Java, Python, Go, Kotlin, v.v.
Có một chút kinh nghiệm học tập về hướng đối tượng và mẫu thiết kế (design pattern)
Tôi là Clean Coder đang làm việc với tư cách là nhà phát triển backend tại Kakao.
Tôi luôn dành nhiều sự quan tâm và trăn trở về các chủ đề như lập trình hướng đối tượng, kỹ thuật phần mềm, mã sạch (clean code) và tái cấu trúc mã (refactoring). Tôi muốn chia sẻ những trăn trở này cùng những kiến thức kinh nghiệm có được từ thực tế phát triển dự án với các bạn sinh viên đang tìm việc, các lập trình viên tương lai hoặc mới vào nghề - những người đang đi trên con đường mà tôi đã từng đi.
Hy vọng rằng những kiến thức của tôi sẽ giúp ích được phần nào cho các bạn. :D
Tôi hiện đang làm kỹ sư front-end :)
Khi mới vào công ty, tôi chưa có người quản lý và có nhiều điều tôi rất khó đặt câu hỏi cũng như khó nhận được lời khuyên. Tuy nhiên, sau khi tham gia khóa học, tôi đã có thể viết được những đoạn code đẹp mắt và hiểu rõ lý do tại sao cần phải làm như vậy. Như đã nêu trong phần giới thiệu, đây không phải là một bài giảng không thể hiểu được ngay cả khi bạn không biết ngôn ngữ Java và các nội dung chính trong cuốn sách Clean Code được giải thích một cách dễ hiểu, giúp bạn dễ đọc và dễ hiểu. hiểu.
Tôi thực sự muốn giới thiệu nó cho bất kỳ ai muốn viết mã đẹp trước khi gia nhập công ty!
Cảm ơn bạn rất nhiều vì đánh giá tuyệt vời, Hyeonho.
Tôi rất vinh dự được giúp đỡ bạn.
Tôi nghĩ đánh giá của Hyunho rất hữu ích.
Tôi chúc bạn có một kỳ nghỉ vui vẻ và có một ngày tốt lành vào ngày mai :)
Tôi là sinh viên kỹ thuật máy tính. Thật tốt khi lần đầu tiên được tìm hiểu khuôn khổ cơ bản của mã sạch. Dựa trên điều này, nếu bạn áp dụng nó từng chút một, thực hành và nghiên cứu dần dần, bạn sẽ có thể trở thành một nhà phát triển giỏi hơn!
Thật khó để tham khảo mục lục khi xem lại, vì vậy sẽ tốt hơn nếu bạn làm cho mục lục dễ tham khảo lại chi tiết hơn!
cảm ơn bạn đã xem xét
Tôi rất vui vì nó đã giúp :)
Hãy suy nghĩ về cách thay đổi mục lục.
Chúng tôi sẽ cố gắng hết sức để thay đổi nó trong tháng 10.
Chúc bạn có một kỳ nghỉ lễ Chuseok vui vẻ ;)
Với tư cách là một nhà phát triển cấp dưới, tôi đã tự hỏi mã sạch là gì và việc xem bài giảng đã giúp tôi có được một chút khái quát. Và tôi nghĩ thật tốt khi tôi tham gia lớp học vì nó hoàn toàn trái ngược với những gì tôi nghĩ. Cảm ơn bạn vì bài giảng tuyệt vời :)
Minjeong, cảm ơn bạn rất nhiều vì những lời tốt đẹp của bạn.
(Bạn là người đã báo lỗi đánh máy trước đó phải không?)
Tôi nghĩ bạn đã là một nhà phát triển xuất sắc nên tôi rất vinh dự được giúp đỡ bạn.
Với tư cách là một nhà phát triển cấp dưới, tôi ủng hộ bạn :)
Xin hãy cẩn thận với Corona, chúc các bạn có một kỳ nghỉ lễ vui vẻ và tôi hy vọng các bạn có một ngày tốt lành và bổ ích mỗi ngày.
Cảm ơn bạn rất nhiều vì đánh giá tuyệt vời
Tôi ủng hộ bạn, Gungkwon :)
Viết mã có ý thức dựa trên nội dung bài giảng.
Hiện tại nó có thể chậm và bạn có thể cảm thấy lo lắng, nhưng
Nếu bạn tiếp tục áp dụng nó, bạn sẽ có được một đoạn mã rõ ràng và dễ đọc.
Nếu bạn chưa quen với nó, tốt hơn hết đừng cố viết nó quá hoàn hảo ngay từ đầu mà hãy lặp lại việc viết và sửa đổi mã từng bước (Dù sao thì cũng không có mã nào hoàn hảo. Lần sau, bạn sẽ thắc mắc. tại sao tôi lại viết nó theo cách này?)
Nếu bạn muốn sửa đổi mã nguồn của một dự án hiện có,
Đầu tiên, hãy thử thay đổi tên biến thành tên nào đó có ý nghĩa (điều này đặc biệt được khuyến khích khi mã quá lộn xộn đến mức bạn không biết bắt đầu từ đâu và thay đổi nó như thế nào).
Nếu bạn thay đổi tên biến, hãy xóa các giá trị gán vô nghĩa hoặc các biến tạm thời (vô dụng).
Nếu bạn thực hiện từng bước chỉnh sửa nhỏ này, điều này có vẻ vô nghĩa vào lúc này, bạn sẽ ngạc nhiên khi thấy các khu vực bổ sung cần được sửa đổi từng bước một.
Mặc dù đã thực hiện sửa đổi từng bước, mã dự án
Nếu bạn không hài lòng với những gì được giải thích trong bài giảng và không biết phải làm gì, làm như thế nào thì có thể là do hạn chế trong thiết kế.
Trong trường hợp này, có những giới hạn đối với việc sửa đổi cấp độ mã, do đó cần có những sửa đổi quy mô lớn hơn ở cấp độ thành phần.
Đây là một mẹo:
Đừng chỉ bắt đầu
(Mã nguồn càng phức tạp thì càng phức tạp) Chia toàn bộ mã nguồn thành nhiều bước (đừng lo lắng về chi tiết) và sắp xếp chúng trước khi bắt đầu. Bạn cũng có thể thử vẽ một bức tranh.
Cảm ơn bạn đã đánh giá tốt :) :)