Khuyến khích chọn ngôn ngữ lập trình phù hợp cho học sinh

Ngay từ năm 2006, Sách giáo viên Tin học lớp 11 đã ghi rõ: ủng hộ phương án tùy chọn ngôn ngữ lập trình cụ thể, cho phép địa phương, các trường tùy thuộc điều kiện cụ thể của mình lựa chọn ngôn ngữ lập trình bậc cao thích hợp, thuận tiện cho giáo viên, học sinh của địa phương, nhà trường.

Tùy điều kiện cụ thể lựa chọn ngôn ngữ lập trình thích hợp

Trước ý kiến cho rằng Việt Nam vẫn dạy cái thế giới không còn dạy, liên quan đến ngôn ngữ lập trình Pascal trong môn Tin học, PGS.TS Hồ Sĩ Đàm – chủ biên chương trình mới môn Tin học – cho biết: Công nghệ thông tin luôn thay đổi nhanh chóng (nhất là về phần mềm), nên trong SGK có thể có nội dung nào đó có tính lạc hậu là khó tránh khỏi. Do vậy cần phải cập nhật thường xuyên mới đảm bảo tính thời sự.

Với chương trình hiện hành môn Tin học lớp 11, trong sách giáo viên đã nêu rõ: mục tiêu chính không phải dạy học sinh một ngôn ngữ lập trình cụ thể. Tuy nhiên, khi trình bày các khái niệm lập trình và ngôn ngữ lập trình thì cách tốt nhất là thông qua một ngôn ngữ lập trình cụ thể để minh họa, giải thích. Hơn nữa, việc rèn luyện các kĩ năng lập trình và giải bài toán cụ thể trên máy tính đòi hỏi phải viết được chương trình bằng ngôn ngữ lập trình bậc cao cụ thể.

Việc lựa chọn Pascal vào năm 2006 có tính phù hợp, lý do: Trong phạm vi văn hóa tin học phổ thông, lập trình để giải bài toàn trên máy tính được hiểu theo nghĩa chuyển đổi thuật toán đã có sang chương trình viết trên ngôn ngữ lập trình bậc cao. Kĩ thuật lập trình rất phong phú, đa dạng, trong đó lập trình có cấu trúc là kiến thức cần chuyển tải cho học sinh cấp phổ thông. Pascal là ngôn ngữ thích hợp cho cả 2 yêu cầu đó.

Ngoài ra, có một thực tế là phần lớn giáo viên tin học thời điểm đó được học và thực hành ngôn ngữ lập trình Pascal là chính, lựa chọn của sách giáo khoa phát huy lợi thế này của giáo viên.

Tùy điều kiện cụ thể lựa chọn ngôn ngữ lập trình thích hợp

“Khó có thể lựa chọn một ngôn ngữ lập trình cụ thể đáp ứng đầy đủ mọi tiêu chí. Mặt khác, để giải các bài toán đơn giản trên máy tính có thể sử dụng các ngôn ngữ lập trình bậc cao khác nhau. Không có ngôn ngữ nào có ưu thế vượt trội. Do vậy, chúng tôi rất ủng hộ phương án tùy chọn ngôn ngữ lập trình cụ thể, cho phép địa phương, các trường tùy thuộc điều kiện cụ thể của mình lựa chọn ngôn ngữ lập trình bậc cao thích hợp, thuận tiện cho giáo viên, học sinh của địa phương, nhà trường” – PGS.TS Hồ Sĩ Đàm dẫn nội dung trong sách giáo viên Tin học.

Từ ý kiến về môn Tin học nói trên, PGS.TS Hồ Sĩ Đàm cho rằng: để triển khai thành công chương trình mới, yếu tố then chốt có tính quyết định tiên quyết là phải có nhận thức đúng, hiểu đúng và đầy đủ, nhất quán về bản chất cốt lõi của Chương trình môn Tin học để bồi dưỡng, tập huấn cho giáo viên và CBQL giáo dục các cấp; tránh cách hiểu cảm tính cá nhân, bất cập và phương hại đến các định hướng trọng yếu các cách tiếp cận mới, các nội dung mới được quy định trong văn bản chương trình.

Trường chủ động điều chỉnh nội dung dạy học

Liên quan đến nội dung này, PGS Nguyễn Xuân Thành, Phó vụ trưởng Vụ Giáo dục Trung học (Bộ GD&ĐT) chia sẻ:

Năm 2011, Bộ GD&ĐT đã ban hành Công văn số 5842/BGDĐT-VP về hướng dẫn điều chỉnh nội dung dạy học giáo dục phổ thông. Theo công văn này, căn cứ kết quả các đợt rà soát, đánh giá định kỳ về chương trình, SGK của các môn học, hoạt động giáo dục phổ thông và đề xuất của các sở GD&ĐT, sau khi chỉnh sửa qua tiếp thu ý kiến góp ý của các tập thể, cá nhân, Bộ GD&ĐT ban hành tài liệu “Hướng dẫn thực hiện điều chỉnh nội dung dạy học” các môn học để dạy và học phù hợp với chuẩn kiến thức, kĩ năng, phù hợp với thời lượng dạy học và điều kiện thực tế các nhà trường.

Việc điều chỉnh nội dung dạy học theo hướng cắt giảm các nội dung quá khó, trùng lặp, chưa thật sự cần thiết với học sinh; các câu hỏi, bài tập đòi hỏi phải khai thác quá sâu kiến thức lí thuyết, để giáo viên, học sinh dành thời gian cho các nội dung khác, tạo thêm điều kiện cho giáo viên đổi mới phương pháp dạy học theo yêu cầu của chương trình giáo dục phổ thông. Theo đó, nội dung liên quan đến kĩ thuật chuyên sâu về ngôn ngữ Pascal đã được giảm tải

Trường chủ động điều chỉnh nội dung dạy học

Tiếp đó, năm 2017, Bộ GD&ĐT đã giao cho các tác giả phối hợp với Nhà xuất bản Giáo dục Việt Nam nâng cấp sách bộ sách giáo khoa hiện hành trước thực tế nhiều nội dung đã lạc hậu trong sách tin học cấp THCS. Nội dung lập trình Pascal đã được thay bằng ngôn ngữ lập trình Free Pascal hoặc lập trình kéo thả SCRATCH.

Cũng trong năm 2017, Bộ GD&ĐT đã ban hành văn bản số 4612/BGDĐT-GDTrH về việc hướng dẫn thực hiện chương trình giáo dục phổ thông hiện hành theo định hướng phát triển năng lực và phẩm chất học sinh từ năm học 2017-2018.

Trong văn bản này, Bộ GD&ĐT yêu cầu các sở GD&ĐT chỉ đạo các nhà trường tiếp tục rà soát nội dung dạy học trong sách giáo khoa hiện hành, tinh giản những nội dung dạy học vượt quá mức độ cần đạt về kiến thức, kỹ năng của chương trình giáo dục phổ thông hiện hành; điều chỉnh để tránh trùng lặp nội dung giữa các môn học, hoạt động giáo dục; bổ sung, cập nhật những thông tin mới phù hợp thay cho những thông tin cũ, lạc hậu; không dạy những nội dung, bài tập, câu hỏi trong sách giáo khoa vượt quá mức độ cần đạt về kiến thức, kỹ năng của chương trình giáo dục phổ thông hiện hành.

“Bộ GD&ĐT sẽ tiếp thu ý kiến của các chuyên gia, tiếp tục tăng cường chỉ đạo các địa phương thực hiện tốt công văn 4612 trong thời gian tới” – PGS Nguyễn Xuân Thành nhấn mạnh.

Chọn nghề gì thời đại 4.0? Ý kiến của các chuyên gia như thế nào?

Chọn nghề gì thời đại 4.0? Ý kiến của các chuyên gia như thế nào?

Thí sinh lớp 12 trên cả nước đã chính thức đăng kí dự thi THPT quốc gia và nguyện vọng xét tuyển vào các ngành học, trường đại học, cao đẳng (từ ngày 1/4). Những lo lắng về việc chọn trường, học ngành gì của các bạn trẻ và các bậc phụ huynh là điều khó tránh khỏi. Làm thế nào để lựa chọn cho mình một ngành, trường phù hợp với năng lực và sở thích là điều mà các bạn rất mong có được gợi ý từ các chuyên gia.

Trường nào, ngành gì, sao khó quá!

Tham dự Talk show “Hiểu mình, Biết nghề, Chọn trường chuẩn” được tổ chức mới đây tại Hà Nội, bạn Nguyễn Tuấn Anh, học Trường THPT Nguyễn Gia Thiều (Hà Nội), đã rất phân vân khi nghĩ về chọn ngành học đại học bởi gia đình đã định hướng cho em ôn tập theo khối tự nhiên để chuẩn bị thi vào các khối ngành kỹ thuật, điện tử như anh trai.

Cũng có suy nghĩ thêm là anh trước em sau sẽ dễ dàng giúp đỡ xin được việc làm sau này. Nhưng đó là bố mẹ muốn, còn em lại thích học về công nghệ thông tin hơn vì em rất mê máy tính. Mấy ngày này, em và bố mẹ đều rất phân vân, chưa đưa ra quyết định cuối cùng cho việc chọn ngành học để đăng ký xét tuyển.

Cùng chung tâm sự với Tuấn Anh, nhiều bạn học sinh lớp 12 ở các trường THPT đến dự Talk show “Hiểu mình, Biết nghề, Chọn trường chuẩn” cũng chung câu hỏi: Thích ngành học này, nhưng bố mẹ lại hướng theo ngành khác, có nên theo ý kiến bố mẹ hay theo sở thích của mình. Có bạn cho biết thay đổi suy nghĩ của mình để theo bố mẹ còn dễ, chứ lay chuyển suy nghĩ của các bậc phụ huynh là vô cùng khó vì phụ huynh khi đưa ra tính toán lại luôn đứng từ góc nhìn của cha mẹ và cho rằng, các con nhỏ tuổi, ít va chạm xã hội, hiểu biết về xu hướng ngành nghề có việc làm còn hạn chế.

Thế nên, tình trạng có bạn chọn trường, ngành theo bố mẹ rồi học được 1 – 2 năm lại bỏ theo học ngành khác không phải là hiếm.

Ông Bùi Văn Tuyến, phụ huynh em Bùi Văn Tuyên ở An Dương, Tây Hồ, bộc bạch: Cháu lớn nhà tôi cũng đã phải thay đổi ngành học sau 1 năm vào đại học. Lúc đầu cháu thích nghệ thuật, nhưng tôi lại hướng cho cháu theo học Luật, dù cháu học khá nhưng càng học càng thấy không phải sở thích của mình nên dẫn đến chán nản. Tâm sự với cháu nhiều lần, cuối cùng tôi ủng hộ cho cháu chuyển sang học nghệ thuật như mong ước.

Vẫn biết là các con rất dễ lựa chọn ngành nghề theo cảm tính, a dua theo số đông bạn bè đăng ký học cho vui, không quan tâm tới đặc thù nghề nghiệp cũng như cơ hội công việc sau khi tốt nghiệp. Tuy nhiên, cũng không phải tất cả đều như vậy, các bậc phụ huynh cần lắng nghe và chỉ nên định hướng, còn quyết định cuối cùng thì dành cho các cháu chứ đứng làm thay.

