nhỏ|Mã spaghetti
Mã spaghetti (Spaghetti code) là một cụm từ mang tính cho mã nguồn có tính phi cấu trúc và khó bảo trì. Mã spaghetti có thể được gây ra bởi vài yếu tố, chẳng hạn như do bản yêu cầu dự án có tính không ổn định, thiếu quy tắc phong cách lập trình, và do người viết không đủ năng lực hoặc kinh nghiệm.
Ý nghĩa
Mã mà dùng quá mức các hơn là các cấu tạo lập trình có cấu trúc – kết quả sinh ra là các chương trình lộn xộn và không thể bảo trì được – thì hay được gọi là mã spaghetti. Mã như vậy có cấu trúc điều khiển phức tạp và rối rắm, kết quả sinh ra là một luồng chương trình mà về mặt khái niệm thì giống như một bát mì spaghetti – xoắn và rối. Trong một xuất bản năm 1980 của Cục Tiêu chuẩn Quốc gia Hoa Kỳ, cụm từ chương trình spaghetti được sử dụng để mô tả các chương trình trước đây có "các tệp bị phân mảnh và rải rác". Mã Spaghetti cũng có thể được dùng để mô tả một trong đó mã hướng đối tượng được viết theo phong cách thủ tục, chẳng hạn như bằng cách tạo các lớp có các phương thức quá dài và bừa bãi, hoặc vứt bỏ đi các khái niệm hướng đối tượng như đa hình. Sự hiện diện của hình thức mã spaghetti này có thể làm giảm đáng kể tính dễ lĩnh hội của một hệ thống.
Lịch sử
Người ta không rõ rằng từ khi nào mà cụm từ mã spaghetti được sử dụng phổ biến; tuy nhiên, một số tài liệu tham khảo xuất hiện vào năm 1977 bao gồm Macaroni is Better Than Spaghetti bởi Steele được xuất bản trong 'Biên bản lưu' của hội nghị chuyên đề năm 1977 về trí năng nhân tạo và ngôn ngữ lập trình. Trong cuốn sách năm 1978 A primer on disciplined programming using PL/I, PL/CS, and PL/CT, Richard Conway đã sử dụng thuật ngữ này để mô tả các kiểu chương trình rằng "có cùng cấu trúc sạch có tính logic giống như một đĩa mì spaghetti", một cụm từ được lặp đi lặp lại trong cuốn sách năm 1979 An Introduction to Programming mà ông là đồng tác giả với . Trong bài báo khoa học năm 1988 A spiral model of software development and enhancement, thuật ngữ này được sử dụng để mô tả sự thực hành trước đây của mô hình mã và sửa lỗi (code and fix model) – nói về sự thiếu việc kế hoạch của nó, và cuối cùng đã dẫn đến sự phát triển của mô hình thác nước. Trong cuốn sách năm 1979 Structured programming for the COBOL programmer, tác giả Paul Noll sử dụng các cụm từ mã spaghetti và tổ của chuột làm các từ đồng nghĩa để mô tả mã nguồn có cấu trúc kém.
Trong hội nghị Ada – Europe '93, ngôn ngữ Ada đã được mô tả là nó ép lập trình viên phải "tạo ra mã code dễ hiểu, thay vì mã spaghetti", vì cơ chế lan truyền ngoại lệ (exception) mang tính hạn chế của nó.
Vào năm 1981 trong một bài viết biếm nhại các ngôn ngữ máy tính trong sách The Technic Michigan có tiêu đề "BASICally speaking...FORTRAN bytes!!", tác giả đã mô tả FORTRAN là "bằng chứng rành rành rằng các nhà đồng sáng lập của IBM là người Ý, vì nó toàn là từ mã spaghetti mà ra cả".
Cụm từ có liên quan
Mã Ravioli (Ravioli code)
Mã là một thuật ngữ riêng cho lập trình hướng đối tượng. Nó mô tả mã bao gồm các lớp có cấu trúc tốt, về mặt cô lập thì dễ hiểu, nhưng về mặt tổng thể thì lại khó hiểu.
Mã Lasagna (Lasagna code)
Mã Lasagna dùng để chỉ mã có các tầng lớp rất phức tạp và đan xen với nhau, đến nỗi việc tạo ra một thay đổi trong một tầng lớp sẽ đòi hỏi phải thay đổi trong tất cả các tầng lớp khác.
Ví dụ
Đoạn mã dưới đây được coi là một ví dụ thông thường của mã spaghetti trong ngôn ngữ BASIC. Chương trình in từng số từ 1 đến 100 lên màn hình cùng với bình phương của nó. Ở đây việc thụt đầu dòng không hề được sử dụng để làm rõ sự khác nhau giữa nhiều hành động khác nhau do mã lệnh thực hiện, và các câu lệnh GOTO của chương trình tạo ra một sự lệ thuộc chặt chẽ vào . Luồng thực thi từ miền này sang miền khác khó dự đoán hơn. Sự xuất hiện của mã spaghetti trong thế giới thực thì phức tạp hơn và có thể thêm rất nhiều vào chi phí bảo trì cho chương trình.
1 i=0
2 i=i+1
3 PRINT i; "bình phương=";i*i
4 IF i>=100 THEN GOTO 6
5 GOTO 2
6 PRINT "Chương trình đã hoàn tất."
7 END
Đây cũng là mã trên nhưng được viết lại theo kiểu lập trình có cấu trúc:
1 FOR i=1 TO 100
2 PRINT i;"bình phương=";i*i
3 NEXT i
4 PRINT "Chương trình đã hoàn tất."
5 END
Chương trình trên đây cũng nhảy từ miền này sang miền khác, nhưng bước nhảy đấy thì mang tính hình thức và dễ dự đoán hơn, bởi vì và hàm đều cung cấp sự điều khiển luồng có kiểm soát còn câu lệnh _goto_ lại khuyến khích điều khiển luồng tùy ý.
Mặc dù ví dụ trên này thì nhỏ, các chương trình trong thế giới thực thì được cấu thành từ nhiều dòng mã và nếu được viết theo kiểu cách mã spaghetti thì sẽ khó bảo trì.
Đây là một ví dụ khác về mã Spaghetti trong đó câu lệnh GOTO bị lạm dụng (ăn sâu vào logic của chương trình) và được dùng với các nhãn (label) có tên không rõ ràng.
SCREEN 0
INPUT "Bao nhiêu số để sắp xếp? "; T
DIM n(T)
FOR i = 1 TO T
PRINT "SỐ THỨ:"; i
INPUT n(i)
NEXT i
'Nhiều tính toán:
C = T
E180:
C = INT(C / 2)
IF C = 0 THEN GOTO C330
D = T - C
E = 1
I220:
f = E
F230:
g = f + C
SWAP n(f), n(g)
f = f - C
IF f > 0 THEN GOTO F230
E = E + 1
IF E > D THEN GOTO E180
GOTO I220
C330:
PRINT "Liệt kê theo thứ tự là"
FOR i = 1 TO T
PRINT n(i)
NEXT i
👁️
156 | 🔗 | 💖 | ✨ | 🌍 | ⌚
nhỏ|Mã spaghetti **Mã spaghetti** (Spaghetti code) là một cụm từ mang tính cho mã nguồn có tính phi cấu trúc và khó bảo trì. Mã spaghetti có thể được gây ra bởi vài yếu tố,
**Spaghetti** () là một loại pasta dài, mỏng, đặc, hình trụ. Nó là một thực phẩm thiết yếu của ẩm thực Ý truyền thống. Giống như các loại mì ống khác, mì spaghetti được làm
**_Spaghetti all'assassina_** (tiếng Ý nghĩa là 'spaghetti của kẻ ám sát (giống cái)', ), hay còn được gọi là **_spaghetti bruciati_** (tiếng Ý nghĩa là 'spaghetti cháy', ) là một món mì spaghetti từ thành
nhỏ|_Touched by His Noodly Appendage_ (Được chạm bởi chi phụ bằng mì ống của Ngài), bản nhại _[[The Creation of Adam_ của Michelangelo, một hình tượng của Flying Spaghetti Monster]] **Flying Spaghetti Monster** (**FSM**, tạm
nhỏ| Bức ảnh người phụ nữ thu hoạch spaghetti, giả lập lại theo phóng sự của BBC. **Trò lừa bịp cây spaghetti** là một phóng sự lừa bịp dài ba phút được phát sóng vào
Gia Vị Làm Nước Sốt Mỳ Ý Spaghetti Bolognese KnorrSản phẩm dành cho bé và những ai nghiền mỳ ý sốt Spaghetti.Shop xin giới thiệu sản phẩm : Gia vị làm nước sốt Mỳ Ý
ACECOOK - MÌ SPAGHETTI BISTRO GÓI HƯƠNG VỊ XỐT KEM PHÔ MAI, MÌ SPAGHETTI XỐT KEM PHÔ MAI BISTRO ĂN LIỀN, MÌ SPAGHETTI BISTRO VỊ SỐT KEM PHOMAI, MÌ SPAGHETTI GÓI BISTRO SỐT KEM PHÔ
ACECOOK - MÌ SPAGHETTI BISTRO GÓI HƯƠNG VỊ XỐT BÒ BẰM, MÌ SPAGHETTI XỐT BÒ BẰM BISTRO ĂN LIỀN, MÌ SPAGHETTI BISTRO VỊ SỐT BÒ BẰM, MÌ SPAGHETTI GÓI BISTRO SỐT BÒ BẰM, MÌ SPAGHETTI
COLUSA - MÌ TÔ TRỘN MILIKET SPAGHETTI, MILIKET MÌ TÔ TRỘN SPAGHETTI, MÌ TÔ TRỘN MILIKET SPAGHETI, MILIKET MÌ TÔ TRỘN SPAGHETI MILIKET, MÌ SPAGHETTI MILIKET, MÌ SPAGHETI MILIKET, MÌ ĂN LIỀN SPAGHETTI MILIKET, MÌ
Sốt Spaghetti rose thịt cua Ottogi 110g là sự hòa quyện tinh tế giữa hương vị độc đáo và tiện lợi, đưa đến cho bữa ăn của bạn một phong cách Ý đặc sắc. Sản
Sốt Spaghetti thịt bằm Ottogi 110g là sự hòa quyện tinh tế giữa sự tiện lợi và hương vị đặc sắc, mang đến cho bữa ăn của bạn một trải nghiệm thưởng thức mới lạ.
Thùng 12 Tô Mì Khoai Tây Cung Đình Kool Sốt Spaghetti Hương Vị thịt Bò Bằm Và Cà Chua sử dụng nguồn nguyên liệu tươi ngon như sợi mì được làm từ tinh bột khoai
Sách Văn Học Kinh Điển Hiện Đại: Hội Chứng Mì Spaghetti "Tôi biết hẳn mình còn nhiều điều muốn hỏi, nhưng lại quá sợ những câu trả lời, nên không đủ dũng khí để nói
HỘI CHỨNG MÌ SPAGHETTI - Marie Vareille (bìa mềm) - Giá bìa: 175.000đ Léa là một tài năng thể thao xuất sắc được dìu dắt từ nhỏ dưới sự đào tạo của người cha làm
Hội Chứng Mì Spaghetti Léa là một tài năng thể thao xuất sắc được dìu dắt từ nhỏ dưới sự đào tạo của người cha làm huấn luyện viên bóng rổ. Khi cuộc sống của
Sách Khám Phá Tâm Lý Hay: Hội Chứng Mì Spaghetti "Tôi biết hẳn mình còn nhiều điều muốn hỏi, nhưng lại quá sợ những câu trả lời, nên không đủ dũng khí để nói ra."
MÌ Ý SPAGHETTI SỐ 4 BIONDI 500G (THƯƠNG HIỆU ÚC - SX THÁI LAN) Quick, easy, tasty — that’s Biondi Pasta! Dễ dàng - Nhanh chóng - Hương vị ngon tuyệt - là những tính từ miêu tả đầy đủ
MÌ Ý SPAGHETTI SỐ 4 BIONDI 500G (THƯƠNG HIỆU ÚC - SX THÁI LAN) Quick, easy, tasty — that’s Biondi Pasta! Dễ dàng - Nhanh chóng - Hương vị ngon tuyệt - là những tính từ miêu tả đầy đủ
Hướng dẫn sử dụng : Cho nước vào nồi đun sôi. Cho thêm 1 muỗng cafe muối, 1 muỗng dầu ăn vào. Khi nước sôi già , cho sợi mì Spaghetti khô vào, đậy nắp,
Với nước xốt chua ngọt được chế biến sẵn, bạn dễ dàng có ngay một dĩa mì thơm ngon hấp dẫn mà không cần phải giỏi nêm nếm. Tiết kiệm được nhiều thời gian nấu
Hội Chứng Mì Spaghetti Léa là một tài năng thể thao xuất sắc được dìu dắt từ nhỏ dưới sự đào tạo của người cha làm huấn luyện viên bóng rổ. Khi cuộc sống của
Léa là một tài năng thể thao xuất sắc được dìu dắt từ nhỏ dưới sự đào tạo của người cha làm huấn luyện viên bóng rổ. Khi cuộc sống của cô dường như chỉ
- Tác giả: MARIE VAREILLE - Dịch giả: NGUYỄN THỊ TƯƠI - Nhà xuất bản: Phụ Nữ - Kích thước: 14x20.5 cm - Số trang: 390 - Ngày phát hành: 2024 Léa là một tài
Léa là một tài năng thể thao xuất sắc được dìu dắt từ nhỏ dưới sự đào tạo của người cha làm huấn luyện viên bóng rổ. Khi cuộc sống của cô dường như chỉ
Mô tả sản phẩm:Tác giả: MARIE VAREILLE Dịch giả: NGUYỄN THỊ TƯƠI Nhà xuất bản: Phụ Nữ Kích thước: 14x20.5cm Số trang: 396 Năm xuất bản: 2024 Nhà phát hành Nhã Nam "Tôi biết hẳn
Với sự kết hợp hoàn hảo giữa sợi mỳ mềm dai, nước sốt cà chua thơm lừng và thịt bò băm ngọt vị, món ăn này không chỉ hấp dẫn người lớn mà còn đặc
Máy làm mì bún Philips HR2660/00 serie 7000 không chỉ đơn giản là một thiết bị nhà bếp, mà còn là người bạn đồng hành tuyệt vời trong mỗi bữa ăn gia đình. Với thiết kế sang trọng,
Bơ đậu phộng ăn có thể kết hơp cùng nhiều món như mì spaghetti trộn bơ đậu phộng, kẹo chocolate bơ đậu phộng, sinh tố chuối bơ đậu phộng...Bơ đậu phộng là một loại bơ
Brand: Delverde Mã sản phẩm: DEV0901-107 Xuất xứ: Ý Quy cách đóng gói: 500g Mì Spaghetti là loại mì có hương vị đặc trưng của đất nước Ý. Mì Ý Spaghettini in Bronzo 500g (Delverde)
phải|nhỏ|[[Lưu đồ thuật toán (thuật toán Euclid) để tính ước số chung lớn nhất (ưcln) của hai số _a_ và _b_ ở các vị trí có tên A và B. Thuật toán tiến hành bằng
**_Il buono, il brutto, il cattivo_** (tựa tiếng Anh: _The Good, the Bad and the Ugly_, tạm dịch: _Thiện, ác, tà_) là một bộ phim điện ảnh đề tài sử thi Viễn Tây của Ý
Mã hàng 8935251415827 Tên Nhà Cung Cấp Alpha Books Tác giả BS Nina Shapiro, Kristin Loberg Người Dịch Hồ Thu Phương NXB NXB Thế Giới Năm XB 2020 Trọng lượng (gr) 530 Kích Thước Bao
Combo Cool series (7 cuốn) Lời nói đầu/Giới thiệu sách Bộ sách Cool Series quả là một kho tàng kiến thức hấp dẫn dành cho các bạn nhỏ tò mò. Mỗi cuốn sách trong bộ
Lập trình ngầu hết xảy! giống như một chú thỏ uyên bác và vui tính sẽ dẫn đường cho bạn đi vào xứ sở bí ẩn và kỳ diệu của máy vi tính, gặp gỡ
Lập trình ngầu hết xảy! giống như một chú thỏ uyên bác và vui tính sẽ dẫn đường cho bạn đi vào xứ sở bí ẩn và kỳ diệu của máy vi tính, gặp gỡ những
Tác giả: Rob Hansen Dịch giả: Đinh Trần Tuấn Linh Nhà xuất bản: Thế Giới Số trang: 113 Kích thước: 20,5 x 15,5 cm Ngày phát hành: 01-2019 Lập trình ngầu hết xảy! giống như
1. Lập trình ngầu hết xảy! giống như một chú thỏ uyên bác và vui tính sẽ dẫn đường cho bạn đi vào xứ sở bí ẩn và kỳ diệu của máy vi tính, gặp
Chào sâu lòng, hay còn gọi là Wok. Thương hiệu: BeHome Chất liệu: Inox 304 Kích thước: 28x9cm Nơi sản xuất: Việt Nam Loại chảo sâu lòng kiểu Á mà người Tầu, Việt, Thái dùng
Mã hàng 8935244872095 Tên Nhà Cung Cấp Nhà Xuất Bản Kim Đồng Tác giả Vân Vũ NXB NXB Kim Đồng Năm XB 2022 Ngôn Ngữ Tiếng Việt Trọng lượng (gr) 100 Kích Thước Bao Bì
Với sản phẩm tươi sống, trọng lượng thực tế có thể chênh lệch khoảng 10%. Mỳ Ý Sốt Bò Bằm – một sản phẩm mang đến trải nghiệm phong cách ẩm thực Ý đầy quyến
Với sản phẩm tươi sống, trọng lượng thực tế có thể chênh lệch khoảng 10%. Mỳ Ý xốt bò bằm – một sản phẩm mang đến trải nghiệm phong cách ẩm thực Ý đầy quyến
**_Per un pugno di dollari_** (tiếng Anh: _A Fistful of Dollars_; tiếng Ý: _Per un pugno di dollari_) là một bộ phim viễn tây kiểu Ý do đạo diễn Sergio Leone sản xuất năm 1964.
**_Núp xuống, đồ ngu!_** (, , ) là một phim Viễn Tây nằm trong bộ ba _Ngày xửa ngày xưa_ (Once upon a time trilogy) do Sergio Leone đạo diễn, xuất phẩm ngày 29 tháng
**Once Upon a Time in the West** (Tiếng Ý: C'era una volta il West), _Miền Tây ngày ấy_, là một bộ phim Viễn Tây Ý do Sergio Leone làm đạo diễn. ## Nội dung Bộ
thumb|Ẩm thực Ý (theo chiều kim đồng hồ): [[Pizza Margherita, mì spaghetti alla carbonara, cà phê espresso, và kem gelato.]] **Ẩm thực Ý** đã phát triển qua nhiều thế kỷ với những biến động chính
**Tin vịt** là tin không đúng với sự thật thực tế, được báo chí truyền thông đưa ra nhằm đánh lừa, tạo sự hiểu sai về một vấn đề hay sự kiện nào đó. Nó
**Guns N' Roses** (còn viết tắt là **GNR**) là một ban nhạc hard rock người Mỹ xuất thân từ Los Angeles, California, thành lập vào năm 1985. Khi ban nhạc ký hợp đồng với hãng
nhỏ|phải|Một cô bé đang ăn Pizza **Lịch sử của pizza** bắt nguồn từ thời cổ đại, khi nhiều nền văn hóa cổ đại làm ra bánh mì dẹt với một lớp phủ bên trên. Họ hàng của
**Cá minh thái** hay còn gọi là **cá pôlăc** (Danh pháp khoa học: **_Pollachius_**) là tên gọi thông dụng chỉ về các loài cá biển thuộc chi này. Cả hai loài _Pollachius pollachius_ và _Pollachius
**Ẩm thực Hy Lạp** là một nền ẩm thực Địa Trung Hải. Nó có một số đặc điểm trung với ẩm thực truyền thống của Ý và Thổ Nhĩ Kỳ. Hiện nay người nấu ăn