Phát triển Ứng dụng Phi tập trung
Phát triển Ứng dụng Phi tập trung
Xin chào các bạn!
Môn học thứ ba - Phát triển Ứng dụng Phi tập trung (Decentralized Application Development - Daaps) sẽ trang bị cho bạn kiến thức và kỹ năng để thiết kế và phát triển các ứng dụng phi tập trung (Dapps) đầu cuối - cung cấp cho bất kỳ ai quyền truy cập vào các tính năng và dịch vụ của blockchain. Thông qua môn học, các bạn học viên sẽ học cách sử dụng Truffle IDE, smart contract, ứng dụng web client đơn giản và ứng dụng MetaMask client. Các bạn sẽ tìm hiểu về cấu trúc của Dapps: giao diện khách đầu cuối (front-end client) được hỗ trợ bởi blockchain và các smart contract. Môn học sẽ đề cập tới thiết kế cơ bản của Dapps, quy trình phát triển Truffle và các lệnh (init, develop, test và migrate), phát triển theo hướng thử nghiệm của Dapps, mô hình Dapps và các tiêu chuẩn mới nổi cần thiết cho việc phán đoán hoạt động của Dapps. Bên cạnh đó, xuyên suốt môn học, các bạn sẽ được tìm hiểu và thực hành về TDD (lập trình hướng kiểm thử), cách áp dụng TDD trong môi trường làm việc thực tế cũng như cách áp dụng TDD trong quá trình phát triển một DApp trên thực tế.
Chúc các bạn học tốt!
MỤC TIÊU MÔN HỌC
Sau khi học xong môn này, học viên sẽ đạt được các chuẩn kiến thức, kỹ năng đầu ra như sau:
- Hiểu và thực hành với Test Driven Development (TDD).
- Hiểu được khái niệm và cách thiết lập máy chủ blockchain như là nền tảng trong mô hình ứng dụng phi tập trung (Dapp).
- Biết cách làm việc với môi trường Truffle để phát triển Dapp và kiểm thử.
- Hiểu được các thực tiễn tốt nhất (best practice) để cải thiện thiết kế cơ bản của Dapps.
- Hiểu được đề xuất cải tiến Ethereum và quy trình ERC (Ethereum Improvement Proposal - EIP và Ethereum Request for Comments – ERC).
- Thiết kế và phát triển một ứng dụng phi tập trung.
TRẢI NGHIỆM HỌC TẬP
Để bắt đầu, các bạn nên dành một vài phút khám phá môn học và cấu trúc chung. Môn học sẽ có 4 phần với 11 bài học. Xuyên suốt các bài học và cuối mỗi học phần, các bài thực hành Lab và bài tập lớn (Project) sẽ giúp các bạn tăng cường việc ghi nhớ và vận dung lý thuyết đã học vào các bài toán thực tế. Để việc học tập được hiệu quả, hãy luôn trau dồi kiến thức, không ngừng học hỏi, nghiên cứu và lập cho mình một kế hoạch học tập hợp lý để hoàn thành khóa học một cách xuất sắc.
Trong thời gian học (dự kiến là 6 tuần), việc phân bổ tuần học là rất quan trọng. Nếu các bạn có bất cứ câu hỏi nào hãy kết nối với Mentor để được giải đáp.
CẤU TRÚC MÔN HỌC
Phần 1: Lập trình hướng kiểm thử
- Bài 1 - Giới thiệu về TDD
- Bài 2 - Các khái niệm cốt lõi của TDD
- Bài 3 - TDD with NodeJS
- Bài 4 - Ví dụ thực tiễn về TDD với NodeJS
Assignment 1: Triển khai hàng đợi (Queue) với TDD
Phần 2: Phát triển ứng dụng phi tập trung (Dapps) với Truffle
- Bài 5 - Ứng dụng phi tập trung (Dapps)
- Bài 6 - Phát triểnTruffle
Assignment 2: Kiểm thử hợp đồng thông minh
Phần 3: Cải tiến Thiết kế & Các tiêu chuẩn và mô hình Ứng dụng
- Bài 7 - Cải tiến thiết kế
- Bài 8 - Mô hình và tiêu chuẩn Dapp
Assignment 3: Phát triển một Dapp - Auction
Phần 4: Mô hình & các tiêu chuẩn ứng dụng
- Bài 9 - Daap cho Hợp đồng thông minh Supply Chain (P.1)
- Bài 10 - Daap cho Hợp đồng thông minh Supply Chain (P.2)
- Bài 11 - Kiểm thử Ethereum Apps
Assignment 4: Phát triển một Dapp - FCS - FunixCryptoSims
CHUYÊN GIA THIẾT KẾ VÀ PHẢN BIỆN MÔN HỌC
THIẾT KẾ MÔN HỌC: Vũ Hồng Việt
- Chuyên gia công nghệ của FPT
- Hơn 20 năm kinh nghiệm về phát triển giải pháp phần mềm (CSC & FPT)
- Chuyên gia nghiên cứu về các lĩnh vực: Blockchain, hệ thống giao thông thông minh (ITS)
THIẾT KẾ MÔN HỌC: Nguyễn Đức Minh Quân
- Giám đốc Trung tâm Phát triển Giải pháp Thành phố Thông minh
- Quản lý Giải pháp Phần mềm thông tin FPT
- 10 năm kinh nghiệm về phát triển giải pháp phần mềm
- 7 năm kinh nghiệm R&D và triển khai giải pháp Giao thông Thông minh, giải pháp Thành phố Thông minh
- Chuyên gia nghiên cứu về Blockchain & diễn giả quen thuộc tại Vietnam Web Submit, Vietnam Mobile Day, FPT Tech Day,...
- Online profile: https://www.linkedin.com/in/ducminhquan/
PHẢN BIỆN MÔN HỌC: PGS.TS. Trương Anh Hoàng
- Trưởng phòng Lab Blockchain, ĐH Công nghệ, ĐHQG Hà Nội
- Phó giáo sư ĐH Công nghệ, ĐHQG Hà Nội từ năm 2007
- Bảo vệ luận án tiến sĩ ĐH Bergen, Na-uy (2006) về các hệ thống ngôn ngữ Abstract component
- Hơn 15 năm kinh nghiệm phát triển phần mềm cho di động, Linux, Windows và các nền tảng mạng sử dụng C/C++, VB, C#, Python, JavaScript ở nhiều công ty như Punch Entertainment, Olivetti, Getronics, MITEC
CHUYÊN GIA THIẾT KẾ VÀ PHẢN BIỆN KHUNG CHƯƠNG TRÌNH
TS. Đặng Minh Tuấn
- Trưởng phòng Lab Blockchain, Giảng viên Học viện Công nghệ Bưu chính viễn thông (PTIT)
- Phó chủ tịch tại FINTEC CLUB/Hiệp hội Ngân hàng Việt Nam
- Trưởng Tiểu ban kỹ thuật tại Tiểu ban Kỹ thuật tiêu chuẩn quốc gia SC35
- Tác giả của phần mềm Vietkey
- Hơn 30 năm kinh nghiệm phát triển phần mềm và bảo mật thông tin
Th.S Nguyễn Anh Tú
- Trưởng nhóm Kỹ sư Blockchain tại Tomochain về lĩnh vực Blockchain và Cloud Computing
- Lập trình viên được ủy quyền của Apache Software Foundation và Cloud Native Computing Foundation
- Trưởng nhóm kỹ sư của nhiều phần mềm mã nguồn mở điện toán đám mây (kubeless, kubeapps, kompose, kubewatch)
- Thạc sỹ về Hệ thống Phân tán tại Thụy Sỹ
NGUỒN HỌC LIỆU
Trong thời đại hiện nay, mỗi môn học đều có nhiều nguồn tài liệu liên quan kể cả sách in và online, FUNiX Way không quy định một nguồn học liệu cụ thể mà khuyến cáo để học viên chọn được nguồn phù hợp nhất cho mình. Trong quá trình học từ nhiều nguồn khác nhau theo lựa chọn cá nhân đó, khi sinh viên phát sinh câu hỏi thì sẽ được kết nối nhanh nhất với mentor để được giải đáp. Toàn bộ phần đánh giá bao gồm các câu hỏi trắc nghiệm, bài tập, dự án và thi vấn đáp do FUNiX thiết kế, xây dựng và thực hiện.
Các môn học của FUNiX không quy định bắt buộc tài liệu học tập, sinh viên có thể chủ động tìm và học từ bất kỳ nguồn nào phù hợp, kể cả sách in hay nguồn học liệu online (MOOC) hay các website. Việc sử dụng các nguồn đó do học viên chịu trách nhiệm và đảm bảo tuân thủ các chính sách của chủ sở hữu nguồn, trừ trường hợp họ có sự hợp tác chính thức với FUNiX. Nếu cần hỗ trợ, học viên có thể liên hệ phòng đào tạo FUNiX để được hướng dẫn.
Dưới đây là một số nguồn học liệu của môn học mà học viên có thể tham khảo sử dụng. Việc liệt kê nguồn dưới đây không nhất thiết hàm ý rằng FUNiX có sự hợp tác chính thức với chủ sở hữu của nguồn: Coursera, tutorialspoint, edX Training, or Udemy.
KÊNH PHẢN HỒI
FUNiX sẵn sàng đón nhận và trao đổi về mọi ý kiến góp ý, phản hồi liên quan đến học liệu qua email program@funix.edu.vn