Trường nào, ngành gì, sao khó quá!

Lời khuyên của chuyên gia

Tại talk show “Hiểu mình, Biết nghề, Chọn trường chuẩn”, chuyên gia Hoàng Gia Thư – Tiến sĩ Tâm lý học ứng dụng Hoa Kỳ, Thạc sĩ Quản trị Kinh doanh Australia, Trưởng khoa Quản trị Kinh doanh và Du lịch Đại học Hà Nội, đưa ra lời khuyên: Thay vì chúng ta cố gắng thay đổi điểm yếu của mình thì chúng ta nên tập trung phát triển điểm mạnh của mình.

Nghiên cứu đã chứng minh, đầu tư vào điểm mạnh hiệu quả hơn nhiều so với cố gắng khắc phục điểm yếu. Các bạn trẻ hiểu được mình đang ở đâu, đang là ai trong quá trình toàn cầu hoá, trong cuộc cách mạng 4.0. Vậy thì bạn trẻ cần làm gì để có thể thích nghi trong môi trường thay đổi không ngừng này. Câu trả lời là phải thay đổi chính mình.

Ông Trần Trung Hiếu – CEO Top CV, đưa ra dự báo: Nghề IT có mức lương cao nhất (10,2 triệu đồng) trong top 10 ngành nghề hot nhất. Tiếp theo, là ngành kinh doanh bất động sản. Báo cáo dựa trên nghiên cứu từ gần 2 triệu ứng viên của Top CV. Hiện tại, ngành Công nghệ thông tin có nhu cầu tuyển dụng 100.000 kỹ sư mỗi năm. Thu nhập cho sinh viên mới ra trường làm trong lĩnh vực CNTT là 7 – 10 triệu đồng/tháng.

Nếu có 1 – 2 năm kinh nghiệm là 10 – 15 triệu đồng/tháng, trên 3 năm kinh nghiệm có mức lương trên 1.000$/tháng với những người có khả năng làm được việc. Dự báo trong khoảng 5 – 10 năm tới có nhiều ngành nghề mới xuất hiện, nhiều ngành nghề cũ sẽ thay đổi.

Ông Chu Tuấn Anh, Giám đốc Hệ thống Đào tạo Lập trình viên quốc tế Aptech, chỉ ra quy trình đào tạo một lập trình viên: Người lập trình là người đi “gãi ngứa” cho các doanh nghiệp và khách hàng, do vậy chúng ta không được phép chọn công nghệ mà chúng ta phải nắm toàn diện, lập trình toàn năng.

Học tại Aptech học viên sẽ được làm 4 dự án thực tế, trong đó có 2 dự án với chuyên gia Ấn Độ, sau khi ra trường học viên có thể sẵn sàng đi làm ngay với đầy đủ những kinh nghiệm. Ở Aptech, chúng tôi không chỉ đào tạo theo xu hướng hiện tại, cụ thể là công nghệ AI mà chúng tôi đào tạo làm sao để sinh viên có thể đáp ứng mọi nhu cầu về công nghệ thông tin của các doanh nghiệp. Còn về mức lương của sinh viên, trong khoá tốt nghiệp cách đây 4 tháng của chúng tôi, mức lương của các bạn khi vừa ra trường từ 14 – 18 triệu/tháng.

Lời khuyên của chuyên gia

Top 10 ngành nghề “hot” nhất hiện nay

  • IT (lập trình viên).
  • Kinh doanh bất động sản.
  • Y tế.
  • Marketing – truyền thông.
  • Thiết kế đồ họa.
  • Cơ khí.
  • Logistics.
  • Tự động hoá.
  • Công an – Quân đội.
  • Du lịch – Quản lý nhà hàng/khách sạn.

Chia sẻ phương pháp học online hiệu quả trong mùa dịch Covid-19

Học online thế nào là hiệu quả khi tình hình dịch bệnh Covid-19 đang diễn ra. Aptech Buôn Ma Thuột sẽ bật mí những phương pháp giúp bạn học online hiệu quả.

Lên thời gian biểu hợp lý

Để đảm bảo việc học online hiệu quả, học viên cần xây dựng thời gian biểu học tập hiệu quả. Việc lập kế hoạch cũng giúp bạn có thể quản lý, theo dõi các đầu mục công việc và thời gian học diễn ra trong tuần. Bên cạnh đó, bạn cũng có thể tự sắp xếp và dành ưu tiên cho công việc và học tập đồng thời phát triển một kế hoạch hợp lý để hoàn thành tốt mọi kế hoạch được đặt ra.

Lên thời gian biểu hợp lý

Chọn lọc thông tin khi học online

Sự bùng nổ của internet giúp người dùng tiếp cận với kho kiến thức khổng lồ. Chỉ cần một cú nhấp chuột cũng có thể cho ra hàng nghìn kết quả tìm kiếm. Điều này giúp bạn tìm kiếm thông tin một cách hiệu quả nhất. Tuy nhiên, nó cũng gây trở ngại trong việc tìm kiếm thông tin chính xác và hữu dụng nhất.

Chính vì thế, bạn cần chọn lọc thông tin kỹ càng và tham khảo nhiều nguồn khác nhau để chọn lựa được thông tin sát đáng nhất.

Truy cập website học trực tuyến mỗi ngày để cập nhật kiến thức online

Theo chia sẻ của những người có kinh nghiệm, bạn nên truy cập website mỗi ngày. Thực tế, việc thường xuyên vào các bài giảng online trên mạng không hề khó. Với sự phát triển của công nghệ ngày nay, bạn hoàn toàn có thể sử dụng điện thoại thông minh, máy tính bảng, để truy cập trang web học tại bất cứ nơi nào. Đây là lợi thế cực lớn đối với những bạn học viên khóa trực tuyến bởi những tiện ích mà công nghệ mang lại là vô hạn, vì thế bạn nên biết tận dụng để mang lại kết quả học cao nhất.

Bạn cũng nên chú ý đến tiến độ học tập mỗi ngày để đạt được hiệu quả như mong muốn. Với cách cố gắng truy cập vào website trực tuyến mỗi ngày, bạn sẽ duy trì đều đặn nhịp điệu và phong độ học tập ổn định để từng bước hoàn thành mục tiêu kiến thức đã đề ra.

Tích cực đóng góp ý kiến trên những diễn đàn học online

Khi tham gia học online, bạn sẽ có quyền truy cập vào diễn đàn học chung của tất cả những học viên đăng ký khóa học đó trên thế giới. Đây chính là cơ hội kết bạn, giao lưu với bạn bè ở những khu vực khác nhau. Hãy tận dụng điều này để giúp bạn củng cố lại kiến thức sau mỗi buổi học.

Đây là cách được khá nhiều người sử dụng hệ thống lại kiến thức và ghi nhớ nhanh chóng những phần lưu ý quan trọng.

Tích cực đóng góp ý kiến trên những diễn đàn học online

Hệ thống cổng học tập trực tuyến Onlinevarsity của Aptech

Tự hào luôn là đơn vị đi đầu trong phương pháp học tập thời đại 4.0, Aptech Buôn Ma Thuột mang đến cho học viên trải nghiệm học tập online hiện đại và tiên tiến nhất mà tập đoàn công nghệ Aptech thiết kế để phục vụ cho sinh viên Aptech toàn cầu. Các nền tảng về nội dung và làm việc nhóm, chia sẻ tài liệu sẽ giúp sinh viên tiếp cận đến những giáo trình công nghệ mới nhất ở bất cứ nơi đâu và trên bất kỳ thiết bị máy tính, máy tính bảng hay điện thoại thông minh.

  • Lợi ích của cổng học tập trực tuyến Onlinevarsity:
  • Truy cập miễn phí hàng trăm ngàn video bài giảng
  • Truy cập 24/7
  • Học tập mọi lúc, mọi nơi trên mọi thiết bị
  • Hướng dẫn sử dụng dễ dàng
  • Cấp chứng chỉ ngay trong hệ thống

Học online đã và đang trở thành xu hướng học tập hiệu quả được phổ biến hiện nay với sự phát triển của công nghệ thông tin và mạng internet. Học online giúp người đọc chủ động trong việc nắm bắt kiến thức cũng như linh động trong việc chọn lựa thời gian và địa điểm học. Đặc biệt là giải pháp cực kỳ hợp lý trong tình hình dịch bệnh đang căng thẳng trên toàn cầu.

Cấu trúc đề thi các môn thi THPT Quốc gia 2020

Bộ GD&ĐT vừa công bố dự thảo quy chế kỳ; cấu trúc đề thi THPT Quốc gia 2020 và xét công nhận tốt nghiệp năm 2020.

Bên cạnh đó việc thay đổi cấu trúc đề thi THPT Quốc gia 2020 cũng sẽ rất quan trọng trong thời điểm hiện tại của các thí sinh. Cấu trúc đề thi THPT Quốc gia 2020 không thay đổi nhiều so với năm ngoái. Tuy nhiên, các thí sinh cũng nên chú ý để ôn tập tốt trước kỳ thi quan trọng này.

Sau đây là cấu trúc đề từng môn thi THPT Quốc gia 2020 mới nhất:

Môn Văn

So với đề thi THPT Quốc gia năm ngoái thì theo BGD&ĐT đề thi Ngữ Văn sẽ không có sự thay đổi nào về câu trúc đề thi cũng như thời gian làm bài và hình thức thi. Cấu trúc này vẫn được duy trì giống với kỳ thi THPT Quốc gia từ năm 2017 cho đến nay. Cụ thể cấu trúc đề thi môn Văn năm 2020 với thời gian làm bài là 120 phút như sau:

I Phần đọc hiểu (3 điểm)

Phần này sẽ bao gồm 1 đoạn văn cùng với 4 câu hỏi nhỏ liên quan đến đoạn văn này. Các câu hỏi sẽ được sắp xếp theo thứ tự từ cấp độ nhận biết cho đến vận dụng.

Câu 1: Tái hiện kiến thức về giai đoạn văn học, tác giả, tác phẩm văn học Việt Nam

 Khái quát văn hoc Việt Nam từ đầu thế kỷ XX đến Cách mạng tháng Tám năm 1945

 Hai đứa trẻ Thạch Lam

 Chữ người tử tù Nguyễn Tuân

 Hạnh phúc của một tang gia (trích Số đỏ) Vũ Trọng Phụng

 Chí phèo (trích) Nam Cao

 Vĩnh biệt Cửu Trùng Đài (trích Vũ Như Tô) Nguyễn Huy Tưởng

 Vội vàng Xuân Diệu

 Đây thôn Vũ Dạ Hàn Mặc Tử

 Tràng Giang –Huy Cận

 Chiều tối Hồ Chủ Tịch

 Từ ấy Tố Hữu

 Một thời đại trong thi ca (trích) Hoài Thanh và Hoài Chân

 Khái quát văn học Việt Nam từ Cách mạng tháng Tám năm 1945 đén hết thế kỷ XX

 Tuyên ngôn độc lập và tác giả Hồ Chí Minh

 Nguyễn Đình Chiểu, ngôi sao sáng trong bầu trời văn nghệ dân tộc Phạm Văn Đồng

 Việt Bắc (trích) và tác giả Tố Hữu

 Đất nước (trích Mặt đường khát vọng) Nguyễn Khoa Điềm

 Sóng –Xuân Quỳnh

 Đàn ghi ta của Lorca Thanh Thảo

 Người lái đò trên Sông Đà (trích)Nguyễn Tuân

 Ai đã đặt tên cho dòng sông? (trích) Hoàng Phủ Ngọc Tường

 Vợ chồng A Phủ (trích) Tô Hoài

 Vợ nhặt – Kim Lân

 Rừng xà nu (trích) Nguyễn Trung Thành

 Những đứa con trong gia đình (trích) Nguyễn Thi

 Chiếc thuyền ngoài xa (trích) Nguyễn Minh Châu

 Hồn Trương Ba, da hàng thịt (trích) Lưu Quang Vũ

