1. Trang chủ
  2. » Luận Văn - Báo Cáo

BÁO cáo bài tập tái cấu TRÚC mã NGUỒN chương 1 source code ban đầu

15 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Báo Cáo Bài Tập Tái Cấu Trúc Mã Nguồn
Tác giả Phung Anh Duong
Người hướng dẫn TS. Võ Đình Hiếu
Trường học Đại Học Quốc Gia Hà Nội
Chuyên ngành Khoa Học Máy Tính
Thể loại báo cáo
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 15
Dung lượng 807,52 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trang 1 ĐẠI HỌC QUOC GIA HA NOI TRUONG DAI HOC CONG NGHE Phing Anh Duong BAO CAO BAI TAP TAI CAU TRUC MA NGUON Trang 2 ĐẠI HỌC QUOC GIA HA NOI TRUONG DAI HOC CONG NGHE Phing Anh Duo

Trang 1

ĐẠI HỌC QUOC GIA HA NOI TRUONG DAI HOC CONG NGHE

Phing Anh Duong

BAO CAO BAI TAP TAI CAU TRUC MA NGUON

BAI TAP MON KIEN TRUC PHAN MEM

Ngành: Khoa Học Máy Tính

Hà Nội — 2022

Trang 2

ĐẠI HỌC QUOC GIA HA NOI TRUONG DAI HOC CONG NGHE

Phing Anh Duong

BAO CAO BAI TAP TAI CAU TRUC MA NGUON

BAI TAP MON KIEN TRUC PHAN MEM

Ngành: Khoa Học Máy Tính

Giảng viên: TS Võ Đình Hiếu

Hà Nội — 2022

Trang 3

VIETNAM NATIONAL UNIVERSITY, HANOI UNIVERSITY OF ENGINEERING AND TECHNOLOGY

Phung Anh Duong

REFACTORING SOURCE CODE PRACTICE REPORT

Major: Computer Science

Lecturer: Dr Vo Dinh Hieu

Ha Noi - 2022

Trang 5

Chương 1: Source code ban đầu - - LG 2C 1 11212121111 11 12 H1 HH TH HH 6

I° ‹-0 9200 000 Si 7 F0 2-1: ẦẦồồốồốồố 43 7

Chương 2: Extract method - Q01 HT HE Ki ki nh 9

