ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
THỰC TẬP TỐT NGHIỆP
ĐỀ TÀI: Xây dựng công cụ hỗ trợ quản lý khối lượng công việc
Công ty thực tập: GEEK UP TECHNOLOGY JSC
Lớp: SE501.M21
Sinh viên thực hiện: Hà Minh Quang – 18521293
TP. Hồ Chí Minh, ngày 15 tháng 06 năm 2022
Hà Minh Quang
Báo cáo thực tập
NHẬN XÉT CỦA KHOA
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
2
Hà Minh Quang
Báo cáo thực tập
MỤC LỤC
CHƯƠNG 1: GIỚI THIỆU CƠNG TY THỰC TẬP
7
1. Giới thiệu chung về cơng ty
7
2. Cơ cấu tổ chức
8
3. Tổng quan việc kinh doanh
9
4. Văn hóa cơng ty
12
5. Một số hình ảnh cơng ty
13
CHƯƠNG 2: NỘI DUNG THỰC TẬP
1. Công nghệ, giải pháp và quy trình áp dụng
1.1.
Giới thiệu về Git
15
1.2.
Giới thiệu về Visual Studio Code
18
1.3.
Giới thiệu về mơ hình làm việc Agile – Scrum
19
1.4.
Tìm hiểu về RESTful API
24
1.5.
Tìm hiểu về NodeJS
25
1.6.
Tìm hiểu về NestJS
26
1.7.
Tìm hiểu về ReactJS
27
1.8.
Tìm hiểu về Redux
27
1.9.
Redux Saga
29
Tìm hiểu về Ant Design
30
1.10.
2.
15
15
Dự án O-Geek
31
2.1.
Bối cảnh ra đời của O-Geek
31
2.2.
Nhiệm vụ của sinh viên được giao
31
2.3.
Ý nghĩa tên của Website – O-Geek
32
2.4.
Mục tiêu xây dựng O-Geek
32
CHƯƠNG 3: NHẬT KÝ THỰC TẬP
34
CHƯƠNG 4: KẾT QUẢ ĐẠT ĐƯỢC QUA ĐỢT THỰC TẬP
1. Kết quả thu được
36
36
2. Các điểm yếu của bản thân
37
3. Gợi ý cho chương trình học
37
4. Cảm nhận về cơng ty
37
3
Hà Minh Quang
Báo cáo thực tập
LỜI NÓI ĐẦU
Ngày nay, ngành công nghiệp phát triển ứng dụng web là một bộ phận không
thể thiếu của ngành công nghiệp phần mềm. Với tốc độ phát triển vô cùng mạnh mẽ,
ngành phát triển ứng dụng web đã và đang là nhân tố kích thích sự phát triển của cơng
nghệ thơng tin thế giới, cả về phần cứng và phần mềm.
Cùng với xu thế phát triển của thế giới, Việt Nam cũng không phải ngoại lệ.
Ngành công nghiệp phát triển web non trẻ tại Việt Nam đã và đang phát triển mạnh
mẽ, để hòa nhập với những công ty hàng đầu về xây dựng nền tảng web trên thế giới.
Bên cạnh sự phát triển của web thì những ngành nghề được tiếp cận người dùng một
cách nhanh chóng như những gì ta có thể thấy là mạng xã hội hay những website bán
hàng trực tuyến cũng đang rất thịnh hành trên cả thế giới lẫn Việt Nam.
Sau gần bốn năm học tập trên trường, với mong muốn trau dồi kinh nghiệm
thực tế, cũng như tìm hiểu và bổ sung kiến thức trong một mơi trường làm việc
chuyên nghiệp, em dự định sẽ thực tập trong học kỳ. Vì vậy, em quyết định chọn
Cơng ty Cổ phần Công nghệ GEEK Up - một môi trường lý tưởng, hiện đại và chuyên
nghiệp - đây là nơi sẽ giúp em thực hiện dự định này.
4
Hà Minh Quang
Báo cáo thực tập
LỜI CẢM ƠN
Em xin chân thành cảm ơn ban giám hiệu và quý Thầy Cô trường Đại học
Công nghệ Thông tin đã cung cấp và bồi dưỡng cho em những kiến thức cơ bản trong
suốt 4 năm ngồi trên giảng đường đại học, để từ đó em có nền tảng áp dụng vào đợt
thực tập một cách hiệu quả nhất có thể.
Em xin gửi lời cảm ơn Quý Công ty Cổ phần Công nghệ GEEK Up đã tạo điều
kiện cho em thực tập tại công ty cũng như cung cấp, bổ sung cho em những kiến thức
mà em cịn thiếu sót. Q cơng ty đã hỗ trợ em rất nhiều trong suốt thời gian thực tập
vừa qua, dạy em những kỹ năng cần thiết, truyền đạt cho em những kinh nghiệm mà
các anh chị đã trải qua trong quá trình làm việc, trao đổi với khách hàng, tác phong và
tinh thần trách nhiệm trước công việc được giao, những suy nghĩ tích cực. Các anh chị
cũng đã tạo cho em nhiều điều kiện để ứng dụng những kiến thức đã học vào thực tế
để xây dựng những dự án thực tiễn đi từ lúc ban đầu, nâng cao trình độ, cũng như tốc
độ lập trình và trí thức thêm một bậc. Em xin chân thành cảm ơn.
Vì kiến thức bản thân cịn hạn chế cũng như là lần đầu tiên được va chạm và
tiếp xúc với thực tế, áp dụng lý thuyết vào công việc nên bản thân cịn bỡ ngỡ và lúng
túng, khơng tránh khỏi những thiếu sót, mong Q Thầy Cơ có thể đóng góp ý kiến để
em có thể hồn thiện hơn.
Em xin chân thành cảm ơn!
Hà Minh Quang
TP. Hồ Chí Minh, ngày 15 tháng 06 năm 2022
5
Hà Minh Quang
Báo cáo thực tập
DANH MỤC CÁC CỤM TỪ VIẾT TẮT
PP
API
: People Operation
: Application Programming Interface
6
Hà Minh Quang
Báo cáo thực tập
CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP
I.
Giới thiệu chung về công ty
Tên đơn vị: Công ty Cổ phần Công nghệ GEEK Up (GEEK UP TECHNOLOGY
JSC).
Lĩnh vực hoạt động: Xuất bản phần mềm.
Địa chỉ: Văn phòng: 244/31 Huỳnh Văn Bánh, Phường 11, Quận Phú Nhuận, TP. Hồ
Chí Minh.
Chi nhánh: 27B / 9 Nguyễn Đình Chiểu, Phường Đa Kao, Quận 1, TP. Hồ Chí Minh.
Trang web: www.geekup.vn
Email:
Điện thoại: (+84) 28 6262 4400
Thời gian làm việc: Thứ 2 đến thứ 6: 08h30 - 17h30
Slogan: “Insightful development”
Sứ mệnh: Xây dựng sản phẩm phần mềm mang lại nhiều giá trị cho người dùng
Giá trị cốt lõi:
● Honesty: sống hết mình với đam mê, là chính mình và phấn đấu hướng tới
những giá trị chung.
● Geeks Get it done: ln cố gắng hồn thành cơng việc đạt kết quả mong đợi.
● High Standard: luôn thử thách bản thân để nâng cao trình độ chun mơn.
● Stay Hungry Stay Foolish: không dừng lại với khả năng hiện tại, luôn tiếp tục
trau dồi học hỏi.
7
Hà Minh Quang
Báo cáo thực tập
Hình 1.1: Logo Cơng ty Cổ phần Công nghệ Geek Up
GEEK Up là công ty tư vấn, xây dựng và cung cấp sản phẩm công nghệ phần
mềm tối ưu nhất cho cộng đồng, doanh nghiệp và cá nhân: đối tác của công ty bao
quát từ các công ty khởi nghiệp cho đến các doanh nghiệp lớn. Mục tiêu của công ty
là tạo ra những giá trị tích cực cũng như những sản phẩm đẳng cấp phù hợp với các
tiêu chuẩn quốc tế. GEEK Up không ngừng gia tăng giá trị cộng đồng bằng khả năng
cung cấp cho khách hàng những sản phẩm và dịch vụ chất lượng cao nhất trong các
lĩnh vực phát triển phần mềm. Công ty sẽ phát triển và cung cấp phần mềm đúng thời
gian, trong phạm vi ngân sách và chất lượng cao nhất đem đến cho khách hàng sự hài
lòng tuyệt đối, lợi nhuận tối đa, sự phát triển mạnh mẽ của thương hiệu sản phẩm.
Nắm bắt nhu cầu và thường xuyên cập nhật xu hướng trong ngành, mỗi một
thành viên của công ty luôn không ngừng nâng cao khả năng của bản thân để mang
đến giá trị tích cực cho khách hàng.
II.
Cơ cấu tổ chức
GEEK Up được tổ chức theo mơ hình phẳng. Một thành viên sẽ đóng các vai
trị linh hoạt trong các nhóm tổ chức khác nhau:
●
Squad: các thành viên trong cùng một nhóm cùng nhau thực hiện các
công việc cần thiết để đạt được mục tiêu (goal) chung của dự án.
●
Chapter: các thành viên trong cùng một nhóm có chung chun mơn
(expertise), mục đích là hỗ trợ nhau về mặt chuyên môn, cùng nhau trưởng thành
về mặt chuyên môn.
8
Hà Minh Quang
●
Báo cáo thực tập
Guild: các thành viên trong cùng một nhóm có chung một sở thích
(interest), mối quan tâm nào đó, mục đích là cùng tham gia các hoạt động thuộc
về sở thích, các mối quan tâm ngồi cơng việc.
Hình 1.2: GEEK Up Organization Chart
III. Tổng quan việc kinh doanh
GEEK Up là công ty phần mềm được thành lập từ năm 2014, với đội ngũ hơn
100 thành viên của GEEK Up đã phát triển hơn 300 dự án phần mềm, tạo ra hơn 480
sản phẩm phần mềm mang lại giá trị cao về kinh doanh cho những khách hàng lớn
trên thế giới như SMRT (Singapore), Nikkei (Nhật), D2O (Mỹ). Riêng ở Việt Nam,
GEEK Up là đối tác tin cậy số 1 trong các dự án chuyển đổi số (digital
transformation) cho các doanh nghiệp hàng đầu như: ACB, TPBank, Heineken, FPT,
Viettel, ELSA….
Một số sản phẩm GEEK Up đã xây dựng và được ứng dụng trên thị trường Việt
Nam hiện tại:
9
Hà Minh Quang
Báo cáo thực tập
1. The Coffee House - Chuỗi cà phê tăng trưởng nhanh số 1 tại Việt Nam
Hình 1.3. UI Design - The Coffee House - Loyalty Application
2. Wall Street English application - Simple & fun booking app for English
class
Visit site: />
10
Hà Minh Quang
Báo cáo thực tập
Hình 1.4. UI Design - Wall Street English - Class booking application
3. Wumbo – A high-level project management solution
Visit site: />
Hình 1.5. UI design – Wumbo – A project management solution
11
Hà Minh Quang
Báo cáo thực tập
Bên cạnh việc phát triển sản phẩm phần mềm, GEEK Up đã đầu tư và kinh
doanh GEEK Hub - Cafeteria & Workspace, một không gian học tập, làm việc và trao
đổi kiến thức.
IV. Văn hóa cơng ty
Văn hóa ở GEEK Up được xây dựng theo các giá trị cốt lõi:
●
“Awesome Comrade”: Luôn luôn ủng hộ và sẵn sàng nỗ lực hơn nữa để giúp
nhóm và đồng đội của mình tiến về phía trước.
●
“Commitment”: Giữ lời hứa, sẵn sàng thực hiện lời hứa bằng mọi giá.
●
“Contribution”: Đóng góp phát triển nhóm ngay cả khi khơng thuộc trách
nhiệm của bạn.
●
“Ownership”: Suy nghĩ, quan tâm và hành động, vì quyền lợi nhóm cũng là
quyền lợi của cá nhân.
Thời gian làm việc từ thứ 2 đến thứ 6: 08h30 – 17h30.
Thời gian nghỉ trưa từ 11:30 PM đến 1:30 PM, tất cả nhân viên có thể ăn trưa
và nghỉ ngơi trước khi bắt đầu công việc vào buổi chiều.
Nhân viên được khuyến khích sử dụng tiếng Anh khi giao tiếp. Nhân viên công
ty sau mỗi giờ làm việc đều phải ghi rõ thời gian thực hiện các "task" của dự án, để
đảm bảo rằng dự án đang được thực hiện. Đồ ăn nhẹ, trà, cà phê, trái cây miễn phí cho
tất cả nhân viên vào thời gian nghỉ ngơi.
Vào cuối ngày làm việc thứ 3 và thứ 5, công ty tổ chức Workshop về những
kinh nghiệm trong công việc cũng như trong cuộc sống, giúp trau dồi những kiến thức
chuyên môn cũng như những kỹ năng mềm cho nhân viên công ty.
Thứ 6 sẽ diễn ra "Friday Meetup" là nơi nhân viên cơng ty bày tỏ lịng cảm ơn
với những đồng đội của mình trong tuần vừa qua. Kết thúc là một bữa tiệc nhẹ cho
cuối tuần và không gian tự do để mọi người chia sẻ với nhau.
12
Hà Minh Quang
V.
Báo cáo thực tập
Một số hình ảnh cơng ty
Hình 1.6: Tầng trệt của cơng ty GEEK Up.
Hình 1.7: Buổi Thursday Workshop về kỹ năng mềm.
13
Hà Minh Quang
Báo cáo thực tập
Hình 1.8: Buổi Friday Meetup - Nơi bày tỏ lòng biết ơn với những đồng đội trong suốt
tuần vừa qua.
Hình 1.9: Phịng làm việc của thực tập sinh.
14
Hà Minh Quang
Báo cáo thực tập
Hình 1.10: Cuộc họp của bộ phận Design.
CHƯƠNG 2: NỘI DUNG THỰC TẬP
I.
Công nghệ, giải pháp và quy trình áp dụng
1. Giới thiệu về Git
Hình 2.1: Mơ hình cơng cụ Git.
15
Hà Minh Quang
Báo cáo thực tập
Git là tên gọi của một Hệ thống quản lý phiên bản phân tán (Distributed
Version Control System – DVCS) là một trong những hệ thống quản lý phiên bản
phân tán phổ biến nhất hiện nay. DVCS nghĩa là hệ thống giúp mỗi máy tính có thể
lưu trữ nhiều phiên bản khác nhau của một mã nguồn được nhân bản (clone) từ một
kho chứa mã nguồn (repository), mỗi thay đổi vào mã nguồn trên máy tính sẽ có thể
ủy thác (commit) rồi đưa lên máy chủ nơi đặt kho chứa chính. Và một máy tính khác
(nếu họ có quyền truy cập) cũng có thể clone lại mã nguồn từ kho chứa hoặc clone lại
một tập hợp các thay đổi mới nhất trên máy tính kia. Trong Git, thư mục làm việc trên
máy tính gọi là Working Tree.
Hình 2.2: Sơ đồ liên hệ giữa các máy tính.
Ngồi ra, có một cách hiểu khác về Git đơn giản hơn đó là nó sẽ giúp bạn lưu
lại các phiên bản của những lần thay đổi vào mã nguồn và có thể dễ dàng khơi phục
16
Hà Minh Quang
Báo cáo thực tập
lại dễ dàng mà không cần copy lại mã nguồn rồi cất vào đâu đó. Và một người khác
có thể xem các thay đổi của bạn ở từng phiên bản, họ cũng có thể đối chiếu các thay
đổi của bạn rồi gộp phiên bản của bạn vào phiên bản của họ. Cuối cùng là tất cả có thể
đưa các thay đổi vào mã nguồn của mình lên một kho chứa mã nguồn.
Cơ chế lưu trữ phiên bản của Git là nó sẽ tạo ra một “ảnh chụp” (snapshot) trên
mỗi tập tin và thư mục sau khi commit, từ đó nó có thể cho phép bạn tái sử dụng lại
một ảnh chụp nào đó mà bạn có thể hiểu đó là một phiên bản. Đây cũng chính là lợi
thế của Git so với các DVCS khác khi nó khơng “lưu cứng” dữ liệu mà sẽ lưu với
dạng snapshot.
Hình 2.3: Sơ đồ cơ cấu của Git.
-
Master: là nhánh chính, chạy trên mơi trường production.
-
Dev: là nhánh replica cho nhánh master kết hợp với các nhánh feature đang
được phát triển.
-
Feature: được tách từ nhánh dev, chức năng sau khi được phát triển sẽ được
merge vào dev trước khi merge vào master.
17
Hà Minh Quang
Báo cáo thực tập
Hình 2.4: Git branching.
2. Giới thiệu về Visual Studio Code
Hình 2.5: Chương trình Visual Studio Code
Visual Studio Code là sản phẩm của Microsoft, ra mắt vào tháng 4 năm 2015
ở hội nghị Build. Đặc điểm nổi bật là đơn giản, gọn nhẹ, dễ dàng cài đặt. Visual
Studio Code có thể cài đặt được trên cả Windows, Linux và Mac OS và hỗ trợ nhiều
ngôn ngữ khác nhau.
18
Hà Minh Quang
Báo cáo thực tập
Hình ảnh giao diện ban đầu của VSCode như sau:
Hình 2.6: Giao diện ban đầu của Visual Studio Code.
Khi nhìn sang thanh sidebar, chúng ta thấy 4 biểu tượng, đầu tiên là hai tờ giấy
xếp chồng lên nhau, đây là cây thư mục chứa những file mà nhà phát triển đang làm
việc. Hình chiếc kính lúp hỗ trợ chức năng tìm kiếm. Một điểm đặc biệt là Visual
Studio Code được tính hợp ln Git, rất tiện cho việc quản lý code.
Biểu tượng thứ 4 là diệt con bọ, chính là chức năng hỗ trợ fix bug. Hình vng
cuối cùng cho phép nhà phát triển cài đặt thêm extension mà Microsoft và cộng đồng
nhà phát triển trên thế giới viết thêm nhằm hỗ trợ quá trình code thuận tiện hơn.
3. Giới thiệu về mơ hình làm việc Agile – Scrum
● Tại sao cần Agile?
Sự khác nhau giữa phương pháp làm việc truyền thống-Waterfall và Agile có thể
tổng kết trong 2 từ: cứng nhắc và linh hoạt. Trong khi Waterfall là 1 process khá cứng
nhắc và nguyên tắc, thì Agile lại rất linh hoạt và khơng ngừng thay đổi sao cho phù
hợp với thời đại và ý kiến của khách hàng . Chi tiết hơn về sự khác nhau như sau:
19
Hà Minh Quang
-
Báo cáo thực tập
Waterfall là quy trình có cấu trúc, chúng ta không thể bắt đầu công đoạn
mới cho đến khi cơng đoạn trước đấy được hồn thành. Agile là một quy
trình linh hoạt, cho phép chúng ta chạy dự án theo cách mong muốn.
Waterfall là tuần tự, và Agile khơng tn theo một quy trình tuần tự nào.
-
Các dự án theo quy trình Waterfall cần phải xác định cụ thể yêu cầu của dự
án, trong khi các yêu cầu trong dự án Agile có thể thay đổi và phát triển.
-
Trong các dự án Waterfall, chúng ta không thể thay đổi những công việc đã
thực hiện ở công đoạn trước, tuy nhiên, Agile rất phù hợp và có thể đáp ứng
sự thay đổi này.
Hình 2.7: Mơ hình Agile và Waterfall.
Khi một sản phẩm được xây dựng theo mô hình Waterfall, các cơng việc trong
dự án được xác định theo nguyên tắc ban đầu, và không tiếp thu ý kiến của người
dùng trong quá trình xây dựng sản phẩm. Việc dành nhiều thời gian cho một sản phẩm
mà không biết rằng mức độ khả thi cũng như những mối quan tâm của người dùng sẽ
gây ảnh hưởng rất nhiều đến chất lượng sản phẩm.
Trong khi đó, Agile hỗ trợ nhà phát triển có thể nhận dạng, điều chỉnh các vấn
đề và khiếm khuyết một cách nhanh chóng. Các điểm mạnh của Agile bao gồm:
20
Hà Minh Quang
-
Báo cáo thực tập
Thực hiện thay đổi dễ dàng: Bởi vì dự án được chia thành các phần nhỏ,
riêng biệt, không phụ thuộc lẫn nhau, nên những thay đổi được thực hiện
rất dễ dàng, ở bất kỳ giai đoạn nào của dự án.
-
Không cần phải nắm mọi thông tin ngay từ đầu: Phù hợp với những dự án
chưa xác định được mục tiêu cuối cùng rõ ràng, vì việc này không quá cần
thiết trong giai đoạn đầu.
-
Bàn giao nhanh hơn: Việc chia nhỏ dự án cho phép đội ngũ có thể tiến
hành kiểm tra theo từng phần, xác định và sửa chữa vấn đề nhanh hơn, nhờ
đó việc bàn giao công việc sẽ nhất quán và thành công hơn.
-
Chú ý đến phản hồi của khách hàng và người dùng: Cả khách hàng và
người dùng cuối đều có cơ hội để đóng góp các ý kiến và phản hồi, từ đó họ
sẽ có ảnh hưởng một cách mạnh mẽ và tích cực tới sản phẩm cuối cùng.
-
Cải tiến liên tục: Agile khuyến khích thành viên trong đội ngũ làm việc và
khách hàng cung cấp phản hồi của mình, khi đó các giai đoạn khác nhau
của sản phẩm cuối có thể được kiểm tra và cải thiện lại nhiều lần nếu cần.
Trong ngành công nghiệp phần mềm, phương thức sản xuất phần mềm có một
vai trị vơ cùng quan trọng, nó quyết định cấu trúc tổ chức, quy trình phát triển, khả
năng thành công của các dự án. Trong những năm gần đây Agile-Scrum nổi lên và
thay thế mơ hình thác nước (Waterfall) truyền thống như một phương thức tổ chức
sản xuất ưu việt được nhiều công ty phần mềm áp dụng và thành công. Quản lý dự án
theo nguyên tắc Agile nổi lên như một sự thay thế tối ưu cho bất kỳ dự án nào.
21
Hà Minh Quang
Báo cáo thực tập
Hình 2.8: Quy trình Agile.
● Định nghĩa mơ hình Agile
Khái niệm Agile (viết tắt của Agile Software Development) có nghĩa là
phương thức phát triển phần mềm linh hoạt, được ứng dụng trong quy trình phát triển
phần mềm với mục tiêu là đưa sản phẩm đến tay người dùng càng nhanh càng tốt.
Nguyên tắc phát triển mơ hình là phân đoạn lặp (iterative) và tăng trưởng
(incremental), theo đó nhu cầu và giải pháp tiến hóa thơng qua sự hợp tác giữa các
nhóm tự quản và liên chức năng.
Rất nhiều nơi định nghĩa Agile như một phương pháp. Thực chất, Agile giống
như một phương pháp luận, một triết lý dựa trên hơn nguyên tắc phân đoạn vòng lặp
(iterative) và tăng trưởng (incremental).
Ngày nay, triết lý Agile đã vượt xa khỏi khu vực truyền thống của mình là phát
triển phần mềm để đóng góp sự thay đổi trong cách thức làm việc, quản lí, sản xuất ở
các ngành khác như sản xuất, dịch vụ, sales, marketing, giáo dục... và trở thành một
phương thức quản lý dự án phổ biến nhất hiện nay với nhiều đại diện được gọi là các
phương pháp “họ Agile”.
22
Hà Minh Quang
Báo cáo thực tập
● 4 tôn chỉ trong Agile
-
Cá nhân và sự tương hỗ quan trọng hơn quy trình và cơng cụ: Trọng tâm đặt
lên con người, xây dựng tương tác và hỗ trợ giữa các thành viên trong nhóm.
Những thành viên có năng lực, chịu tương trợ nhau trong công việc sẽ mang
đến thành công cho dự án.
-
Sản phẩm dùng được tốt hơn tài liệu đầy đủ: Tập trung thời gian để làm ra
phần mềm hoàn chỉnh đáp ứng hoàn hảo yêu cầu khách hàng.
-
Cộng tác với khách hàng quan trọng hơn đàm phán hợp đồng: Hiểu được
khách hàng cần gì để tư vấn và điều chỉnh sản phẩm thay vì chỉ dựa vào các
điều khoản trong hợp đồng.
-
Phản hồi thay đổi hơn là bám sát kế hoạch: Agile khuyến khích thích nghi
với sự thay đổi, đó có thể là thay đổi về công nghệ, nhân sự, deadline,...
12 Ngun tắc
●
-
Đáp ứng tồn diện nhu cầu khách hàng thơng qua việc giao hàng sớm và sản
phẩm có giá trị.
-
Thay đổi u cầu được chào đón, thậm chí là rất muộn trong quá trình phát
triển.
-
Giao phần mềm chạy được cho khách hàng một cách thường xuyên.
-
Nhà kinh doanh và các kỹ sư phần mềm cần làm việc cùng nhau trong suốt
dự án.
-
Xây dựng dự án xung quanh các cá nhân có động lực. Cung cấp sự hỗ trợ
cần thiết, mơi trường làm việc và niềm tin để hồn thành cơng việc.
-
Trao đổi trực tiếp là cách truyền đạt thông tin hiệu quả nhất.
-
Thước đo chính của tiến độ là phần mềm chạy tốt.
-
Phát triển liên tục và bền vững.
-
Cải tiến sự linh hoạt bằng cách quan tâm đến kỹ thuật và thiết kế.
-
Nghệ thuật tối đa hóa lượng cơng việc chưa xong - Sự đơn giản là cần thiết.
-
Nhóm tự tổ chức
-
Thích ứng thường xuyên với những thay đổi.
23
Hà Minh Quang
Báo cáo thực tập
● Các bước làm việc theo Agile - Scrum
Scrum định nghĩa quy tắc cho 4 sự kiện chủ chốt nhằm tạo môi trường và quy
cách hoạt động và cộng tác cho các thành viên trong dự án. Các sự kiện này diễn ra
trước khi Sprint bắt đầu (là sự kiện lập kế hoạch – Sprint Planning), trong khi Sprint
diễn ra (sự kiện Daily Scrum) và sau khi Sprint kết thúc (sự kiện Sprint Review và
Sprint Retrospective).
-
Sprint Planning (Họp Kế hoạch Sprint- Iteration): Nhóm phát triển gặp gỡ
với Product Owner để lên kế hoạch làm việc cho một Sprint (xem thêm phần
Sprint bên dưới). Công việc lập kế hoạch bao gồm việc chọn lựa các yêu
cầu cần phải phát triển, phân tích và nhận biết các công việc phải làm kèm
theo các ước lượng thời gian cần thiết để hoàn tất các tác vụ. Chia nhỏ cơng
việc thành các backlog (task) để có thể theo dõi tiến độ dự án dễ dàng hơn.
Scrum sử dụng cách thức lập kế hoạch từng phần và tăng dần theo thời gian,
theo đó, việc lập kế hoạch khơng diễn ra duy nhất một lần trong vòng đời
của dự án mà được lặp đi lặp lại, có sự thích nghi với các tình hình thực tiễn
trong tiến trình đi đến sản phẩm.
-
Daily Scrum (Họp Scrum hằng ngày): Scrum Master tổ chức cho Đội sản
xuất họp hằng ngày trong khoảng 15 phút để Nhóm Phát triển chia sẻ tiến độ
cơng việc cũng như chia sẻ các khó khăn gặp phải trong quá trình phát triển
phần mềm suốt một Sprint.
-
Sprint Review (Họp Sơ kết Sprint): Cuối Sprint, nhóm phát triển cùng với
Product Owner sẽ rà sốt lại các cơng việc đã hồn tất (DONE) trong Sprint
vừa qua và đề xuất các chỉnh sửa hoặc thay đổi cần thiết cho sản phẩm.
-
Sprint Retrospective (Họp Cải tiến Sprint): Dưới sự trợ giúp của Scrum
Master, nhóm phát triển sẽ rà sốt lại tồn diện Sprint vừa kết thúc và tìm
cách cải tiến quy trình làm việc cũng như bản thân sản phẩm.
4. Tìm hiểu về RESTful API
API (Application Programming Interface) là tập hợp các quy tắc và cơ chế mà
một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng hay thành phần
24
Hà Minh Quang
Báo cáo thực tập
khác. API có thể trả về dữ liệu cần thiết cho ứng dụng ở những kiểu dữ liệu phổ biến
như JSON hay XML.
REST (REpresentational State Transfer) là một dạng chuyển đổi cấu trúc dữ
liệu, một kiểu kiến trúc để viết API. Nó sử dụng phương thức HTTP đơn giản để tạo
cho giao tiếp giữa các máy. Vì vậy, thay vì sử dụng một URL cho việc xử lý một số
thông tin người dùng, REST gửi một yêu cầu HTTP như GET, POST, DELETE, vv
đến một URL để xử lý dữ liệu.
RESTful API là một tiêu chuẩn trong việc thiết kế API cho các ứng dụng web
để quản lý resource. RESTful là một trong những kiểu thiết kế API phổ biến nhất hiện
nay để các ứng dụng (web, mobile…) khác nhau giao tiếp với nhau. REST hoạt động
chủ yếu dựa vào giao thức HTTP. Các hoạt động cơ bản nêu trên sẽ sử dụng những
phương thức HTTP riêng.
● GET (SELECT): Trả về một Resource hoặc một danh sách Resource.
● POST (CREATE): Tạo mới một Resource.
● PUT (UPDATE): Cập nhật thơng tin cho Resource.
● DELETE (DELETE): Xóa một Resource.
Những phương thức hay hoạt động này thường được gọi là CRUD tương ứng
với Create, Read, Update, Delete – Tạo, Đọc, Sửa, Xóa.
5. Tìm hiểu về NodeJS
Hình 2.9: Logo NodeJS
25