Khóa học

Không thể hiểu phát triển phần mềm nếu bỏ qua ngôn ngữ lập trình. Quả thật, một lập trình viên không có ngôn ngữ lập trình chẳng khác gì tài xế taxi không có xe. Tuy nhiên, mọi thứ phức tạp hơn thế. Cũng như GPS giúp tài xế taxi dễ dàng hơn, Môi trường Phát triển Tích hợp (IDE) cũng làm điều tương tự cho lập trình viên.
IDE được thiết kế để giúp lập trình viên viết mã và phát triển ứng dụng phần mềm hiệu quả hơn. IDE nâng cao năng suất bằng cách tập hợp nhiều tiện ích vào một giao diện duy nhất. Viết, kiểm thử, gỡ lỗi mã cùng các chức năng chỉnh sửa như tô màu cú pháp, khớp dấu ngoặc và tự động hoàn thành mã là những tính năng phổ biến của các IDE hiện đại.
Có nhiều IDE đặc biệt phù hợp cho khoa học dữ liệu, bao gồm DataLab của DataCamp. Trong bài viết này, chúng tôi sẽ giới thiệu JupyterLab, thế hệ tiếp theo của Jupyter Notebook, có lẽ là IDE phổ biến nhất cho khoa học dữ liệu. Ra mắt năm 2018, JupyterLab mang đến giao diện linh hoạt và nhiều tính năng hơn so với Jupyter Notebook cổ điển, và chắc chắn là hiện tại và tương lai của Dự án Jupyter. Muốn bắt đầu với JupyterLab? Hãy tiếp tục đọc!
Giới thiệu ngắn về Jupyter Notebook
Khi Jupyter Notebook lần đầu ra mắt vào năm 2014, nó nhanh chóng tạo ra cuộc cách mạng trong thế giới IDE. Gần đây được xem là một trong những dự án tính toán quan trọng nhất, làm thay đổi mãi mãi quy trình xuất bản khoa học, Jupyter đã trở thành tiêu chuẩn de facto trong khoa học dữ liệu.
Jupyter Notebook hoạt động như một ứng dụng máy chủ - khách, cho phép lập trình viên chỉnh sửa và chạy notebook qua trình duyệt web. Ứng dụng có thể chạy trên máy tính không có Internet hoặc cài trên máy chủ từ xa để bạn truy cập qua Internet.
Ban đầu được thiết kế để hỗ trợ Julia, Python và R – ba trong số những ngôn ngữ lập trình cho khoa học dữ liệu phổ biến nhất – ngày nay, Jupyter hỗ trợ hơn 40 ngôn ngữ lập trình.
Jupyter gồm hai thành phần chính.
- Kernel. Là chương trình chạy và kiểm tra mã của người dùng. Mặc định, Jupyter có kernel cho Python, nhưng cũng có kernel cho các ngôn ngữ khác.
- Bảng điều khiển. Notebook chủ yếu gồm một chuỗi ô (cell), có thể chứa mã, văn bản, trực quan hóa, hình ảnh và công thức. Bên cạnh các ô, bảng điều khiển bao gồm nhiều công cụ để cấu hình quy trình làm việc trong notebook, gỡ lỗi, xuất notebook sang định dạng khác, duyệt tài liệu, v.v.

Là phiên bản cải tiến của Jupyter Notebook, JupyterLab bổ sung nhiều tính năng và khả năng mới, dù các thành phần cốt lõi vẫn giữ nguyên.
Bắt đầu với JupyterLab
Để sử dụng JupyterLab, trước tiên bạn cần cài đặt nó trên máy tính, giống như các chương trình khác. Có thể thực hiện theo nhiều cách, tùy sở thích của bạn: dùng pip, Anaconda hoặc Docker.
Cài đặt JupyterLab với pip
Pip là trình quản lý gói tiêu chuẩn trong Python. Để cài đặt JupyterLab bằng pip, bạn chỉ cần chạy trên dòng lệnh:
>>pip install jupyterlab
Sau khi chạy lệnh này, pip sẽ cài các gói JupyterLab cùng toàn bộ phụ thuộc cần thiết để JupyterLab hoạt động. Nếu bạn muốn tìm hiểu thêm về quản lý gói trong Python, hãy xem Hướng dẫn Pip Python về Quản lý Gói.
Khi đã cài đặt thành công JupyterLab trên máy, bạn chỉ cần chạy lệnh sau để mở JupyterLab:
>>jupyter lab
Sau đó ứng dụng sẽ mở trong trình duyệt web ưa thích của bạn tại địa chỉ: http://localhost:8888/lab