I Phần đọc hiểu (3 điểm)

Câu 2: Vận dụng kiến thức xã hội và đời sống để viết bài nghị luận xã hội ngắn (khoảng 600 từ)

 Nghị luận về một tư tưởng, đạo lý

 Nghị luận về một hiện tượng đời sống

Phần làm văn (7 điểm): Phần này sẽ bao gồm

 Viết một đoạn văn nghị luận xã hội (2 điểm)

 Viết bài văn nghị luận văn học (5 điểm)

II Làm Văn (7,0 điểm)

Vận dụng khả năng đọc hiểu và kiến thức văn học để viết bài nghị luận văn học

Câu 1: (2 điểm)

 Hai đứa trẻ Thạch Lam

 Chữ người tử tù Nguyễn Tuân

 Hạnh phúc của một tang gia (trích Số đỏ) Vũ Trọng Phụng

 Chí phèo (trích) Nam Cao

 Vĩnh biệt Cửu Trùng Đài (trích Vũ Như Tô) Nguyễn Huy Tưởng

 Vội vàng Xuân Diệu

 Đây thôn Vũ Dạ Hàn Mặc Tử

 Tràng Giang –Huy Cận

 Chiều tối Hồ Chí Minh

 Từ ấy Tố Hữu

 Một thời đại trong thi ca (trích) Hoài Thanh và Hoài Chân

 Tuyên ngôn độc lập và tác giả Hồ Chí Minh

 Nguyễn Đình Chiểu, ngôi sao sáng trong bầu trời văn nghệ dân tộc Phạm Văn Đồng

 Tây Tiến Quang Dũng

 Việt Bắc (trích) và tác giả Tố Hữu

 Đất nước (trích Mặt đường khát vọng) Nguyễn Khoa Điềm

 Sóng –Xuân Quỳnh

 Đàn ghi ta của Lor caThanh Thảo

 Người lái đò trên Sông Đà (trích)Nguyễn Tuân

 Ai đã đặt tên cho dòng sông? (trích) Hoàng Phủ Ngọc Tường

 Vợ chồng A Phủ (trích) Tô Hoài

 Vợ nhặt – Kim Lân

 Rừng xà nu (trích) Nguyễn Trung Thành

 Những đứa con trong gia đình (trích) Nguyễn Thi

 Chiếc thuyền ngoài xa (trích) Nguyễn Minh Châu

 Hồn Trương Ba, da hàng thịt (trích) Lưu Quang Vũ

II Làm Văn (7,0 điểm)

Câu 2. (5 điểm)

 Hai đứa trẻ Thạch Lam

 Chữ người tử tù Nguyễn Tuân

 Hạnh phúc của một tang gia (trích Số đỏ) Vũ Trọng Phụng

 Chí phèo (trích) Nam Cao

 Đời thừa (trích) Nam Cao

 Nam Cao

 Vĩnh biệt Cửu Trùng Đài (trích Vũ Như Tô) Nguyễn Huy Tưởng

 Vội vàng Xuân Diệu

 Xuân Diệu

 Đây thôn Vũ Dạ Hàn Mặc Tử

 Tràng Giang –Huy Cận

 Tương tư Nguyễn Bính

 Nhật ký trong tù Hồ Chí Minh

 Chiều tối Hồ Chí Minh

 Lai tân Hồ Chí Minh

 Từ ấy Tố Hữu

 Một thời đại trong thi ca (trích) Hoài Thanh và Hoài Chân

 Tuyên ngôn độc lập và tác giả Hồ Chí Minh

 Nguyễn Ái Quốc Hồ Chí Minh

 Nguyễn Đình Chiểu, ngôi sao sáng trong bầu trời văn nghệ dân tộc Phạm Văn Đồng

 Tây Tiến Quang Dũng

 Việt Bắc (trích) và tác giả Tố Hữu

 Tố Hữu

 Tiếng hát con tàuChế Lan Viên

 Đất nước (trích Mặt đường khát vọng) Nguyễn Khoa Điềm

 Sóng –Xuân Quỳnh

 Đàn ghi ta của Lorca  Thanh Thảo

 Người lái đò trên Sông Đà (trích)Nguyễn Tuân

 Nguyễn Tuân

 Ai đã đặt tên cho dòng sông? (trích) Hoàng Phủ Ngọc Tường

 Hồn Trương Ba, da hàng thịt (trích) Lưu Quang Vũ

 Vợ chồng A Phủ (trích) Tô Hoài

 Vợ nhặt – Kim Lân

 Những đứa con trong gia đình (trích) Nguyễn Thi

 Rừng xà nu (trích) Nguyễn Trung Thành

 Một người Hà Nội Nguyễn Khải

 Chiếc thuyền ngoài xa (trích) Nguyễn Minh Châu

Bài 7: Modifiers trong Java? Cách thức truy cập Access Modifiers

“Modifier” là một từ hoặc cụm từ hoặc mệnh đề mô tả, thay đổi hoặc sửa đổi nghĩa của một từ hoặc cụm từ khác theo một cách nào đó. Trong Java, modifier được hiểu là một công cụ sửa đổi truy cập ‘Access modifierS’, có nghĩa là nó được sử dụng để đặt mức truy cập cho các lớp, thuộc tính, phương thức và hàm tạo.

Như đã nói ở trên Access Modifiers trong Java được sử dụng để chỉ định các mức truy cập cho các lớp, các phương thức biến và hàm tạo. Nó giúp cập nhật giá trị của một biến . Chúng còn được gọi là công cụ điều chỉnh “khả năng nhìn thấy”. Nghe có vẻ khó hiểu đúng không? Trong các bài trước về Java/J2EE và SOA bạn đã khá quen thuộc với từ khóa “public” xuất hiện trong hầu hết các ví dụ:

public class <tên_class>

Thì từ khóa “public” nó là 1 kiểu sửa đổi truy câp ‘Access modifier’ trong Java. Trong bài này, tôi sẽ giúp bạn hiểu tầm quan trọng của Access Modifiers trong Java Từ đây trở đi, tôi sẽ gọi nó là công cụ sửa đổi truy cập cho dễ.

Công cụ sửa đổi truy cập Access Modifiers trong Java là gì?

Bạn có thể bắt gặp các từ khóa công khai Public , riêng tư Private và được bảo vệ trong khi thực hành bất kỳ chương trình Java nào, chúng được gọi là Công cụ sửa đổi truy cập. Như tên cho thấy, Bộ sửa đổi truy cập trong Java giúp hạn chế phạm vi của một lớp, hàm tạo, biến, phương thức hoặc thành viên dữ liệu.

Bộ sửa đổi truy cập có thể được chỉ định riêng cho một lớp, hàm tạo , trường và phương thức. Chúng cũng được gọi là các bộ xác định truy cập trong Java, nhưng tên chính xác là các bộ sửa đổi truy cập Java.

Vì vậy, chúng ta hãy đi sâu vào các loại Công cụ sửa đổi truy cập khác nhau trong Java.

Công cụ sửa đổi truy cập Access Modifiers trong Java là gì?

Các loại sửa đổi truy cập Access Modifiers trong Java

Bạn hãy nhớ 4 kiểu sửa đổi truy cập trong Java sau đây:

  • Default Access Modifier – Công cụ sửa đổi truy cập mặc định
  • Private Access Modifier – Công cụ sửa đổi truy cập riêng tư
  • Public Access Modifier – Công cụ sửa đổi truy cập công cộng
  • Protected Access Modifier – Bảo vệ truy cập sửa đổi

Hãy để chúng tôi tìm hiểu về từng người trong số họ một cách chi tiết.

Công cụ sửa đổi truy cập mặc định Default Access Modifier

Khi không có công cụ sửa đổi truy cập nào được chỉ định cho một lớp, phương thức hoặc thành viên dữ liệu cụ thể, nó được cho là có công cụ sửa đổi truy cập mặc định .

Các thành viên, lớp hoặc phương thức không được khai báo sử dụng bất kỳ công cụ sửa đổi nào, sẽ có công cụ sửa đổi mặc định chỉ có thể truy cập được trong một gói package tương tự. Điều đó có nghĩa là bạn không khai báo rõ ràng một công cụ sửa đổi truy cập cho một lớp, trường, phương thức, v.v.

package p1;//Class Course có Default access modifier class Course{ void display() { System.out.println(“Hello World!”); }}

Tiếp theo, chúng ta hãy chuyển sang loại tiếp theo, sửa đổi truy cập riêng tư.

Công cụ sửa đổi truy cập riêng tư Private Access Modifier

– Các phương thức hoặc thành viên dữ liệu được khai báo là riêng tư chỉ có thể truy cập được trong lớp mà chúng được khai báo.

– Các lớp hoặc giao diện cấp cao nhất không thể được khai báo là riêng tư vì thực tế là:

+ Dấu hiệu riêng tư “chỉ nhìn thấy được ở bên trong lớp kèm theo” .

+ Dấu hiệu bảo vệ “chỉ thấy rõ ràng ở bên trong lớp kèm theo và bất kỳ lớp con nào” .

– Nếu một lớp có được xây dựng riêng tư (nghĩa là thiết lập Private Access Modifier cho class đó) thì bạn không thể tạo đối tượng của lớp đó từ bên ngoài lớp.

– Các lớp không thể được đánh dấu bằng công cụ sửa đổi truy cập riêng tư.

– Việc biểu thị một lớp với công cụ sửa đổi truy cập riêng tư sẽ ngụ ý rằng không có lớp nào khác có thể nhận được nó. Điều này thường ngụ ý rằng bạn không thể sử dụng lớp bằng bất kỳ sự tưởng tượng nào. Theo cách này, công cụ sửa đổi truy cập riêng không đưa vào các lớp tài khoản.

Lưu ý : Lớp hoặc Giao diện không thể được khai báo là riêng tư.

Cú pháp:

public class Clock { private long time = 0;}

Hãy xem một ví dụ để có ý tưởng rõ ràng về công cụ sửa đổi truy cập riêng tư này.

