Em xin gửi lời cảm ơn sâu sắc đến ban lãnh đạo Công ty Cổ phần Đầu tư Thế Giới Di Động MWG đã tạo cơ hội giúp em có thể hiểu rõ môi trường làm việc thực tế.. 2 - Công ty Cổ phần Đầu tư T
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO THỰC TẬP DOANH NGHIỆP
SE501.M21
CÔNG TY CỔ PHẦN ĐẦU TƯ THẾ GIỚI DI ĐỘNG (MWG)
TP Hồ Chí Minh, tháng 06 năm 2022
Trang 2LỜI CẢM ƠN
Lời đầu tiên em xin chân thành cảm ơn đến quý Thầy, Cô Trường Đại học Công Nghệ Thông Tin – ĐHQG TPHCM lời cảm ơn chân thành nhất! Nhờ những kiến thức và sự động viên mà thầy cô đã truyền dạy trong suốt chương trình học, em đã có được một hành trang để bước vào đợt thực tập
Em xin gửi lời cảm ơn sâu sắc đến ban lãnh đạo Công ty Cổ phần Đầu tư Thế Giới Di Động (MWG) đã tạo cơ hội giúp em có thể hiểu rõ môi trường làm việc thực tế Em xin cảm ơn các anh, chị trong Công ty TNHH MTV Công nghệ thông tin Thế Giới Di Động, đặc biệt là những anh chị thuộc bộ phận Web Bachhoaxanh.com đã nhiệt tình chỉ bảo để em có được kinh nghiệm trong việc lập trình website thương mại điện tử
Với điều kiện thời gian có hạn cùng rất nhiều khó khăn về dịch bệnh lẫn hạn chế phát sinh, kiến thức và kinh nghiệm còn ít ỏi của một sinh viên nên sẽ không tránh khỏi những thiếu sót trong bài báo cáo này Em rất mong nhận được những ý kiến đóng góp quý giá của thầy, cô
để em có điều kiện bổ sung vào hành trang kiến thức của mình
Cuối cùng, em xin kính chúc quý Thầy, Cô luôn vui vẻ, hạnh phúc, đặc biệt luôn quan tâm và giữ gìn sức khoẻ
Em xin chân thành cảm ơn!
Tp Hồ Chí Minh, ngày 14 tháng 06 năm 2022
Sinh viên thực tập
Nguyễn Hữu Hiếu
Trang 3NHẬN XÉT CỦA KHOA
Trang 4
Mục lục
CHƯƠNG I: GIỚI THIỆU CÔNG TY CỔ PHẦN ĐẦU TƯ THẾ GIỚI DI ĐỘNG 1
1.1 Thông tin chung 1
1.2 Mục tiêu 3
1.3 Tầm nhìn 3
1.4 Giá trị cốt lõi của công ty 3
1.5 Giá trị cốt lõi hướng đến nhân viên 4
1.6 Cam kết của công ty 6
1.7 Lĩnh vực hoạt động 7
1.8 Cơ cấu phòng ban công ty 7
1.9 Cơ cấu nhân viên công ty 8
CHƯƠNG II: NỘI DUNG KIẾN THỨC THỰC TẬP 9
2.1 Kỹ năng sử dụng source control 9
2.1.1 Git 9
2.1.2 Gitlab 11
2.1.3 Tortoisegit 12
2.2 Kỹ năng sử dụng phương pháp Scrum 13
2.2.1 Scrum là gì? 13
2.2.2 Tại sao nên dùng Scrum? 15
2.3 Tuân thủ Coding Conventions của công ty 16
2.3.1 Coding Conventions là gì? 16
2.3.2 Coding Conventions 17
2.4 ASP.Net MVC 23
2.4.1 ASP.NET MVC là gì? 23
2.4.2 Lợi ích của ASP.NET MVC 24
2.4.3 Các tính năng của ASP.NET MVC 24
Trang 52.5 ASP.NET Web API 26
2.5.1 API Web ASP.NET là gì? 26
2.5.2 Các dịch vụ RESTful là gì? 26
2.5.3 Sự khác biệt giữa REST và SOAP là gì? 27
2.5.4 Sự khác biệt giữa Dịch vụ WCF và Dịch vụ API Web là gì? 28
2.5.5 Tại sao cần chọn ASP.NET WEB API? 29
2.5.6 Sự khác biệt giữa WCF và API API và WCF REST và Dịch vụ web là gì? 29
2.5.7 Sự khác biệt giữa ASP.NET MVC và ASP.NET Web API là gì? 31
2.6 Oracle Database 32
2.6.1 Oracle là gì? 32
2.7 Redis Cache 33
2.7.1 Đặt vấn đề 33
2.7.2 Giới thiệu Redis 33
2.7.3 So sánh Redis và Memcached 34
2.7.4 Lợi ích 35
2.7.5 Một số ứng dụng 37
2.7.6 Trường hợp sử dụng 37
2.8 Elasticsearch 39
2.8.1 Elasticsearch là gì? 39
2.8.2 Các khái niệm cần biết? 40
2.8.3 Ưu nhược điểm của Elasticsearch? 43
2.9 Cookie và Session 44
2.9.1 Cookie là gì? 44
2.9.2 Session là gì? 44
2.9.2 Cách phân biệt session của các trình duyệt khác nhau 45
CHƯƠNG III: TÓM TẮT QUÁ TRÌNH THỰC TẬP 46
Trang 63.1 Công việc mỗi tuần 46
3.1.1 Lịch thực tập 46
3.1.2 Bảng chi công việc trong lịch thực tập 47
3.2 Quy trình, công cụ làm việc 53
3.2.1 Quy trình làm việc 53
3.2.2 Các công cụ sử dụng trong quá trình làm việc 54
CHƯƠNG IV: TỔNG KẾT 55
4.1 Kết quả đạt được 55
4.2 Bài học kinh nghiệm 55
4.3 Định hướng trong tương lai 56
Trang 7Danh mục ảnh
Hình 1.1 Logo Công ty Cổ phần Đầu tư Thế Giới Di Động 1
Hình 1.2 Cơ cấu phòng ban công ty MWG 7
Hình 1.3 Cơ cấu nhân viên theo giới tính, thâm niên, độ tuổi, trình độ 8
Hình 1.4 Cơ cấu nhân viên theo các công ty con 8
Hình 2.1 Logo git 9
Hình 2.2 Cách lưu trữ của git 10
Hình 2.3 Các lệnh thao tác với git 10
Hình 2.4 Logo Gitlab 11
Hình 2.5 Logo Tortoisegit 12
Hình 2.6 Mô hình Scrum 13
Hình 2.7 Ứng dụng Scrum vào quản lý task 15
Hình 2.8 Chú thích tên chương trình, tác giả 18
Hình 2.9 Khối khai báo thư viện 18
Hình 2.10 Khai báo namespace 18
Hình 2.11 Khai báo các struct/enum độc lập (nếu có) 19
Hình 2.12 Khai báo lớp chính 19
Hình 2.13 Quy ước viết câu lệnh - Không nên 19
Hình 2.14 Quy ước viết câu lệnh – Nên 19
Hình 2.15 Quy ước viết câu lệnh - Không nên 20
Hình 2.16 Quy ước viết câu lệnh – Nên 20
Hình 2.17 Ngôn ngữ sử dụng – Không nên 21
Trang 8Hình 2.18 Ngôn ngữ sử dụng – Nên 22
Hình 2.19 Sự tương tác giữa Model, View và Controller 23
Hình 2.20 Luồng yêu cầu của người dùng trong ASP.NET MVC 24
Hình 0.21 Một số yêu cầu điển hình trong API 27
Hình 2.22 Oracle 32
Hình 2.23 Kiến trúc Redis cache 33
Hình 2.24 So sánh tốc độ Redis và Memcached 35
Hình 2.25 Logo Elasticsearch 39
Hình 2.26 Ví dụ - Elasticsearch 40
Hình 2.27 Inverted Index 41
Hình 2.28 Xác định độ chính xác trong Elasticsearch 41
Hình 3.1 Task Sprint 1 49
Hình 3.2 Task Sprint 2 50
Hình 3.3 Task Sprint 3 51
Hình 3.4 Task Sprint 4 52
Hình 3.5 Logo Open VPN 54
Hình 3.6 Logo Visual Studio 2019 54
Hình 3.7 Logo Postman 54
Hình 3.8 Logo GitLab - Git 54
Hình 3.9 Logo TortoiseGit 54
Trang 91
CHƯƠNG I: GIỚI THIỆU CÔNG TY CỔ PHẦN ĐẦU TƯ THẾ GIỚI DI ĐỘNG 1.1 Thông tin chung
Hình 1.1 Logo Công ty Cổ phần Đầu tư Thế Giới Di Động
- Tên công ty: CÔNG TY CỔ PHẦN ĐẦU TƯ THẾ GIỚI DI ĐỘNG
- Tên quốc tế: MOBILE WORLD INVESTMENT CORPORATION
- Tên doanh nghiệp viết bằng tiếng anh (Viết tắt): MOBILE WORLD JSC (MWG)
- Đại diện pháp luật: Đoàn Văn Hiểu Em
- Ngày bắt đầu hoạt động: 03 – 2004
- Ngành nghề hoạt động: Hoạt động dịch vụ bán lẻ điện thoại di động, thiết bị số và điện
tử tiêu dùng tại Việt Nam
Trang 102
- Công ty Cổ phần Đầu tư Thế Giới Di Động là một tập đoàn bán lẻ tại Việt Nam với lĩnh vực kinh doanh chính là bán lẻ điện thoại di động, thiết bị số và điện tử tiêu dùng Theo nghiên cứu của EMPEA, thống kê thị phần bán lẻ điện thoại di động tại Việt Nam năm
2014 thì Thế giới di động hiện chiếm 25% và là doanh nghiệp lớn nhất trong lĩnh vực của mình
- Năm 2018, Thế Giới Di Động lọt top 100 nhà bán lẻ lớn nhất châu Á - Thái Bình Dương Ngoài chuỗi cửa hàng điện thoại di động thegioididong.com, Công ty Cổ phần Thế Giới
Di Động còn sở hữu chuỗi cửa hàng điện máy Điện máy Xanh, Trần Anh và chuỗi siêu thị thực phẩm Bách hóa Xanh
- Năm 2020, thành viên mới của MWG là 4KFarm ra đời với mục tiêu cung cấp cho người tiêu dùng thực phẩm an toàn theo chuẩn 4 không (không thuốc trừ sâu, không chất bảo quản, không chất tăng trưởng, không sử dụng giống biến đổi gen)
- Từ năm 2018 đến hiện tại, Công ty Cổ phần Đầu tư Thế Giới Di Động (MWG) trở thành nhà bán lẻ số 1 Việt Nam về doanh thu và lợi nhuận, với mạng lưới hơn 4.500 cửa hàng trên toàn quốc Ngoài ra, MWG còn mở rộng ra thị trường nước ngoài với chuỗi bán lẻ thiết bị di động và điện máy tại Campuchia cũng như đầu tư vào chuỗi nhà thuốc An Khang
- Hiện tại Tập đoàn MWG gồm có 8 thành viên:
+ Công ty cổ phần Đầu tư Thế giới Di động (MWG)
+ Công ty Cổ phần Thế giới số Trần Anh (TAG)
+ Công ty cổ phần Thế giới di động
+ Công ty Cổ phần Thế giới điện tử
+ Công ty TNHH MTV Tư vấn Đầu tư Thế giới Bán lẻ
+ Công ty Cổ phần Thương mại Bách hoá xanh
+ Công ty Cổ phần Bán lẻ An Khang
+ Công ty TNHH MTV Công Nghệ Thông Tin Thế Giới Di Động
Trang 113
1.2 Mục tiêu
- MWG tập trung xây dựng dịch vụ khách hàng khác biệt với chất lượng vượt trội, phù hợp với văn hoá đặt khách hàng làm trung tâm trong mọi suy nghĩ và hành động của công ty
- MWG hướng đến không chỉ là một doanh nghiệp hoạt động hiệu quả được nhìn nhận bởi nhà đầu tư và các tổ chức đánh giá chuyên nghiệp, MWG còn được người lao động tin yêu khi lần thứ 4 liên tiếp được vinh danh trong TOP 50 Doanh nghiệp có môi trường làm việc tốt nhất Việt Nam và là doanh nghiệp xuất sắc nhất tại giải thưởng Vietnam HR Awards – “Chiến lược nhân sự hiệu quả”
1.3 Tầm nhìn
- Tầm nhìn MWG hướng tới là tập đoàn bán lẻ đa ngành hàng hùng mạnh, có vị thế số 1 trong lĩnh vực thương mại điện tử
- Với châm ngôn mang đến: “Đây là những điều chúng tôi hướng đến Đây là những
điều mà bạn có thể tin tưởng vào chúng tôi.”
- Tập đoàn MWG sẽ hỗ trợ và tạo điều kiện hết sức có thể cho các công ty cùng tập đoàn MWG hướng đến phát triển bền vững và trở thành thương hiệu hàng đầu về cung cấp các sản phẩm kỹ thuật số công nghệ cao tại Việt Nam mang tầm cỡ quốc tế Dựa vào nội lực của chính mình và mở rộng hợp tác với các đối tác trong lẫn ngoài nước, Tập đoàn MWG sẽ mang tới những sản phẩm và dịch vụ tốt nhất cho khách hàng, đem lại lợi nhuận cho các cổ đông, cho sự nghiệp cá nhân của mỗi nhân viên
1.4 Giá trị cốt lõi của công ty
- Tập đoàn Thế Giới Di Động xác định các yếu tố chính tạo nên sự thành công của 1 doanh nghiệp đó là:
+ Nguồn lực doanh nghiệp: Thế Giới Di Động xác định nguồn nhân lực là yếu tố sản sinh ra mọi nguồn lực của Tập đoàn Tập đoàn MWG chú trọng thu hút nhân tài, đào tạo về nghiệp vụ chuyên môn và công nghệ, đãi ngộ thoả đáng để xây dựng một lực lượng hùng hậu cho sự phát triển bền vững của Công ty
Trang 124
+ Chất lượng sản phẩm và dịch vụ: Thế Giới Di Động nhận thức rằng sự trung thành của khách hàng sẽ đưa Thế Giới Di Động tới thành công và chỉ có chất lượng của sản phẩm và dịch vụ mới là phương tiện mang tính quyết định để giữ vững sự trung thành của khách hàng
+ Quan hệ và hợp tác: Thế Giới Di Động mở rộng quan hệ hợp tác với các đối tác trong và ngoài nước nhằm kịp thời đưa những sản phẩm công nghệ mới nhất và dịch vụ theo các yêu cầu đặc thù của khách hàng
1.5 Giá trị cốt lõi hướng đến nhân viên
‒ INTEGRITY là Trân trọng lời nói của mình, bao gồm giữ cam kết, làm đúng thiết
kế, làm đúng qui trình, không làm dối, không làm tắt
‒ Sau khi bạn ĐÃ NỖ LỰC HẾT SỨC ĐỂ GIỮ LỜI mà vẫn không thể giữ được lời của mình thì phải thực hiện ĐỦ 3 VIỆC:
+ Thông tin cho người liên quan biết sớm nhất, nói rõ chuyện gì đã xảy ra trong thực tế, được dẫn chứng bằng số liệu
+ Đứng trên lập trường Mình là gốc rễ của vấn đề, tự đánh giá mình đã làm gì và đã không làm gì để giữ lời Nhận trách nhiệm, không đẩy trách nhiệm cho người khác
+ Đưa ra hành động mới và cam kết mới được đồng thuận với người liên quan để Khôi phục INTEGRITY của chính bạn và niềm tin của người khác
Trang 135
3 Yêu thương và hỗ trợ đồng đội
‒ Thành thật quan tâm đến đồng đội là sẵn lòng hỗ trợ, hướng dẫn, động viên để họ hoàn thành tốt công việc, không làm thay, không bao che
‒ Nghe và nói thẳng thắn, truyền sức mạnh:
+ NGHE: Đứng vào vị trí của người nói để lắng nghe đầy đủ và không thành kiến + NÓI: Thẳng thắn theo hướng đóng góp xây dựng, luôn ghi nhận thành quả hoặc
nỗ lực dù chưa có thành quả
4 Trung thực về tiền bạc và các mối quan hệ
‒ Trung thực về tiền bạc: Không lấy, Không sử dụng và Không nghĩ đến việc chiếm hữu tiền bạc, hàng hoá, tài sản không phải của mình
‒ Trung thực trong các mối quan hệ với người khác: Không nói ra, không thể hiện những gì mâu thuẫn với suy nghĩ bên trong của chính mình
5 Máu lửa trong công việc
‒ Luôn nói “YES”
‒ Làm thật nhanh
‒ Không ngại khó
6 Chất lượng là sống còn
‒ KHÔNG MUA - KHÔNG BÁN hàng không đạt chất lượng
‒ Xử lý đến cùng nguồn gốc xuất hiện của sản phẩm không đạt chất lượng trong Bách Hóa Xanh
‒ Không đưa vào tay Khách Hàng bất kỳ sản phẩm nào mà bạn không sẵn lòng sử dụng cho chính mình do lo ngại về chất lượng
Trang 146
1.6 Cam kết của công ty
- Đối với khách hàng:
+ Đặt khách hàng là trung tâm trong mọi suy nghĩ và hành động của mình
- Đối với nhân viên:
+ Mang đến cho nhân viên một môi trường làm việc THÂN THIỆN, VUI VẺ, CHUYÊN NGHIỆP, ỔN ĐỊNH
+ Cơ hội công bằng trong thăng tiến
- Đối với quản lý:
+ Mang đến cho quản lý: Một SÂN CHƠI rộng rãi và công bằng để thi thố tài năng
+ Một cam kết cho một cuộc sống cá nhân SUNG TÚC
+ Một vị trí xã hội được người khác KÍNH NỂ
- Đối với đối tác:
+ Mang đến cho các đối tác sự TÔN TRỌNG
- Đối với nhà đầu tư:
+ Mang đến cho nhà đầu tư một giá trị GIA TĂNG không ngừng của doanh nghiệp
- Đối với cộng đồng:
+ Đóng góp cho cộng đồng thông qua việc tạo nhiều ngàn việc làm và đóng góp đầy
đủ thuế cho ngân sách nhà nước
- Đối với môi trường:
+ Giảm thiểu tác động của mọi hoạt động của MWG mang tính chất tiêu cực lên môi trường sống (chống lãng phí)
+ Hướng đến sử dụng tối ưu tài nguyên thiên nhiên (điện nước, cây xanh…)
+ Khôi phục và tái tạo nguồn tài nguyên thiên nhiên
Trang 157
1.7 Lĩnh vực hoạt động
‒ Lĩnh vực hoạt động chính của công ty bao gồm: mua bán sửa chữa các thiết bị liên quan đến điện thoại di động, thiết bị kỹ thuật số, thiết bị tin học, điện thoại, linh kiện, phụ kiện điện thoại; máy ảnh, camera, thiết bị kỹ thuật số, thiết bị điện tử, điện gia dụng và các phụ kiện liên quan, các lĩnh vực liên quan đến thương mại điện tử, các chuỗi cửa hàng chuyên bán lẻ thực phẩm tươi sống (thịt cá, rau củ, trái cây ) và nhu yếu phẩm
1.8 Cơ cấu phòng ban công ty
Hình 1.2 Cơ cấu phòng ban công ty MWG
Trang 168
1.9 Cơ cấu nhân viên công ty
- Tính tới cuối năm 2021, MWG có tổng cộng 74.111 nhân sự với cơ cấu đa dạng về mặt trình độ, độ tuổi, thâm niên và giới tính
Hình 1.3 Cơ cấu nhân viên theo giới tính, thâm niên, độ tuổi, trình độ
Hình 1.4 Cơ cấu nhân viên theo các công ty con
Trang 179
CHƯƠNG II: NỘI DUNG KIẾN THỨC THỰC TẬP 2.1 Kỹ năng sử dụng source control
2.1.1 Git
Hình 2.1 Logo git
- Git là một hệ thống quản lý phiên bản phân tán (Distributed Version Control System – DVCS) ra đời vào năm 2005 và hiện được dùng rất phổ biến So với các hệ thống quản
lý phiên bản tập trung khi tất cả mã nguồn và lịch sử thay đổi chỉ được lưu một nơi là máy chủ thì trong hệ thống phân tán, các máy khách không chỉ "check out" phiên bản mới nhất của các tập tin mà là sao chép (mirror) toàn bộ kho mã nguồn (repository) Như vậy, nếu như máy chủ ngừng hoạt động, thì bạn hoàn toàn có thể lấy kho chứa từ bất kỳ máy khách nào để sao chép ngược trở lại máy chủ để khôi phục lại toàn bộ hệ thống Mỗi checkout thực sự là một bản sao đầy đủ tất cả dữ liệu của kho chứa từ máy chủ
Trang 1810
Hình 2.2 Cách lưu trữ của git
- Các thao tác được sử dụng trên git
Hình 2.3 Các lệnh thao tác với git
Trang 1911
2.1.2 Gitlab
Hình 2.4 Logo Gitlab
- Nếu như GitHub theo hướng kinh doanh thì GitLab là một phần mềm có nhiệm vụ quản
lý kho code Git GitLab sở hữu các tính năng đơn giản, góp phần to lớn trong việc giúp các doanh nghiệp, cá nhân, tổ chức lưu trữ code một cách nhanh chóng vô cùng, người dùng hoàn toàn có thể truy cập mọi lúc mọi nơi miễn là có kết nối Internet Người dùng
có thể ẩn kho code của mình, không công khai chúng cho bất kỳ ai, trong trường hợp vượt quá ngưỡng miễn phí thì người dùng mới phải mất phí để mua thêm dịch vụ
- Ưu điểm của GitLab mang lại:
• Đối với developer:
+ Sự tiện lợi Thao tác mỗi khi cần lưu trữ, tải lên, tải xuống code dễ dàng hơn + Kiểm soát các thay đổi trong code nhanh chóng, chính xác
+ Dễ dàng quản lý, phân phối công việc, hoàn thành dự án lập trình chất lượng hơn
• GitLab là open core: Đây là một ưu thế cạnh tranh dành cho GitLab khi các đối thủ của phần mềm này chủ yếu là các closed – source GitLab Community Edition là mã nguồn
mở hoàn chỉnh và phiên bản Enterprise Edition là opencore (độc quyền)
• Truy cập vào mã nguồn: Điểm vượt trội của Open core là bạn có thể xem và sửa đổi source code của GitLab Community Edition và Enterprise Edition khi nào bạn muốn Điều này không thể thực hiện đối với phần mềm closed – source Có thể là trên Server hoặc bằng cách giả lập kho lưu trữ của GitLab, bạn có thể thêm các tính năng và thực hiện các tùy chỉnh GitLab khuyên bạn nên cố gắng hợp nhất các thay đổi trở lại source code chính để những người khác có thể hưởng lợi từ những thay đổi và những thay đổi này vẫn để duy trì và cập nhật
Trang 2012
• Tính khả thi lâu dài (Viable long term): Chính vì sự uy tín của GitLab, nên đã tạo ra một cộng đồng vững chắc với hàng trăm nghìn tổ chức, cá nhân sử dụng và đóng góp cho phần mềm Việc có nhiều người cùng xây dựng giúp GitLab có khả năng sử dụng lâu dài hơn vì sẽ không đáng tin cậy nếu chỉ có duy nhất một công ty hỗ trợ cho phần mềm
• Cộng đồng phát triển: Bởi những ý kiến đóng góp, xây dựng cùng sự phản hồi tích của của người dùng, GitLab đang ngày một xây dựng những phiên bản tốt nhất từ ý kiến của các khách hàng để đem đến cho họ những trải nghiệm tuyệt vời nhất Điều này góp phần tạo nên các tính năng mà các tổ chức thực sự cần, chẳng hạn như quản lý người dùng thật
dễ dàng nhưng không hề kém phần mạnh mẽ
• Phiên bản mới ổn định mỗi tháng: GitLab phát hành phiên bản ổn định mới mỗi tháng, đầy đủ các cải tiến, tính năng và bản sửa lỗi Điều này khiến cho GitLab phát triển rất nhanh và luôn đáp ứng yêu cầu của khách hàng theo cách cực kỳ nhanh chóng
2.1.3 Tortoisegit
Hình 2.5 Logo Tortoisegit
- Là một Windoᴡѕ Shell Interface cho Git, được phát triển từ TortoiѕeSVN nổi tiếng Với giao diện dễ nhìn, thuận tiện thao tác thì Tortoisegit được nhiều người mới sử dụng git
lựa chọn bởi những tiện ích mà ứng dụng này mang lại
- Đối với những người mới sử dụng git thì việc thao tách với command line rất khó nhọc thì đây sẽ là ứng dụng đáng được lựa chọn Ứng dụng giúp người dùng dễ dàng thao tác
các lệnh: commit, pull, push, clone,… một cách nhanh nhất, tránh sai xót nhất
Trang 2214
- Khi áp dụng Scrum, có 4 cuộc họp (Meetings or Ceremonies) quan trọng tạo nên cấu trúc trong mỗi Sprint như sau:
+ Sprint planning: Cuộc họp lên kế hoạch của đội dự án, nhằm xác định những gì
cần hoàn thành trong Spring sắp tới
+ Daily stand-up: Cũng được biết đến như “Daily Scrum”, một cuộc họp nhỏ 15
phút mỗi ngày để trao đổi công việc giữa đội phát triển
+ Sprint demo: Một cuộc họp chia sẻ, nơi mà các thành viên chỉ ra những gì họ đã
làm được trong Sprint đó
+ Sprint retrospective: Sự đánh giá, nhìn lại những điều đã làm được và chưa làm
được của Sprint hiện tại, và đưa ra giải pháp hành động cho Sprint tiếp theo được tốt và hoàn thiện hơn
- Một nhóm phát triển Scrum thì sẽ có những thành phần hơi khác biệt so với mô hình truyền thống Waterfall, với 3 vai trò sau:
Trang 2315
2.2.2 Tại sao nên dùng Scrum?
- Nguồn gốc của Scrum xuất phát từ nghiên cứu những năm 1986 về quy trình phát triển sản phẩm thành công, tất cả đều có những đặc tính như yêu cầu mới và sự thay đổi yêu cầu thường xuyên và liên tục, thời gian để đưa sản phẩm ra thị trường rất ngắn Trong nghiên cứu này, cách thức để đội phát triển làm việc với năng suất cao nhất được đưa ra
so sánh với bộ môn bóng bầu dục và được gọi là Scrum Tính minh bạch, kiểm tra, và thích nghi là 3 nền tảng cơ bản của Scrum Và dưới đây là những lý do tại sao nên dùng Scrum:
+ Scrum cho phép việc tự do triển khai
+ Scrum dễ học và dễ sử dụng
+ Scrum chấp nhận sự thay đổi
+ Scrum làm giảm rủi ro khi xây dựng sản phẩm
+ Scrum tối ưu hóa hiệu quả và nỗ lực của đội phát triển
+ Scrum cho phép khách hàng sử dụng sản phẩm sớm hơn
+ Scrum cải tiến liên tục
Hình 2.7 Ứng dụng Scrum vào quản lý task
Trang 24- Nhờ có Coding conventions, những các thành viên trong dự án có thể hiểu đọc hiểu code của nhau dễ dàng hơn
- Thuận tiện hơn cho những developer khác khi họ tìm hiểu dự án các dự án cũ để phát triển thêm
- Dựng lên một bộ quy tắc để thống nhất chung cho hệ thống hoặc dự án
Trang 25- Camel Case: Chữ cái đầu tiên trong từ định danh là chữ thường và chữ cái đầu tiên của mối từ nối theo sau phải được viết hoa
+ VD: codingConvention
- Uppercase: Tất cả các ký tự trong từ định danh phải được viết hoa Sử dụng quy tắc này đối với tên định danh có từ 2 ký tự trở xuống
+ VD: MIN_PRICE_TO_FREESHIP
giữa các từ
Tên class,
enum
Sự kiện Pascal Case SelectedIndexChangedEventHandler Có hậu tố
EventHandler
Giao diện
(interface)
Bảng 2.0.1 Bảng quy tắc đặt tên theo Coding Conventions
Trang 2618
2.3.2.2 Quy định phân bố mã nguồn
- Uppercase: Tất cả các ký tự trong từ định danh phải được viết hoa Sử dụng quy tắc này đối với tên định danh có từ 2 ký tự trở xuống
- Mỗi file mã nguồn chỉ chứa duy nhất một class Tên class chính phải trùng với tên file
mã nguồn Ví dụ: Class Student sẽ được chứa trong file Student.cs
- Với các kiểu enum, struct độc lập đơn giản ngoài class có thể được khai báo trong một file mã nguồn riêng hoặc trong file mã nguồn của class khác
- Interface phải được khai báo trong một file mã nguồn riêng
- Thứ tự khai báo:
1 Chú thích tên chương trình, tác giả, v.v
Hình 2.8 Chú thích tên chương trình, tác giả
2 Khối khai báo thư viện
Hình 2.9 Khối khai báo thư viện
3 Khai báo namespace
Hình 2.10 Khai báo namespace
Trang 2719
4 Khai báo các struct/enum độc lập (nếu có)
Hình 2.11 Khai báo các struct/enum độc lập (nếu có)
5 Khai báo lớp chính
Hình 2.12 Khai báo lớp chính
2.3.2.3 Quy ước viết câu lệnh
- Mỗi câu lệnh riêng rẽ trên một dòng
Hình 2.13 Quy ước viết câu lệnh - Không nên
Hình 2.14 Quy ước viết câu lệnh – Nên
Trang 2820
- Đối với biến kiểu bool, tránh dùng phép so sánh với true hoặc false
Hình 2.15 Quy ước viết câu lệnh - Không nên
Hình 2.16 Quy ước viết câu lệnh – Nên
- Viết cách vào một khoảng tab đối với các lệnh nằm trong khối lệnh { }
- Viết cách vào một khoảng tab đối với lệnh ngay sau if, else, while, for, foreach
- Viết cách một khoảng trắng xung quanh các toán tử 2 ngôi và 3 ngôi
- Viết cách một khoảng trắng sau dấu “,” và “;”
Trang 2921
2.3.2.6 Chú thích
- Nên comment trên những đoạn code khó hiểu hoặc chức năng đặc biệt Ngôn ngữ sử dụng để chú thích phải đồng bộ xuyên suốt chương trình Chọn một trong hai ngôn ngữ: tiếng Việt Unicode có dấu hoặc tiếng Anh
- Luôn luôn sử dụng kiểu dữ liệu C# thay vì kiểu dữ liệu NET
Hình 2.17 Ngôn ngữ sử dụng – Không nên
Trang 3022
Hình 2.18 Ngôn ngữ sử dụng – Nên
2.3.2.8 Lưu ý khi sử dụng Coding Convention trong Javascript
- Đặt dấu { ở cuối dòng lệnh đầu tiên Đặt dấu } trên một dòng mới và không có khoảng trắng ở đầu
- Dùng dấu nháy đơn cho chuỗi Chấm phẩy đầy đủ sau các câu lệnh (Javascript không bắt buộc nhưng mình thêm vào để code rõ ràng)
Trang 31+ Model: đại diện cho hình dạng của dữ liệu Nó duy trì dữ liệu của ứng dụng Các
đối tượng model lấy và lưu trữ trạng thái mô hình trong cơ sở dữ liệu
+ View: là giao diện người dùng View hiển thị dữ liệu của model cho người dùng
và cũng cho phép họ sửa đổi dữ liệu
+ Controller: xử lý yêu cầu của người dùng Thông thường, người dùng tương tác
với view, những tương tác này sẽ tạo ra yêu cầu tương ứng và sẽ được xử lý bởi controller Controller trả về view thích hợp kèm theo dữ liệu model dưới dạng phản hồi
Hình 2.19 Sự tương tác giữa Model, View và Controller
Trang 3224
Hình 2.20 Luồng yêu cầu của người dùng trong ASP.NET MVC
- Theo hình trên, khi người dùng nhập URL vào trình duyệt, nó sẽ đến máy chủ và gọi controller thích hợp
- Sau đó, controller sử dụng view với model phù hợp để tạo phản hồi và gửi lại cho người dùng Chúng ta sẽ thấy chi tiết của sự tương tác trong một vài phần tiếp theo
2.4.2 Lợi ích của ASP.NET MVC
- Nền tảng ASP.NET MVC mang lại những lợi ích sau:
+ Dễ dàng quản lý sự phức tạp của ứng dụng bằng cách chia ứng dụng thành ba thành phần model, view, controller
+ Nó không sử dụng view state hoặc server-based form Điều này tốt cho những lập trình viên muốn quản lý hết các khía cạnh của một ứng dụng
+ Nó sử dụng mẫu Front Controller, mẫu này giúp quản lý các requests (yêu cầu) chỉ thông qua một Controller Nhờ đó bạn có thể thiết kế một hạ tầng quản lý định tuyến
+ Hỗ trợ tốt hơn cho mô hình phát triển ứng dụng hướng kiểm thử (TDD)
+ Nó hỗ trợ tốt cho các ứng dụng được xây dựng bởi những đội có nhiều lập trình viên và thiết kế mà vẫn quản lý được tính năng của ứng dụng
2.4.3 Các tính năng của ASP.NET MVC
- Nền tảng ASP.NET MVC mang lại những lợi ích sau:
+ Tính bạch các tác vụ của ứng dụng (logic nhập liệu, business logic, và logic giao diện), dễ dàng kiểm thử và mặc định áp dụng hướng phát triển TDD Tất cả các tính năng chính của mô hình MVC được cài đặt dựa trên interface và được kiểm