Cài đặt JupyterLab với Anaconda
Anaconda là trình quản lý gói, quản lý môi trường và bản phân phối Python chứa bộ sưu tập nhiều gói nguồn mở. Anaconda là lựa chọn tuyệt vời nếu bạn muốn bắt đầu với khoa học dữ liệu. Bạn không còn phải lo cài Python hay JupyterLab, vì chúng được cài tự động trong các bản Anaconda hiện đại.
Cách dễ nhất để khởi chạy JupyterLab là qua Anaconda Navigator, ứng dụng cho phép bạn sử dụng Anaconda theo cách thân thiện và không cần viết mã. Như bạn thấy trong hình dưới, cả Jupyter Notebook và JupyterLab đều đã được cài. Bạn chỉ cần nhấp nút Launch để mở JupyterLab trên trình duyệt.

Tuy nhiên, trong một số trường hợp – ví dụ khi bạn tạo môi trường conda mới –, bạn có thể cần cài JupyterLab trong môi trường đó. Cách nhanh nhất là chạy lệnh sau trên dòng lệnh conda (Anaconda Prompt trên Windows và terminal trên macOS, Linux):
>>conda install -c conda-forge jupyterlab
Cài đặt JupyterLab với Docker
Docker là nền tảng mở để chạy phần mềm trong các container. Các container là quy trình tự chứa và cách ly, cho phép bạn tách ứng dụng khỏi hạ tầng để triển khai phần mềm nhanh chóng.
Nếu đã cài Docker, bạn có thể cài và dùng JupyterLab bằng cách chọn một trong nhiều ảnh Docker được hỗ trợ bởi Jupyter Docker Stacks. Bạn có thể xem các ảnh này như các gói phần mềm đóng sẵn có thể tự động tải về từ Docker khi bạn chạy chúng.
Ví dụ, nếu bạn muốn cài ảnh jupyter/datascience-notebook của Docker, bao gồm thư viện phân tích dữ liệu cho Julia, Python và R, bạn chỉ cần chạy lệnh sau trong Docker:
>>docker run -it -p 10000:8888 -e JUPYTER_ENABLE_LAB=yes jupyter/scipy-notebook
Để biết thêm chi tiết và ví dụ về cách dùng JupyterLab trên Docker, hãy xem tài liệu. Ngoài ra, để có phần giới thiệu chi tiết về Docker, chúng tôi khuyến nghị hướng dẫn này của DataCamp.
Giao diện JupyterLab
Giao diện JupyterLab là phiên bản làm mới của giao diện Jupyter Notebook, cung cấp tập hợp các khối xây dựng mô-đun mới cho tính toán tương tác và hiệu quả. JupyterLab tích hợp nhiều công cụ mã hóa vào một giao diện duy nhất, mang lại trải nghiệm lập trình giống với các IDE truyền thống hơn.