2.2 Trước tái cấu †FÚC - - (2c +21 1E 121 21111 11 112111 11 1T TH TH TH TH TH TH Tnhh 9 2.3 Sau tái cấu †FÚC - LG 2c SH S1 S1 S122 21111 H1 1H H1 HT TH TH TH TT HH TH TH Hhg 10

Chương 3: Chỉnh sửa trình bày -QQQ Q00 HH HH HH rà 12

3.1 Xuống dòng các đoạn code dài, dễ gây rối - 5c 2c Scccseceeerre2 12 3.2 Cách dòng đề tách đoạn code xử lý với các biến và kết quả trả về 12 3.3 Tối ưu hóa tính toán (giảm bớt số 0 trong tính toán đề tránh sai sót) 13 Chương 4: Xóa bỏ những thứ không cần thiết . - 2S St Se re reeerree 14 4.1 Xóa bỏ một số biến không cần thiết . - 2C SH re 14 Chương 5: Viết Javadoc - - - L L1 T12 nh TH TH TH TH TH TH TH TH TH TH TH HH TH TH 15

"híc o0 ae 15

ý co (00 diiiiiiaiiiẳẳẳiẳiidddiiốỐốỐỔỒŸ 15 5.3 Sau khi sửa - _ CS HT ng KT TK Ko KT TK ky ke xà 15

Trang 6

Chương 1: Source code ban đầu

1.1 Giới thiệu

Source code ban dau gém 4 file:

e plays.java: class dinh nghia d6i trong plays, bao g6m c4c getter, setter

và constructor của đối tượng

e©_ performances.java: class định nghĩa đối tượng performances, bao gồm các getfer, seffer và constructor của đối tượng

e invoice.java: class định nghĩa đối tượng invoice, bao gôm các getfer, setter và constructor của đối tượng Ngoài ra còn chứa method billQ có chức năng 1n hóa đơn

e©_ main.java: chứa method main() Bén trong method là data được cho sẵn

và một test

Link source code ban đầu: Github

Link source code sau khi tái câu trúc: Github

1.2 plays.java

public class plays {

Lị private String

private String

public String getPlayID() "eturn

public void (String playID) th1s

public String getType() "eturn

public void (String type)

public

public plays(String name, String type) {

this.t

Trang 7

1.3 performances.java

performances { plays pLlayID

playID) 2LayID = playID

audience) lience audience

(plays pLayTD audience) { playID = playID

= audience

1.4 invoice.java

invoice {

String customer

performances[] performances

= customer

eS = performances

totalAmount = 0

volumeCredit = 0

(performances perf : invoice.getPerformances()) {

plays pl = perf.getPlayID()

thisAmount =

(pl.getType()) {

thisAmount = 40000

(perf.getAudience() > 30) { thisAmount += 1000 * (perf.getAudience() -

Trang 8

thisAmount = 30000 (perf.getAudience() > 20) { thisAmount += 10000 + 500 * (perf.getAudience() - 20)

i thisAmount += 300 * perf.getAudience()

volumeCredit += Math.floor(perf.getAudience() / 5)

totaLAmount += thisAmount

}

result toString()

main {

(String[] args) { plays[] plays = ptLays[5 ]

om pLays(

1] plays (

2 ! LE WET

[

ptLays[

plays[

|

plays

performances[] performances = performances[3]

performances[Q@] performances(pLlays[0@]

performances[ 1] performances(ptays[1]

performances[ 2 ] performances(ptays[2 ]

invoice invoice invoice( performances)

String print = invoice.bills()

System.out.println(print)

Trang 9

Chuong 2: Extract method

2.1 Giới thiệu

Trong source code, method billQ có chứa phần code dùng để tính số tiền phải trả của một đối tượng performances Phần code này có thể được di chuyển thành một method mới, giúp method billQ thông thoáng, dễ đọc hơn

2.2 Trước tái cấu trúc

result.a

Trang 10

2.3 Sau tái cầu trúc

pubLic String biLLs(invoice invoice) {

for (performances perf : invoice.getPerfor

int thisAmount = 09;

thisAmount = caLcPerf(perf);

totalAmount += thisAmount;

.append(perf getAudience()).appendí( \n");

3

private int caLcPerf(perform int resutLt = 0;

plays play = perf.getPlayID();

switch (play.getType()) case

if (perf.getAudience() > et

"esuLt += * (perf.getAudience() - }

break;

case

if (perf.getAudience()

result += * (perf.getAudience()

}

"esuLt * perf.getAudience();

break;

default:

throw new Error( + play.getType()); “ ƒ

Trang 12

Chương 3: Chỉnh sửa trình bày

3.1 Xuống dòng các đoạn code dài, dễ gây rỗi

"esuLt.append(ptay getPLayTID()) append ( ).append(thisAmount / 100).append(

.append(perf getAudience()).append( )

}

"esutt.append( ).append(totalAmount / 100).append(

result append( ).append(volumeCredit) append(

result append( ›

-append(totalAmount / 100) append( )

"esutt.append(ptay getPLayTD())

.append(thisAmount / 100)

.append( y result append( )

.append(perf.getAudience()) append(volumeCredit)

append ( ) append( )

3.2 Cách dòng để tách đoạn code xử lý với các biến và kết quả trả về

(performances perf) {

"esuLt =

result += Math.max(perf.getAudience() - 30, 6}

result += comedyAdd(perf)

"esuLt

(performances perf) {

result =

result += Math.max(perf.getAudience() - 30, 9)

result += comedyAdd(perf)

"esuLt

Trang 13

3.3 Tối ưu hóa tính toán (giảm bớt số 0 trong tính toán để tránh sai sót)

Trang 14

Chương 4: Xóa bỏ những thứ không cần thiết 4.1 Xóa bỏ một số biến không cần thiết

Ngày đăng: 24/12/2023, 14:51

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w