package p; class A { private void display(){ System.out.println(“Aptech Buôn Ma ThuộtThuột”); } } class B { public static void main(String args[]){ A obj = new A(); //Thử truy cập một lớp được thiết lập Private Access Modifier từ một lớp khác obj.display(); }}

Đầu ra của chương trình này là:

error: display() has private access in Aobj.display();

Hy vọng các bạn rõ ràng với sửa đổi truy cập riêng tư. Tiếp theo, hãy chuyển sang loại tiếp theo, công cụ sửa đổi truy cập công cộng Public Access Modifier.

Công cụ sửa đổi truy cập riêng tư Private Access Modifier

Công cụ sửa đổi truy cập công cộng Public Access Modifier

  • Công cụ sửa đổi truy cập công cộng được chỉ định bằng cách sử dụng từ khóa công khai “public”.
  • Công cụ sửa đổi truy cập công cộng có phạm vi rộng nhất trong số tất cả các công cụ sửa đổi truy cập khác.
  • Các lớp , phương thức hoặc thành viên dữ liệu được khai báo là công khai có thể truy cập ở mọi nơi trong chương trình. Không có giới hạn về phạm vi của các thành viên dữ liệu công cộng.

Cú pháp:

package aptechbmt.co;public class PublicClassDemo {// Ở đây tôi không đề cập đến bất kỳ công cụ sửa đổi nào để nó hoạt động như một công cụ sửa đổi mặc định public int myMethod(int x){ return x; }}

Bây giờ, hãy xem một ví dụ để có ý tưởng rõ ràng về công cụ sửa đổi truy cập công cộng này.

Thí dụ: Tôi có 2 file .java với 2 nội dung bên dưới, sau khi javac tôi chạy file có nội dung thứ 2

package p1;public class A{ public void display() { System.out.println(“Học lập trình tại Aptech Buôn Ma Thuột!”); }}

package p2;import p1.*;class B{ public static void main(String args[]) { A obj = new A; obj.display(); }}

Đầu ra: Học lập trình tại Aptech Buôn Ma Thuột!

Bảo vệ truy cập sửa đổi Protected Access Modifier

  • Công cụ sửa đổi truy cập được bảo vệ được chỉ định bằng cách sử dụng từ khóa được bảo vệ “Protected”.
  • Các phương thức hoặc thành viên dữ liệu được khai báo là ‘được bảo vệ’ có thể truy cập được trong cùng một gói hoặc các lớp con trong một gói khác nhau.
  • Các thành viên được bảo vệ chỉ có thể được truy cập ở lớp con hoặc các lớp dẫn xuất.

Cú pháp:

package packageFourProtected; public class ProtectedClassFour { protected int myMethod(int a){ return a; }}

Chúng ta hãy xem một ví dụ.

spackage p1;//Class Apublic class A{ protected void display() { System.out.println(“Học lập trình Java tại Aptech Buôn Ma Thuột”); }}

File 2:

package p2;import p1.*; //import tất cả class trong package p1//Class B là subclass củacủa Aclass B extends A |{ public static void main(String args[]) { B obj = new B(); obj.display(); }}

Kết quả: Học lập trình Java tại Aptech Buôn Ma Thuột

Đây là mọi thứ bạn cần biết về các phương thức khác nhau của các công cụ sửa đổi truy cập trong Java. Hãy chuyển sang chủ đề tiếp theo.

Sửa đổi truy cập với phương thức ghi đè

Nếu trong trường hợp, bạn đang ghi đè bất kỳ phương thức nào, thì phương thức được ghi đè được khai báo trong lớp con không được hạn chế.

Hãy xem ví dụ dưới đây.

class A{ protected void msg() { System.out.println(“Hello java”); }}public class Simple extends A { void msg() { System.out.println(“Hello java”); } //C.T.Error public static void main(String args[]) { Simple obj=new Simple(); obj.msg(); }}

Công cụ sửa đổi mặc định hạn chế hơn bảo vệ. Đây là lý do tại sao có một lỗi thời gian biên dịch.

Kiểm soát truy cập và kế thừa

Nếu trong trường hợp, bạn tạo một lớp con của một số lớp, thì các phương thức trong lớp con đó có thể có các bộ sửa đổi truy cập ít truy cập được gán cho chúng hơn lớp supperclass.

Chẳng hạn, nếu một phương thức trong lớp cha là công khai thì nó cũng phải được công khai trong lớp con. Nếu một phương thức trong siêu lớp được bảo vệ, thì nó phải được bảo vệ hoặc công khai trong lớp con được chỉ định. Các phương thức được khai báo là riêng tư không được kế thừa.

Bài 2: Hướng dẫn cài đặt java và thiết lập đường dẫn cho Java

Bài 2: Hướng dẫn cài đặt java và thiết lập đường dẫn cho Java

Java là một trong những ngôn ngữ lập trình nổi bật nhất đã chinh phục thế giới Công nghệ thông tin. Để theo kịp với ngành công nghiệp đang phát triển… Để cài đặt Java, bạn truy cập vào địa chỉ https://www.oracle.com/technetwork/java/javase/downloads/jdk13-downloads-5672538.html

Tìm xuống chỉ dẫn cài đặt cho windows và tải xuống phiên bản tương thích với hệ điều hành của mình.

Các bước cài đặt khá đơn giản, bạn cứ để mặc định và bấm Next là Ok. Sau khi cài đặt, nếu bạn muốn làm việc với java mà không có bất kỳ trục trặc nào, bạn sẽ cần phải thiết lập đường dẫn java.

Tại sao bạn phải đặt đường dẫn Java?

Đường dẫn là biến môi trường quan trọng nhất của môi trường Java , được sử dụng để định vị các gói JDK được sử dụng để chuyển đổi mã nguồn java thành định dạng nhị phân có thể đọc được bằng máy.

Các công cụ như javac và java có thể được sử dụng bằng cách đặt đường dẫn. Khi bạn lưu tệp của mình trong thư mục java tức là nơi java được cài đặt, không cần thiết phải đặt đường dẫn. Nhưng nếu bạn đang lưu tệp của bạn bên ngoài thư mục, nó là khá cần thiết để thiết lập đường dẫn trước.

Tại sao bạn phải đặt đường dẫn Java?

Làm cách nào để thiết lập đường dẫn Java?

Có hai phương pháp để thiết lập đường dẫn.

1. Temporary path – Đường dẫn tạm thời
2. Permanent path – Đường dẫn vĩnh viễn

Thiết lập đường dẫn tạm thời của JDK

Rất dễ dàng để thiết lập đường dẫn tạm thời của JDK. Thực hiện theo các bước sau để thiết lập đường dẫn.

  1. Mở terminal hoặc CLI
  2. Đi đến đường dẫn nơi thư mục JDK / bin đã được lưu (Lúc cài đặt java sẽ lưu mặc định ở: C:Program FilesJavajdk-13.0.1in)
  3. Sao chép đường dẫn
  4. Nhập lệnh sau vào dấu nhắc lệnh:

set path= C:Program FilesJavajdk-13.0.1

Điều này sẽ thiết lập đường dẫn tạm thời của JDK.

Thiết lập đường dẫn vĩnh viễn của JDK

Để đặt đường dẫn vĩnh viễn của JDK trên hệ thống của bạn, hãy làm theo các bước dưới đây.

  • 1. Mở cài đặt hệ thống và đi đến cài đặt hệ thống nâng cao trong Control PanelSystem and SecuritySystem
  • 2. Nhấp vào các biến môi trường trong tab.
  • 3. Đi đến System variables và nhấp vào New
  • 4. Thêm tên biến là ‘PATH’, Sao chép đường dẫn của thư mục bin JDK.
  • 5. Nhấp vào ok.

Thiết lập đường dẫn vĩnh viễn của JDK

Bây giờ bạn đã tạo xong một đường dẫn java, việc cần làm tiếp theo là bạn phải nắm vững tất cả các khái niệm cơ bản trong Java và bắt đầu làm việc với các kỹ năng để trở thành một nhà phát triển java. Phải mất rất nhiều thời gian thực hành và được hướng dẫn để làm chủ java vì các khái niệm rộng lớn của nó. Để bắt đầu việc học của bạn, bạn có thể đăng ký vào chương trình đào tạo Lập trình Java của Aptech Buôn Ma Thuột, điều này sẽ giúp bạn thành thạo tất cả các kỹ năng và khái niệm để trở thành nhà phát triển java.

Bài 5:Một số vấn đề thường gặp khi sử dụng Git và cách khắc phục

Bài 5:Một số vấn đề thường gặp khi sử dụng Git và cách khắc phục

Phải thừa nhận rằng nhờ có công cụ kiểm soát phiên bản Git, các nhà phát triển có thể thử nghiệm nhiều hơn trong quá trình hoàn thành dự án của mình. Nếu trong quá trình phát triển xảy ra lỗi thì nhờ có Git, các nhà phát triển luôn có cách hoàn tác phiên bản dự án của mình về thời điểm trước khi họ gặp sự cố.

Cách thức lưu trữ và kiến trúc hoạt động của Git được thiết kế để cho phép chúng ta thực hiện các thay đổi dữ liệu được xem xét và sửa đổi trước khi di chuyển dữ liệu đến giai đoạn tiếp theo. Sau đây là những vấn đề thường gặp trong khi phát triển dự án cùng với Git và cách khắc phục

Unstage file hoặc thư mục

Trong khi thêm hoặc sửa đổi các tệp, bạn thường có quán tính sử dụng lệnh ‘git add’, đó là thêm tất cả các tệp và thư mục vào chỉ mục để chuẩn bị commit. Tuy nhiên, sau khi xem xét lại bạn cảm thấy cần phải hủy bỏ một số tệp nhất định hoặc sửa đổi chúng lần cuối trước khi commit chúng. Cú pháp:

git reset <tên file/tên thư mục>

hoặc

git restore –staged <tên file / thư mục>

Un-staging hoặc restore file/thư mục ra giúp chúng ta có chuyển các file hoặc thưc mục đã sử dụng lệnh git add từ stagging-area về lại working-directory. Sau khi chuyển xong bạn có thể thay đổi lại file, rồi thực hiện thêm vào lại chỉ mục để chuẩn bị commit.

Mẹo: Sử dụng lệnh để cập nhật thay đổi cho tất cả các file và thư mục trong dự án thay vì thêm từng file

git add .

Chỉnh sửa thông điệp của commit cuối cùng

Có trường hợp, sau khi bạn hoàn tất các thay đổi trên file xong và đã thực hiện commit cho sự thay đổi đó. Vì lý do gì đó, mà bạn gõ sai nội dung thông điệp và bạn muốn chỉnh sửa lại thông điệp đó. Hãy gõ lệnh dưới đây, ngay khi bạn vừa hoàn tất commit đó.

git commit –amend

Mẹo: Để hiển thị log đẹp hơn bạn có thể sử dụng cú pháp sau:

git log –pretty=format:”%C(yellow)%h%Creset %ad | %C(green)%s%Creset%C(red)%d%Creset %C(blue)[%an]” –graph –decorate –date=short’

Nếu lệnh trên dài dòng khó nhớ, hãy tạo alias định danh cho nó bằng cú pháp:

git config –global alias.hist ‘log –pretty=format:”%C(yellow)%h%Creset %ad | %C(green)%s%Creset%C(red)%d%Creset %C(blue)[%an]” –graph –decorate –date=short’

Sau này bạn chỉ cần gõ:

git hist

Lưu ý: Không sửa đổi thông điệp commit đã được đẩy vào kho lưu trữ từ xa và đã chia sẻ với người khác, vì điều đó sẽ làm cho lịch sử cam kết trước đó không hợp lệ và do đó mọi công việc dựa trên đó có thể bị ảnh hưởng. Sau khi thực hiện thay đổi commit ID sha-1 của commit đó cũng sẽ bị thay đổi.

Unstage file hoặc thư mục

Lấy lại dữ liệu cá nhân đã được commit vào kho lưu trữ cục bộ (local repository)

Tôi muốn xóa một số dữ liệu khỏi kho lưu trữ cục bộ local repository nhưng giữ các tệp trong thư mục làm việc working directory. Giả sử có một dự án, trong đó có file chứa nội dung về username và password tài khoản hosting của tôi. Nhưng tôi lỡ thực hiện commit cho nó, bây giờ làm thế nào để lấy lại và loại trừ nó khi thực hiện các commit tiếp theo.

Hãy thực hiện theo cách sau:

git reset –mixed HEAD~n

HEAD~n chỉ ra một cam kết theo số thứ tự gần đây bởi nhánh hiện tại, Chỉ số n được hiểu như sau: Ví dụ ta có 3 commit là commit mới nhất, commit thứ 2, commit thứ 3 thì tương ứng với chỉ số n=1, n=2, n=3. Mặc định để HEAD~ thì Git sẽ hiểu là n = 1, nghĩa là lấy Commit mới nhất.

git reset –mixed <commit-id>

Commit id chỉ định cụ thể một cam kết kiểu như số Chứng minh nhân dân vậy ^^. Đây là một chuỗi 40 ký tự bao gồm các ký tự thập lục phân (chứa các số từ 0-9 và ký tự từ a-f) và được tính toán dựa trên nội dung của cấu trúc tệp hoặc thư mục trong Git. Có dạng như sau:

24b9da6552252987aa493b52f8696cd6d3b00373

Ở ví dụ dưới đây, giả sử tôi có file aptechbmt.edu.vn.pass lưu trữ username/password, tôi đang có dự định tạo 1 commit cho file LeHuyC.txt nhưng theo quán tính tôi hay sử dụng lệnh “git add . ” để thêm file cho nhanh thay vì gõ tên file (bệnh lười ^^) nhưng thật không may lệnh này sẽ add tất cả các file/thư mục đã được thay đổi trong đó bao gồm cả file aptechbmt.edu.vn.pass ,điều này có thể gây ra nguy hại sau này.

Sau khi kết thúc lệnh git reset, các file hiện tại đã bị loại ra khỏi “local repository” và “stagging area” việc tiếp theo là add lại file LeHuyC.txt và thực hiện commit cho nó. Dưới đây là cách reset theo id-commit, lưu ý: tùy vào thời điểm bạn commit hãy lựa chọn id-commit cho chính xác

Mẹo: Thêm nội dung sau trong tệp .gitignore để loại trừ chúng khỏi bị theo dõi bởi git.

vim .gitignore# password files #*.pass*.key*.passwd

Với điều này, commit có ảnh chụp nhanh của các file có phần mở rộng được liệt kê trong file .gitignore sẽ bị loại trừ. Các tập tin của tôi vẫn hiện diện trong thư mục làm việc của tôi nhưng không còn hiện diện trong kho lưu trữ cục bộ, cũng sẽ không được push vào một kho lưu trữ từ xa. Xem thêm mô tả bên dưới:

Cảnh báo: Nếu bạn làm mất các file đó, git không thể phục hồi chúng cho bạn vì Git không theo dõi chúng.

Thay thế commit mới nhất bằng một commit khác

git reset –soft [<commit-id>/HEAD~n>]

Khác với tùy chọn ‘mixed’ tùy chọn ‘–soft’ chỉ cần xóa các tệp đã commit khỏi kho lưu trữ cục bộ “local repository” trong khi chúng vẫn được giữ lại trong chỉ mục “stagging area” và bạn có thể thực hiện cam kết lại chúng sau khi xem xét. Tương tự <commit-id> là sha-1 của ảnh chụp nhanh mà bạn muốn xóa khỏi local repo và <HEAD ~ n> trong đó n là số thứ tự commit như đã nói ở trên. Giả sử: tôi tạo ra 2 file mới là PhamThiD.txt và TranVanE.txt, lúc đầu tôi thực hiện commit cho cả 2 file cùng lúc. Nhưng sau đó tôi lại muốn thực hiện commit lại cho từng file mà không thay đổi nội dung file, thì tôi làm theo cách sau:

Commit sai dữ liệu không mong muốn và muốn xóa dữ liệu đó

git reset –hard HEAD~ngit reset –hard <commit-id>

Giả sử tôi có một file mới là MaiVanF-Draff.txt , tôi lỡ thực hiện commit cho nó xong nhưng chợt nhận ra file này là file nháp bị lỗi. Bây giờ tôi muốn lấy lại commit cũ và xóa luôn file này khỏi kho lưu trữ của mình. Tôi làm như sau:

Kết quả là cam kết mới nhất và các tệp đó được xóa khỏi kho lưu trữ cục bộ “local repository” và khu vực tổ chức cũng như thư mục làm việc “working directory”

Chú ý: Git reset –hard là một lệnh nguy hiểm khiến bạn mất tập tin trong thư mục làm việc. Nó không được đề xuất trên một kho lưu trữ được chia sẻ từ xa.

Bạn có thể theo dõi quy trình của Git được mô tả ở biểu đồ dưới đây để hiểu rõ hơn:

Quay trở lại trạng thái cũ của dự án

Một lợi thế của Git là bạn có thể chuyển sang trạng thái cũ hơn của dự án trong lịch sử. Nếu bạn làm hỏng phiên bản mới nhất hoặc cần cải tiến trong phiên bản cũ hơn, bạn có thể tạo một nhánh branch khác từ ảnh chụp dự án ở phiên bản cũ mà bạn muốn phát triển lại từ nó để không cản trở công việc hiện tại của bạn. Chúng ta hãy làm theo các bước sau:

a. Liệt kê lịch sử dự án và quyết định lựa chọn một id-commit cũ hơn bằng lệnh: git log
b. Tạo một nhánh khác từ id-commit đã được chọn: git branch <tên branch> <id-commit>
c. Tiếp tục làm việc trên nhánh vừa tạo với phiên bản đó và khi đã ưng ý thì merge / rebase với nhánh master

Ví dụ: Tôi có lịch sử commit như sau:

​​​​​​​$ git log –onelinecaa556d (HEAD -> master) Them TranVanE097b835 Them PhamThiD5da0b8b Them file .gitignore va them LeHuyCe5d0fd6 Thay doi noi dung file Nguyen Van A.txt8aff54c Them NguyenVanA va TranThiB

Bây giờ tôi muốn tách 1 nhánh tại commit HEAD~3 tương đương với id-commit là 5da0b8b và đặt tên cho nó là nhánh kiem-tra với mục đích là kiểm tra xem file thông tin cá nhân có tên là MaiVanF.txt có nội dung đúng chưa. Nếu đã có chứa đầy đủ nội dung, tôi sẽ hợp nhất vào lại nhánh master rồi sau đó xóa branch kiem-tra đi.

Quay trở lại trạng thái cũ của dự án

Khôi phục một Branch ở kho lưu trữ cục bộ đã bị xóa

Có thể lấy lại công việc đã bị mất trên một nhánh tham chiếu. Giả sử, tôi mở thêm một nhánh ‘phat-trien’ để phát triển một chức năng lưu trữ danh sách được đặt trên file luutrudanhsach.php ,nhánh này tôi quên không hợp nhất với nhánh master và xóa mất nó, kết quả tôi bị mất file luutrudanhsach.php. Và tôi cũng quên không đẩy nhánh này đến một kho lưu trữ từ xa, giờ thì phải làm sao để lấy lại file này? Rất may là git theo dõi và giữ một mục nhật ký của tất cả các thay đổi được thực hiện trên mỗi file trong một bảng riêng biệt gọi là reflog.

Có 2 cách để khôi phục một Branch và nội dung của nó dựa trên HEAD~n hoặc id của lịch sử reflog. Nhưng đầu tiên bạn cần phải kiểm tra lịch sử trên reflog bằng lệnh sau:

git reflog

  • Cách 1: git hard reset về thời điểm bạn mong muốn ví dụ như trước khi xóa branch chẳng hạn. Cách này sẽ thay đổi commit Head~1 của nhánh master trường hợp xấu nhất còn gây mất commit mới nhất của nhánh master nếu thứ tự commit của nhánh master nhỏ hơn thứ tự commit mới nhất của nhánh cần lấy dựa trên reflog
  • Cách 2: sử dụng lệnh cherry-pick <id-commit> để lấy lại lịch sử commit dựa trên reflog, cách này sẽ báo xung đột conflict file, do file đã bị xóa. Chúng ta phải git add và git commit lại mới OK​​​​​​​
  • Cách 3: dài dòng hơn nữa là tạo một branch khác (mục đich là để sau này cần thì quay lại phát triển tiếp trên này) tại thời điểm bạn mong muốn, sau khi đã kiểm tra kỹ lưỡng tất cả mọi thứ mới merge hoặc rebase vào nhánh master. Tôi sẽ thực hiện​ theo cách này, như video dưới đây:

Hoàn tác các thay đổi đã được thực hiện trong một commit

git Revert được sử dụng cho việc ghi lại một số commit để đảo ngược tác dụng của một số commit trước đó.

git revert <id-commit>

Từ lịch sử commit của tôi, tôi muốn revert thay đổi dựa trên id-commit, điều này không làm mất lịch sử commit mới hơn bản thân nó, mà git revert sẽ tạo ra một commit ghi nhận có sự revert trong hệ thống. Lấy ví dụ, tôi có một project-web như bên dưới đây. Tại thời điểm đầu tôi có tạo một logo cho website và thực hiện commit cho nó, tuy nhiên sau này tôi muốn đổi lại một logo mới hoàn thiện hơn nhưng tôi lại muốn giữ lại lịch sử commit cũ để sau này xem lại và không muốn làm xáo trộn lịch sử commit mới nhất.

Lưu ý: bạn không nên reset –hard lại các commit đã được chia sẻ, mà thay vào đó, hãy ‘git revert’ chúng để lưu giữ lịch sử từ đó mọi người dễ dàng theo dõi nhật ký lịch sử để tìm ra những gì được hoàn nguyên, bởi ai và tại sao? Bạn cũng có thể sử dụng con trỏ chính HEAD thay vì đưa ra id-commit, ví dụ như HEAD ~ 3 hoặc HEAD ~ 4, v.v.

Sửa lại tên branch ở kho lưu trữ cục bộ do đặt sai tên

Bạn có thể đổi tên một Branch trong kho lưu trữ cục bộ. Trước khi biết điều này, bạn hay thường tạo một branch mới với cái tên mà mình muốn rồi sau đó thực hiện di chuyển toàn bộ công việc tại branch cũ qua bằng lệnh mere/rebase. Nhưng giờ khác rồi, bạn có thể ở trên cùng một nhánh hoặc một nhánh khác và vẫn có thể đổi tên nhánh như mong muốn bằng lệnh dưới đây:

git branch -m <tên cũ> <tên mới>

Bạn tự hỏi liệu git có theo dõi việc đổi tên này không? Vâng, nó vẫn được đề cập đến trong ‘reflog’ của bạn, kiểm tra thử nhé!

Đổi tên một chi nhánh sẽ không ảnh hưởng đến chi nhánh theo dõi từ xa của nó. Chúng ta sẽ tìm hiểu nó trong phần từ xa “làm thế nào để thay thế một nhánh trên kho lưu trữ từ xa”

Sắp xếp lại nhật ký lịch sử commit trước khi push lên kho lưu trữ từ xa

Trong quá trình thực hiện dự án, để lịch sử commit trước khi được chia sẻ trông gọn gàng và dễ hiểu hơn. Chúng ta có thể sử dụng lệnh git rebase để thực hiện các thao tác này. Cú pháp như sau:

git rebase -i <id-commit>

Trong đó, id-commit là mốc thời gian mà bạn muốn thực hiện các thay đổi cho lịch sử commit bắt đầu từ nó trở về hiện tại (hiểu nôm na là các id-commit được hình thành phía sau nó sẽ bị ảnh hưởng). Giả sử tôi có lịch sử commit và muốn thay đổi.

Như vậy, tất cả các commit hình thành sau commit có id là f1fa83 sẽ nằm trong danh sách bị thay đổi.

Bạn có thể truy cập lại tài liệu rebase git trên trang https://git-scm.com/docs/git-rebase để hiểu làm thế nào là một ‘rebinteractive hoặc -i’ rebase khác với rebase thông thường.

Tách một commit thành nhiều commit khác nhau

Có bao giờ, bạn gặp phải trường hợp như thế này chưa? Sau khi hoàn thành một dự án, ngồi đọc lại lịch sử commit của mình trước khi push lên một kho lưu trữ từ xa như Github thì thấy có một vài commit có thể tách ra thành nhiều commit logic hơn để giúp người đọc code rõ nghĩa hơn về công việc đó.

Ví dụ: mình đang viết một đoạn code HTML+CSS để thiết kế giao diện cho thẻ <header> của trang web, nhưng trong <header> bao gồm thẻ <nav> menu và thẻ <img> log. Nhưng chỉ có một commit duy nhất cho cả 2 phần này, là commit cho <header> thôi. Bây giờ bạn muốn tách ra để logic hơn và người đọc code cũng thuận lợi hơn.

Đơn giản là chúng ta vẫn sử dụng lệnh dưới:

git rebase -i <id-commit>

Như ảnh trên, tôi muốn tách commit fcb1f50 tôi sử dụng git rebase -i 63db231(Lưu ý: rebase có tác dụng với các commit được lập sau commit được chỉ định)

Trong trình chỉnh sửa rebase, bạn phải chọn id-commit mà mình muốn tách và thay đổi nó thành ‘edit’ ô màu đỏ thay vì ‘pick’ và lưu lại (Trong Vim nhấn :wq )

Mặc định khi chúng ta chọn edit git sẽ yêu cầu thực hiện git –amend để edit lại commit, nhưng chúng ta hãy xem lại git log trước đã. Lúc này, con trỏ HEAD đã được trỏ tới commit fcb1f50

​​​​​​Việc cần làm bây giờ là sử dụng lệnh git reset HEAD~1 để đặt lại commit.

Sau đó, bạn chỉnh sửa lại theo ý mình và thực hiện commit cho các thay đổi đó bình thường. Dưới đây, tôi thực hiện 2 commit thay đổi cho <img> và <nav>

git add . & git commit -m “Add <img> logo inside <header>”

git add . & git commit -m “Add <nav> menu inside <header>”

Lúc này, bạn sử dụng git log để kiểm tra thì thấy một nhánh mới được tạo như ảnh dưới với 2 commit mới nhất vừa được tạo.

Việc cuối cùng là chạy lệnh git rebase –continue để hoàn tất rebase 2 thay đổi vào nhánh master. Kiểm tra lại git log để thấy sự thay đổi. ​​​​​​​

Như vậy, bạn đã thấy 2 commit được tách ra từ 1 commit như thế nào rồi đúng không? Thực hành ngay nhé.

Lưu ý: Trong một số trường hợp sẽ báo conflict xung đột file do quá trình chỉnh sửa nội dung trên cùng một dòng. Tùy vào trường hợp sẽ có cách khắc phục cụ thể, tuy nhiên tách 1 commit thành nhiều commit chỉ là cách chữa cháy, bạn nên tập thói quyen cho mình khi kết thúc một chức năng nào thì commit luôn cho chắc ăn! Bây giờ hãy tiếp tục với vấn đề tiếp theo nào!

​​​​​​​Thay đổi email tác giả trong tất cả các commit trong kho lưu trữ

Vào một ngày đẹp trời, bạn nhận ra rằng id email của mình đã bị xâm phạm trong nhật ký lịch sử commit thậm chí còn được xuất bản trên các kho lưu trữ từ xa. Điều này có thể xảy ra với bất cứ ai khi ban đầu thiết lập các cấu hình trong tập tin .gitconfig. Để có thể chỉnh sửa lại các biến môi trường mà chúng ta cung cấp khi tạo đối tượng commit, bạn có thể làm như sau:

Đầu tiên tôi lấy danh sách id email để xem những thứ mà mình muốn thay đổi: (

git log –all –pretty=format:”%C(yellow)%h%Creset %ad | %C(green)%s%Creset%C(red)%d%Creset %C(blue)[%an-%ae]” –graph –decorate –date=short

​​​​​​​Thay đổi email tác giả trong tất cả các commit trong kho lưu trữ

Lệnh trông dài dòng, bạn xem thêm ở đây nhé https://git-scm.com/docs/pretty-formats để hiểu thêm về pretty mà tôi áp dụng để lấy các giá trị cần thiết nhé:

Giả sử lịch sử commit của tôi như hình trên, bây giờ tôi muốn thay đổi tất cả email [email protected] thành [email protected]. Tôi sẽ sử dụng một vòng lặp để quét qua mọi cam kết trên mỗi nhánh và viết lại đối tượng cam kết bằng lệnh id email mới

git filter-branch –env-filter ‘if test “” = “Mai Ai Xuan Huong”then GIT_AUTHOR_EMAIL = [email protected]’ — –all

Kết quả kiểm tra git log

Sau khi thay đổi email xong Git sẽ tự động backup lại các commit (các refs/original/* là một bản sao lưu, trong trường hợp bạn làm tác động sâu vào các branch của mình) đây thực sự là một việc hữu ích. Khi bạn đã kiểm tra kết quả và bạn rất tự tin rằng mình đã có những gì mình muốn, bạn có thể xóa các tham chiếu đã sao lưu bằng lệnh sau:

git update-ref -d refs/original/refs/heads/mastergit update-ref -d refs/original/refs/heads/develop-about

Kiểm tra lại git log xem đã Ok chưa nhé! Trong hình tôi đặt alias cho git log bằng lệnh dưới nhé!

git config –blobal alias.newlog ‘log –all –pretty=format:”%C(yellow)%h%Creset %ad | %C(green)%s%Creset%C(red)%d%Creset %C(blue)[%an-%ae]” –graph –decorate –date=short’

Tìm kiếm nhanh tập tin dựa trên nội dung của nó

Giả sử bạn đã quên mất một tập tin và bạn không nhớ tên của nó, nhưng có thể nhớ lại các từ nhất định trong nội dung của tệp. Trong trường hợp này, bạn có thể làm theo các bước sau:

​​​​​​​- Bước 1: Liệt kê tất cả các cam kết đã từng chứa ảnh chụp nhanh tệp với mẫu tìm kiếm

git rev-list –all | xargs git grep -i ‘nội dung trong tập tin’

Giả sử tôi muốn tìm kiếm file chứa từ khóa “BaseController”. Câu lệnh trên giúp tôi tìm được đường dẫn chính xác của file chưa nội dung đó là app/Http/Controllers/Controller.php

Tìm kiếm branch có chứa một id-commit bất kỳ

Đôi khi, sau khi bạn phát hiện ra một id commit lỗi, bạn cũng có thể muốn biết tất cả các branch chứa cam kết này trên chúng từ đó bạn tìm và sửa tất cả chúng. Nếu kiểm tra lịch sử của mỗi branch là không thực tế trong một dự án lớn có nhiều branch.

Để liệt kê các nhánh có id commit đó bạn sử dụng lệnh sau:

git branch –contains <commit-id>

Xóa một commit khỏi lịch sử

Đôi khi bạn cảm thấy cần phải xóa sạch một commit khỏi lịch sử và không để lại dấu vết nào. Tôi khuyên bạn không nên thử làm “diễn viên đóng thế” này trên một nhánh chung mà chỉ trên nhánh local của bạn ^^ (hậu quả thì bạn tự rõ nhé)

git rebase -i <commit-id>

Trong trình chỉnh sửa rebase-> thay thế ‘pick’ bằng ‘drop’ cho id-commit bạn cần xóa. Xem lại phần này để biết thêm

Trong một số trường hợp, việc rewrite này có thể dẫn đến conflict xung đột. Bạn phải giải quyết xung đột sau đó tiến hành thêm.

Cảnh báo : Đây là một lệnh nguy hiểm vì lịch sử commit sẽ bị rewrite và có thể mất dữ liệu.

Xóa một commit khỏi lịch sử

Tổng kết

Trong bài này, tôi đã đề cập đến một số lỗi thường gặp và các biện pháp mà git có thể giúp bạn khắc phục. Mỗi mã code là duy nhất và được phát triển theo cách của nó, vì vậy cũng có những cách khác nhau để tiếp cận và khắc phục một vấn đề. Bạn luôn có thể tham khảo tài liệu git chính thức để hiểu cách mà các lệnh git khác nhau bảo vệ mã code của bạn và cách sử dụng các lệnh một cách tốt nhất có thể.

Bây giờ bạn đã hiểu các lỗi Git phổ biến, hãy xem chương trình đào tạo Lập trình viên quốc tế của Aptech Buôn Ma Thuột. Chương trình học với hơn 100.000 học viên Việt Nam đã và đang theo đuổi với nhiều lợi thế về công nghệ. Đặc biệt tại mỗi kỳ học bạn sẽ được làm việc với các dự án cụ thể và Git luôn là một người bạn đồng hành cùng bạn. Gọi cho chúng tôi theo số điện thoại 02623 50 50 55 được tư vấn và nghe lộ trình đào tạo miễn phí nhé.

Bài 1: Git là gì? Cùng khám phá công cụ kiểm soát phiên bản phân tán.

Git là một công cụ hệ thống kiểm soát phiên bản phân tán mã code miễn phí được thiết kế để xử lý mọi thứ từ các dự án nhỏ đến rất lớn với tốc độ và hiệu quả. Git có hiệu suất cao, bảo mật và tính linh hoạt mà hầu hết các nhóm và nhà phát triển cá nhân cần. Bài viết ‘Git là gì’ này là bài viết đầu tiên của loạt bài Hướng dẫn sử dụng Git của Aptech Buôn Ma Thuột.

Git là gì – Tại sao Git lại xuất hiện?

Chúng ta đều biết “Nhu cầu là khởi nguồn của tất cả các phát minh”. Và Git cũng vậy, nó được phát minh để đáp ứng những nhu cầu cần thiết mà các nhà phát triển phải đối mặt. Trước khi tìm hiểu về Git, chúng ta hãy tìm hiểu về Hệ thống kiểm soát phiên bản (VCS – Version Control System) và cách Git được tạo ra.

Kiểm soát phiên bản là quản lý các thay đổi đối với tài liệu, chương trình máy tính, trang web lớn và các bộ sưu tập thông tin khác.

Có hai loại VCS:

  • Hệ thống kiểm soát phiên bản tập trung (CVCS)
  • Hệ thống kiểm soát phiên bản phân tán (DVCS)

Git là gì - Tại sao Git lại xuất hiện?

Hệ thống kiểm soát phiên bản tập trung CVCS

Hệ thống kiểm soát phiên bản tập trung (CVCS) sử dụng máy chủ trung tâm để lưu trữ tất cả các tệp và cho phép cộng tác nhóm để làm việc. Nó hoạt động trên một kho lưu trữ duy nhất mà người dùng có thể truy cập trực tiếp vào một máy chủ trung tâm.

Vui lòng tham khảo sơ đồ bên dưới để hiểu rõ hơn về CVCS:

Kho lưu trữ (Repository) trong sơ đồ trên chỉ ra một máy chủ trung tâm có thể là nằm ở cục bộ hoặc từ xa và được kết nối trực tiếp với mỗi máy trạm của lập trình viên.

Mỗi lập trình viên có thể trích xuất hoặc cập nhật “update” máy trạm của họ với dữ liệu có trong kho lưu trữ hoặc có thể thay đổi dữ liệu hoặc ủy thác thông tin “commit” trong kho lưu trữ. Mọi hoạt động này đều được thực hiện trực tiếp trên kho lưu trữ.

Mặc dù có vẻ khá thuận tiện để duy trì một kho lưu trữ duy nhất, nhưng nó có một số nhược điểm lớn. Một số trong số đó là:

  • Nó không có sẵn tại cục bộ (local); có nghĩa là bạn luôn cần được kết nối với mạng để thực hiện bất kỳ hành động nào.
  • Vì mọi thứ đều tập trung, nên trong mọi trường hợp máy chủ trung tâm bị sự cố hoặc bị hỏng sẽ dẫn đến mất toàn bộ dữ liệu của dự án.

Đây là chính là lúc hệ thống VCS phân tán xuất hiện để khắc phục các vấn đề trên.

Hệ thống kiểm soát phiên bản phân tán DVCS

Các hệ thống này không nhất thiết phải dựa vào một máy chủ trung tâm để lưu trữ tất cả các phiên bản tập tin của dự án.

Trong VCS phân tán, mọi người đóng góp đều có một bản sao cục bộ hoặc có bản sao được nhân bản “clone” của kho lưu trữ chính, tức là mọi người đều duy trì một kho lưu trữ cục bộ của riêng họ chứa tất cả các tệp và dữ liệu có trong kho lưu trữ chính.

Bạn sẽ hiểu nó tốt hơn bằng cách tham khảo sơ đồ dưới đây:

Như bạn có thể thấy trong sơ đồ trên, mỗi lập trình viên tự duy trì một kho lưu trữ cục bộ, đây thực sự là bản sao hoặc bản sao được nhân bản từ kho lưu trữ trung tâm về trên ổ cứng của họ. Họ có thể cam kết (commit) và cập nhật (update) kho lưu trữ cục bộ của mình mà không có sự can thiệp nào.

Họ có thể cập nhật kho lưu trữ cục bộ của họ với dữ liệu mới từ máy chủ trung tâm bằng một hoạt động được gọi là “pull” kéo về và đẩy ngược lại các thay đổi đối với kho lưu trữ chính bằng một hoạt động được gọi là “push” đẩy từ kho lưu trữ cục bộ của họ lên kho chính.

Hành động nhân bản “clone” toàn bộ kho lưu trữ vào máy trạm của bạn để có được một kho lưu trữ cục bộ mang lại cho bạn những lợi thế sau:

Tất cả các hoạt động (ngoại trừ pull và push) đều rất nhanh vì công cụ chỉ cần truy cập vào ổ cứng chứ không phải máy chủ từ xa. Do đó, không phải lúc nào bạn cũng cần kết nối internet.

  • Việc “commit” ủy thác các bộ thay đổi mới có thể được thực hiện cục bộ mà không cần thao tác dữ liệu trên kho lưu trữ chính. Khi bạn đã có sẵn một nhóm các bộ thay đổi, bạn có thể đẩy “push” tất cả chúng cùng một lúc.
  • Vì mọi người đóng góp đều có một bản sao đầy đủ của kho dự án, họ có thể chia sẻ các thay đổi với nhau nếu họ muốn nhận được một số phản hồi trước khi ảnh hưởng đến các thay đổi trong kho lưu trữ chính.
  • Nếu máy chủ trung tâm bị sập bất cứ lúc nào, dữ liệu bị mất có thể được phục hồi dễ dàng từ bất kỳ kho lưu trữ cục bộ nào của người đóng góp.
  • Sau khi biết tìm hiểu về quy trình làm việc và lợi thế của VCS phân tán, đã đến lúc chúng ta đi sâu vào Git.

Git là gì?

Git là một công cụ Kiểm soát Phiên bản Phân tán hỗ trợ các luồng công việc phi tuyến tính phân tán bằng cách cung cấp một cơ chế giúp dữ liệu của dự án được đảm bảo hơn, từ đó các nhà phát triển xây dựng được phần mềm chất lượng hơn.

Git là gì?

Git cung cấp tất cả các tiện ích VCS phân tán cho người dùng đã được đề cập trước đó. Kho Git rất dễ tìm và truy cập. Bạn sẽ biết Git linh hoạt và tương thích với hệ thống của bạn như thế nào khi bạn xem qua các tính năng được đề cập dưới đây:

Git là gì – Tính năng của Git

Nguồn mở và miễn phí:

Git được phát hành theo giấy phép nguồn mở của GPL (Giấy phép công cộng chung). Bạn không cần phải mua Git. Nó hoàn toàn miễn phí. Và vì nó là nguồn mở, bạn có thể sửa đổi mã nguồn theo yêu cầu của bạn.

Tốc độ

Vì bạn không phải kết nối với bất kỳ mạng nào để thực hiện tất cả các hoạt động, nó hoàn thành tất cả các tác vụ một cách nhanh chóng. Các thử nghiệm hiệu năng được thực hiện bởi Mozilla cho thấy nó nhanh hơn so với các hệ thống kiểm soát phiên bản khác. Tìm nạp lịch sử phiên bản từ kho lưu trữ cục bộ có thể nhanh hơn một trăm lần so với tìm nạp từ máy chủ từ xa. Phần cốt lõi của Git được viết bằng ngôn ngữ C, giúp tránh các chi phí thời gian chạy liên quan đến các ngôn ngữ cấp cao khác.

Khả năng mở rộng

Git rất có thể mở rộng rất lơn. Vì vậy, nếu trong tương lai, số lượng cộng tác viên làm việc tăng Git có thể dễ dàng xử lý thay đổi này. Mặc dù Git đại diện cho toàn bộ kho lưu trữ, dữ liệu được lưu trữ ở phía máy khách rất nhỏ vì Git nén tất cả dữ liệu khổng lồ thông qua kỹ thuật nén không mất dữ liệu.

Đáng tin cậy

Vì mọi người đóng góp đều có kho lưu trữ cục bộ của riêng mình ở local, nếu chẳng may sự cố hệ thống, dữ liệu bị mất có thể được phục hồi từ bất kỳ kho lưu trữ cục bộ khác. Bạn sẽ luôn có một bản sao lưu của tất cả các tập tin của bạn.

Bảo mật

Git sử dụng mã hóa SHA1 (Chức năng băm an toàn) để đặt tên và xác định các đối tượng trong kho lưu trữ của mình. Mỗi tệp và “commit” ủy thác sẽ được kiểm tra tổng hợp và truy xuất nhanh bằng tổng kiểm tra tại thời điểm “checkout”. Lịch sử Git được lưu trữ bằng cách đặt ID cho từng phiên bản cụ thể, nó phụ thuộc vào lịch sử thời gian thay đổi và quá trình phát triển hoàn chỉnh của dự án. Một khi nó được xuất bản “commited”, khi thay đổi các phiên bản cũ mà hệ thống Git sẽ đưa ra các cảnh báo trực quan ngay lập tức .

Git là gì - Tính năng của Git

Kinh tế

Trong trường hợp CVCS, máy chủ trung tâm cần đủ mạnh để phục vụ các yêu cầu của toàn đội. Đối với các nhóm nhỏ hơn, đó không phải là vấn đề, nhưng khi quy mô nhóm tăng lên, các giới hạn phần cứng của máy chủ có thể là một nút cổ chai hiệu năng. Trong trường hợp DVCS, nhà phát triển không tương tác với máy chủ trừ khi họ cần đẩy hoặc kéo thay đổi. Tất cả các công việc nặng nề xảy ra ở phía máy khách, vì vậy phần cứng máy chủ thực sự có thể rất đơn giản.

Hỗ trợ mạnh mẽ cho phát triển phi tuyến tính

Git hỗ trợ phân nhánh và hợp nhất nhanh chóng, nó bao gồm các công cụ cụ thể để trực quan hóa và điều hướng một lịch sử phát triển phi tuyến tính. Một giả định cốt lõi trong Git là một thay đổi sẽ được hợp nhất thường xuyên hơn so với nó được viết, vì nó được thông qua xung quanh các nhà phê bình khác nhau. Chi nhánh “branch” ở Git rất nhẹ. Một nhánh trong Git chỉ là một tham chiếu đến một ủy thác “commit” duy nhất. Với các ủy thác của nhánh cha mẹ, cấu trúc nhánh đầy đủ có thể được xây dựng.

Phân nhánh dễ dàng

Quản lý phân nhánh với Git rất đơn giản. Chỉ mất vài giây để tạo “create”, xóa “delete” và hợp nhất “merge” các nhánh. Các nhánh tính năng cung cấp một môi trường biệt lập cho mọi thay đổi đối với dự án code của bạn. Khi một nhà phát triển muốn bắt đầu làm việc trên một cái gì đó, bất kể lớn hay nhỏ, họ tạo ra một chi nhánh mới để thực hiện code trên đó. Điều này đảm bảo rằng nhánh chính luôn chứa mã có chất lượng cao nhất, ổn định và hoàn thiện nhất trước khi được phân phối tới người sử dụng.

Phát triển phân tán

Git cung cấp cho mỗi nhà phát triển một bản sao cục bộ của toàn bộ lịch sử phát triển và các thay đổi được sao chép “fork” từ kho này sang kho khác. Những thay đổi này được nhập dưới dạng các nhánh phát triển bổ sung và có thể được hợp nhất theo cách tương tự như một nhánh được phát triển cục bộ.

Khả năng tương thích với các hệ thống hoặc giao thức hiện có

Các kho lưu trữ có thể được xuất bản qua http, ftp hoặc giao thức Git qua socket hoặc ssh. Git cũng có phần mô phỏng máy chủ Hệ thống Phiên bản đồng thời (CVS), cho phép sử dụng các ứng dụng khách CVS và trình cắm IDE hiện có được truy cập kho Git. Các kho lưu trữ SubVersion (SVN) và SVK của Apache có thể được sử dụng trực tiếp với Git-SVN.

Git là gì – Vai trò của Git trong ngành lập trình là gì?

Bây giờ bạn đã biết Git là gì, bạn nên biết Git là một phần không thể thiếu của Lập trình viên.

Git thúc đẩy giao tiếp giữa các lập trình viên và giúp họ trao đổi thông tin, chia sẻ công việc để cùng hoạt động, tham gia trong toàn bộ vòng đời phát triển ứng dụng, từ thiết kế cho đến quá trình phát triển đến hỗ trợ sản xuất.

Sơ đồ bên dưới mô tả vòng đời cơ bản của quá trình phát triển ứng dụng và Git đóng vai trò gì trong đó:

Biểu đồ trên cho thấy toàn bộ vòng đời của việc phát triển phần mềm bắt đầu từ việc lập kế hoạch dự án đến triển khai và giám sát. Git đóng một vai trò quan trọng khi nói đến việc quản lý mã mà các lập trình viên đóng góp cho kho lưu trữ được chia sẻ. Mã này sau đó được trích xuất để thực hiện tích hợp liên tục để tạo bản dựng và kiểm tra nó trên máy chủ thử nghiệm và cuối cùng triển khai nó để sản xuất.

Các công cụ như Git cho phép giao tiếp giữa nhóm phát triển và nhóm vận hành. Khi bạn đang phát triển một dự án lớn với số lượng cộng tác viên khổng lồ, điều rất quan trọng là phải có sự giao tiếp giữa các cộng tác viên trong khi thực hiện các thay đổi trong dự án. Thông điệp ủy thác “Commit messages” trong Git đóng vai trò rất quan trọng trong việc liên lạc giữa các nhóm. Các bit và phần mà tất cả chúng ta triển khai nằm trong hệ thống Kiểm soát phiên bản như Git. Để thành công trong quá trình phát triển phần mềm, bạn cần có tất cả các giao tiếp trong Kiểm soát phiên bản. Do đó, Git đóng một vai trò quan trọng.

Git là gì - Vai trò của Git trong ngành lập trình là gì?

Các công ty sử dụng Git

Git đã trở nên phổ biến hơn so với các công cụ kiểm soát phiên bản khác có sẵn trên thị trường như Apache Subversion (SVN), Hệ thống phiên bản đồng thời (CVS), Mercurial, v.v. Bạn có thể so sánh sự quan tâm của Git theo thời gian với các công cụ kiểm soát phiên bản khác với biểu đồ được thu thập từ Google Trends bên dưới:

Trong các công ty lớn, các sản phẩm thường được phát triển bởi các nhà phát triển ở khắp nơi trên thế giới. Để kết nối và thực hiện giao tiếp giữa họ, Git là giải pháp hoàn hảo nhất. Một số công ty sử dụng Git để kiểm soát phiên bản là: Facebook, Yahoo, Zynga, Quora, Twitter, eBay, Salesforce, Microsoft và nhiều hơn nữa.

Gần đây, tất cả các công việc phát triển mới của Microsoft đều nằm trong các tính năng của Git. Microsoft đang di chuyển .NET và nhiều dự án nguồn mở trên GitHub do Git quản lý. Một trong những dự án như vậy là LightGBM. Nó là một khung tăng cường độ dốc nhanh, phân tán, hiệu suất cao dựa trên các thuật toán cây quyết định được sử dụng để xếp hạng, phân loại và nhiều tác vụ học máy khác.

Ở đây, Git đóng vai trò quan trọng trong việc quản lý phiên bản LightGBM phân tán này bằng cách cung cấp tốc độ và độ chính xác.

Quản trị mạng là gì? Giải đáp những điều bạn đang thắc mắc

Quản trị mạng là gì? Giải đáp những điều bạn đang thắc mắc

Với xu hướng công nghệ ngày càng phát triển, các lĩnh vực về công nghệ thông tin dần chiếm lĩnh thị trường. Bạn là người muốn bắt kịp xu hướng? Trong bài viết này sẽ giải đáp và cung cấp những thông tin cơ bản về quản trị mạng cho các bạn .

1. Quản trị mạng là gì?

Quản trị mạng là các công việc quản trị mạng lưới bao gôm cung cấp các dịch vụ hỗ trợ, đảm bảo mạng lưới hoạt động hiệu quả, đảm bảo mạng lưới cung cấp đúng chỉ tiêu ra.

Với sự phát triển công nghệ ngày một hiện đại, các ngành công nghiệp trên toàn thế giới đều sử dụng mạng máy tính để hoạt động. Các mạng máy tính đó cần có người tiếp cận và xử lí các sự cố. Vì vậy, ngàn này đang là một lựa chọn đáng để suy nghĩ.

Quản trị mạng là gì?

2. Nghề của quản trị mạng là gì?

Quản trị mạng có nhiệm vụ hỗ trợ, cài đặt, quản lí mạng và hệ thống máy tính. Là những người duy trì phần cứng và phần mềm, khắc phục sự cố và bảo vệ an ninh mạng cho máy tính. Để máy tính được lưu thông một cách hiệu quả và nhanh nhất. Với sự phát triển của công nghệ, các doanh nghiệp áp dụng hầu hết vào máy tính. Vì vậy, đội ngũ nhân viên quản trị mạng là rất quan trọng đối với mỗi doanh nghiệp. Nhờ đó nhu cầu về nguồn lao động của ngành này ngày càng cao.

3. Công việc của quản trị mạng?

Người quản trị hệ thống mạng phải có khả năng thiết lập một mạng máy tính, cấu hình mạng, điều chỉnh hiệu năng hoạt động của mạng máy tính,…Tùy vào doanh nghiệp mà công việc của quản trị mạng cũng khác nhau. Nhưng các công việc chủ yếu là:

  • Quản lí các công cụ bảo mật mạng
  • Duy trì mạng máy tính nội bộ của công ty
  • Xác định và giải quyết sự cố liên quan đến máy tính
  • Cài đặt cấu hình và duy trì phần cứng mạng
  • Nâng cấp phần mềm mạng
  • Điều chỉnh quyền truy cập của người dùng vào các file nhạy cảm chống vi phạm an ninh
  • Tạo và duy trì hệ thống sao lưu và khôi phục các máy chủ mạng quan trọng một cách nhanh chóng
  • Hỗ trợ máy tính tại công ty, bảo trì máy chủ cũng như các thiết bị được kết nối khác,…

4. Những kỹ năng cần có của quản trị mạng?

Nếu muốn học tốt và làm được giỏi về lĩnh vực công nghệ thông tin bạn sẽ phải cần nhiều kĩ năng gộp lại. Nhưng với quản trị mạng thì không cần nhiều như vậy. Bạn chỉ cần nắm vững kĩ năng cơ bản và giỏi nghiệp vụ. Ngoài ra, bạn cần có thêm một số kĩ năng mềm nhất định bạn sẽ làm việc một cách hiệu quả.

Những kĩ năng cứng cần có:

  • Quản trị hệ thống
  • Linux và Unix
  • Cấu hình mạng, cấu hình hệ thống
  • Hỗ trợ kĩ thuật
  • Cisco

Những kĩ năng mềm cần có:

  • Kĩ năng giao tiếp
  • Kĩ năng khắc phục sự cố
  • Kĩ năng tổ chức, sắp xếp
  • Kĩ năng nghiên cứu
  • Dịch vụ khách hàng

Những kỹ năng cần có của quản trị mạng?

5. Mức lương của ngành quản trị mạng

Với nhu cầu cần người của thị trường ngày càng lớn. Việc theo đuổi ngành này đang là một xu hướng hot hiện nay. Vì vậy, ngành này có một mức lương khá hấp dẫn đối với các bạn trẻ hay sinh viên.

Mức lương của ngành này giao động từ 200$- 700$/ tháng tùy vào vị trí làm việc. Ngành quản trị mạng cũng được chia thành nhiều nhóm nhỏ như: bảo mật, thiết kế mạng hay chuyên về các máy chủ. Vì vậy mức lương ở từng nhóm sẽ khác nhau, tùy vào mức độ công việc. Nhưng với ngành này mức lương được đánh giá theo mức lưng trung bình là khá cao.

6. Học quản trị mạng ở đâu?

Aptech là công ty tiên phong trong lĩnh vực đào tạo nghề nghiệp hàng đầu thế giới về Công Nghệ Thông Tin và Truyền Thông Đa Phương Tiện có trụ sở tại Mumbai, Ấn Độ. Khóa học Chuyên gia Quản trị mạng quốc tế của Aptech được xây dựng dựa trên yêu cầu thực tế của các doanh nghiệp hiện nay.

Thông qua chương trình, học viên nắm được các nguyên tắc cơ bản đến nâng cao về hệ thống phần cứng, phần mềm của máy tính và mạng truyền thông. Học viên được đào tạo kỹ năng chuyên nghiệp về lập kế hoạch triển khai, cấu hình, quản trị, xử lý sự cố, thử nghiệm và giám sát hệ thống máy chủ, bảo mật, ảo hóa và công nghệ điện toán đám mây. Kết thúc khóa học, học viên có thể bắt đầu làm việc trong ngành công nghiệp mạng và phần cứng CNTT đang phát triển hiện nay.

Các tính năng AI mới trên dịch vụ Gmail của Google

Gmail cho viết email bằng AI

Các tính năng AI mới trên dịch vụ Gmail của Google
Các tính năng AI mới trên dịch vụ Gmail của Google

Google vừa ra mắt hai tính năng mới trong Gmail, hỗ trợ người dùng soạn thảo và sửa chữa email dễ dàng hơn nhờ trí tuệ nhân tạo (AI). Các tính năng này, dựa trên công nghệ Gemini, hứa hẹn giúp tiết kiệm thời gian và công sức cho việc soạn thảo email.

Polish – Giúp tối ưu hóa email

Tính năng “Polish” được tích hợp trong phần “Help me write”, xuất hiện khi người dùng bắt đầu soạn thảo email mới. AI sẽ cung cấp các gợi ý để người dùng điều chỉnh hoặc thậm chí viết lại toàn bộ nội dung email theo ý muốn. Polish hỗ trợ nhiều tùy chọn như: chuyển văn phong sang trang trọng (Formalize), mở rộng nội dung (Elaborate) hoặc rút ngắn email (Shorten), giúp người dùng dễ dàng tạo ra một bản nháp hoàn chỉnh chỉ từ vài ghi chú đơn giản.

Refine my draft – Cải thiện bản nháp nhanh chóng

Tính năng “Refine my draft” xuất hiện khi bản nháp email đã có ít nhất 12 từ. Tính năng này giúp người dùng cải thiện bản nháp của mình bằng cách điều chỉnh văn phong, mở rộng hoặc rút ngắn nội dung. Đặc biệt, AI còn có thể viết một email hoàn toàn mới nếu người dùng yêu cầu.

Sự tiện lợi trên mọi nền tảng

Các tính năng AI mới không chỉ có trên phiên bản web mà còn được tích hợp vào ứng dụng Gmail trên Android và iOS. Nhờ đó, người dùng có thể sử dụng AI để hỗ trợ việc viết email mọi lúc, mọi nơi, giúp công việc trở nên hiệu quả hơn.

Google Workspace và bước tiến với AI

Không chỉ dừng lại ở Gmail, Google còn có kế hoạch mở rộng việc tích hợp AI vào các ứng dụng khác trong bộ công cụ Google Workspace. Điều này cho thấy tham vọng của Google trong việc sử dụng AI làm trợ lý đắc lực, cải thiện trải nghiệm của người dùng trên không gian mạng.

Google đang dần biến AI thành công cụ không thể thiếu, góp phần nâng cao hiệu quả làm việc và tối ưu hóa quy trình soạn thảo email của hàng triệu người dùng trên toàn cầu.