Giao diện JupyterLab bao gồm các thành phần chính sau:
- Khu vực làm việc. Khu vực làm việc chính có bố cục dạng thẻ (tab) mới cho phép bạn kết hợp các tài liệu khác nhau (notebook, tệp dữ liệu, HTML, pdf, hình ảnh, v.v.) và công cụ mã hóa (terminal, bảng điều khiển mã, trình soạn thảo văn bản, v.v.) thành các bảng thẻ có thể thay đổi kích thước hoặc chia nhỏ bằng thao tác kéo thả. Hệ thống thẻ, vốn không có ở Jupyter Notebook, cho phép lập trình tích hợp và hiệu quả hơn, vì nhà phát triển có thể thực hiện hầu hết tác vụ mà không rời JupyterLab.
- Thanh bên trái. Thanh bên có thể thu gọn này chứa một số thẻ thường dùng, bao gồm:
- Trình duyệt tệp. Cho phép bạn quản lý tệp và thư mục trên máy.
- Trình quản lý thẻ và kernel. Cung cấp danh sách thẻ trong khu vực làm việc chính và các kernel, terminal đang chạy.
- Mục lục. Chỉ mục tương tác dựa trên các tiêu đề trong các ô markdown.
- Trình quản lý tiện ích mở rộng. Cho phép bạn cài ứng dụng và plugin mới để cải thiện trải nghiệm JupyterLab (xem thêm bên dưới).
- Thanh bên phải. Thanh bên thứ hai có thể thu gọn, bao gồm:
- Trình kiểm tra thuộc tính. Cho phép bạn xem chi tiết thông tin và thuộc tính của các ô.
- Trình gỡ lỗi (xem thêm bên dưới)
- Thanh menu. Thanh menu ở trên cùng của JupyterLab bao gồm các menu cấp cao với hành động khả dụng trong JupyterLab. Các menu gồm:
- File: các hành động liên quan tới tệp và thư mục.
- Edit: các hành động chỉnh sửa tài liệu và hoạt động khác.
- View: các hành động thay đổi diện mạo JupyterLab.
- Run: các hành động chạy mã trong các hoạt động khác nhau.
- Kernel: các hành động quản lý kernel.
- Tabs: danh sách tài liệu và hoạt động đang mở trong khu vực làm việc.
- Settings: cài đặt chung và trình chỉnh sửa cài đặt nâng cao. Một trong những điểm thú vị của JupyterLab là khả năng chọn chủ đề giao diện khác nhau, bao gồm Chế độ Tối.
- Help: danh sách liên kết trợ giúp cho JupyterLab và kernel.
Gỡ lỗi trong JupyterLab
Mục tiêu của gỡ lỗi là chỉ ra nguyên nhân gây lỗi trong chương trình trong quá trình kiểm thử, từ đó điều chỉnh mã để cho ra kết quả chính xác mong muốn.
Những người làm dữ liệu, và rộng hơn là nhà phát triển phần mềm, theo dõi tương tác và thay đổi của các biến trong chương trình khi gỡ lỗi. Bạn có thể điều tra nguyên nhân tiềm ẩn của lỗi bằng cách xem mỗi hàm, phương thức hoặc thậm chí từng dòng mã làm thay đổi giá trị và chức năng của biến ra sao.
Jupyter Notebook và các phiên bản đầu của JupyterLab tích hợp lệnh magic %debug để thực hiện gỡ lỗi. Tuy nhiên, công cụ này khá sơ khai so với các trình gỡ lỗi trong IDE khác.
May mắn thay, các phiên bản mới nhất của JupyerLab bao gồm sẵn giao diện Debugger. Nó có đầy đủ khả năng gỡ lỗi truyền thống, như đặt breakpoint, bước vào hàm và kiểm tra biến. Bạn có thể kích hoạt từ thanh bên phải, như minh họa dưới đây:

Tiện ích mở rộng JupyterLab
JupyterLab vốn đã là công cụ mạnh mẽ và được trang bị tốt, với nhiều tính năng giúp trải nghiệm mã hóa giống IDE hơn. Tuy vậy, nếu bạn thấy thiếu chức năng nào đó hoặc muốn tăng cường khả năng của JupyterLab, hãy xem các Tiện ích mở rộng của Jupyter.
Được viết bằng JavaScript, tiện ích mở rộng JUpyterLab là các phần mềm chứa một hoặc nhiều plugin để bổ sung khả năng mới cho JupyterLab, chẳng hạn chủ đề mới, trình chỉnh sửa tệp và phím tắt lệnh mới.
Có hai loại tiện ích mở rộng JupyterLab:
- Tiện ích dựng sẵn. Không yêu cầu biên dịch lại JupyterLab.
- Tiện ích dạng mã nguồn. Yêu cầu biên dịch lại JupyterLab khi cài đặt. Quá trình biên dịch lại cần Node.js – môi trường đa nền tảng, mã nguồn mở để chạy ứng dụng JavaScript – được cài đặt.
Nếu bạn dùng conda với các gói conda-forge, bạn có thể cài Node.js bằng:
>>conda install -c conda-forge nodejs
Có nhiều cách quản lý tiện ích mở rộng JupyterLab, nhưng chúng tôi khuyến nghị dùng Trình quản lý Tiện ích mở rộng tích hợp. Truy cập qua biểu tượng mảnh ghép trên thanh bên trái, Trình quản lý tiện ích cho phép bạn cài và vô hiệu hóa tiện ích mà không cần viết mã.

Để biết thêm thông tin về tiện ích mở rộng JupyterLab và cách quản lý chúng, hãy xem tài liệu JupyterLab.
JupyterLab so với Jupyter Notebook
Dưới đây là bảng so sánh giữa Jupyter Notebook và JupyterLab:
|
Jupyter Notebook |
JupyterLab |
|
|
Ngày phát hành |
2014 |
2018 |
|
Mã nguồn mở? |
Có |
Có |
|
Hệ thống thẻ |
Một thẻ |
Nhiều thẻ mô-đun, tất cả trong một khung nhìn |
|
Khả năng gỡ lỗi |
Lệnh magic %debug |
Trình gỡ lỗi |
|
Trình xem tệp dữ liệu |
Tệp dữ liệu hiển thị như tệp văn bản |
Dữ liệu có thể xem ở định dạng bảng |
|
Trải nghiệm mã hóa |
Cảm giác như công cụ độc lập |
Cảm giác như một IDE |
|
Chủ đề mặc định |
Màu trắng |
Sáng và Tối |
|
Ưu điểm |
|
|
|
Nhược điểm |
|
|
|
Phát triển trong tương lai |
Vẫn là phiên bản cũ để kế thừa |
Tương lai của Dự án Jupyter |
DataLab
Nếu bạn đang tìm một IDE trực tuyến trên đám mây cho phép viết mã và phân tích dữ liệu cộng tác, cũng như chia sẻ insight dữ liệu, DataLab là lựa chọn tuyệt vời.
Được xây dựng bởi DataCamp, DataLab là nền tảng phân tích dữ liệu trên đám mây được thiết kế để giúp bạn bắt đầu nhanh chóng và dễ dàng. Với DataLab, bạn có thể bỏ qua bước thiết lập tốn thời gian và bắt đầu làm việc với dữ liệu ngay. Không cần cài đặt gì, vì mọi thứ đều truy cập qua trình duyệt.
Khi sử dụng DataLab, bạn sẽ thấy các tập dữ liệu dựng sẵn có thể dùng ngay, cũng như mẫu dựng sẵn với mã viết sẵn. DataLab phù hợp với mọi trình độ, có sẵn công cụ ít hoặc không cần mã để tạo báo cáo và trực quan hóa ấn tượng.
Nó cũng hỗ trợ Python và R, cả hai đều có tích hợp SQL gốc và đi kèm cấu hình, cài đặt sẵn các gói khoa học dữ liệu phổ biến nhất thế giới.
Chạy và chỉnh sửa mã từ hướng dẫn trực tuyến này
Chạy mãKết luận
Bạn đã đọc đến cuối. Chúc mừng! Hy vọng bạn thích hướng dẫn về JupyterLab này. Nhờ cấu trúc dựa trên ô, tập trung vào tính tương tác và khám phá, Jupyter nhanh chóng trở thành công cụ mang tính cách mạng, là IDE ưa thích của các chuyên gia dữ liệu. So với Jupyter Notebook, JupyterLab là công cụ tinh chỉnh hơn, kết hợp những điểm tốt nhất của notebook và các IDE truyền thống như RStudio và PyCharm.
Vì vậy, nếu bạn mới bước vào khoa học dữ liệu và băn khoăn nên chọn Jupyter Notebook hay JUpyterLab, chúng tôi khuyến nghị mạnh mẽ bạn chọn phương án sau. Muốn biết thêm về Jupyter? Hãy xem các tài liệu DataCamp sau:
- Hướng dẫn Giao diện SQL trong JupyterLab
- Hướng dẫn Jupyter Notebook: Cẩm nang toàn diện
- Hướng dẫn Markdown trong Jupyter Notebook
- Jupyter Notebook Cheat Sheet
Câu hỏi thường gặp về JupyterLab
- IDE là gì?
IDE là các chương trình được thiết kế để giúp lập trình viên viết mã và phát triển ứng dụng phần mềm hiệu quả hơn. IDE tăng năng suất bằng cách tập hợp nhiều tiện ích vào một giao diện duy nhất. - JupyterLab là gì?
JupyterLab là IDE dựa trên web mới nhất của Jupyter dành cho notebook, mã và dữ liệu. - Notebook là gì?
Notebook là tài liệu chứa các thành phần như mã, phương trình, trực quan hóa và văn bản, theo cấu trúc dựa trên ô. - Tôi có thể dùng Python trong JupyterLab không?
Có, cũng như các ngôn ngữ lập trình cho khoa học dữ liệu khác như R và Julia - Trình quản lý Tiện ích mở rộng JupyterLab là gì?
Công cụ cho phép bạn cài ứng dụng và plugin mới để cải thiện trải nghiệm JupyterLab - Tôi nên chọn Jupyter Notebook hay JupyterLab?
Vì JupyterLab là hiện tại và tương lai của Dự án Jupyter, chúng tôi khuyến nghị bạn chọn JupyterLab.