Hardcode Là Gì ? Định Nghĩa Và Giải Thích Ý Nghĩa Hardcoded Là Gì – hardcode là gì – https://final-blade.com

Đây là bài san sẻ được dịch từ nội dung của Author Anna Monus ( https://www.hongkiat.com/blog/code-optimization-coding-antipatterns/ ). Trong bài san sẻ này ,

Bạn đang xem: hardcode là gì

Bạn đang quan tâm đến Hardcode Là Gì ? Định Nghĩa Và Giải Thích Ý Nghĩa Hardcoded Là Gì phải không? Nào hãy cùng ONLINEAZ đón xem nội dung này ngay sau đây nhé, vì nó vô cùng thú vị & hay đấy!

XEM VIDEO Hardcode Là Gì ? Định Nghĩa Và Giải Thích Ý Nghĩa Hardcoded Là Gì tại đây.

Đây là bài chia sẻ được dịch từ nội dung của Author Anna Monus (https://www.hongkiat.com/blog/code-optimization-coding-antipatterns/). Trong bài chia sẻ này, có một số chỗ được mình sửa đổi, bổ sung để cho thích hợp.

Đang xem : Hardcode là gì

Kiến trúc thiết kế của một trang web hay một vận dụng, hoặc seting một coding workflow hiệu quả thường xuyên khiến tất cả chúng ta phải đương đầu với những vấn đề nan giải, hay gặp phải. Tất cả chúng ta không thiết yếu phải khắc phục những vấn đề kiến trúc này từ con số 0, vì ta có thể tái sử dụng được những biện pháp ở cấp độ thiết kế cũng như những đoạn code ở tầng vi mô.

Thiết kế patterns là một trong những biện pháp tái sử dụng trong một số trường hợp khẳng định, có thể hữu hiệu để khắc phục những sự cố thường xảy ra & có thể giúp tất cả chúng ta tối ưu những đoạn codes của mình.

*

Dù rằng Thiết kế patterns là phương tiện đi lại tuyệt vời để cải tổ quá trình tiến triển của những bạn bằng cách dùng những tuyệt kỹ đã được kiểm chứng tốt. Không những thế, đôi lúc những Thiết kế patterns đó cũng tạo nên những hậu quả xấu đi so với chúng. Lúc này, chúng được gọi là những Antipatterns .

Antipatterns là gì?

Thuật ngữ “ antipatterns ” hiện ra lần thứ nhất trong một quyển sách đưa tên AntiPatterns vào năm 1998 .

Nó đề cập đến những biện pháp tái sử dụng mà ban đầu trông có lẽ hữu hiệu, nhưng dần sau đó, chúng lại trở nên có hại hơn là lợi.

Điều này có thể xảy ra vì nhiều nguyên nhân khác nhau, chẳng hạn như nếu tất cả chúng ta không sử dụng những patterns đúng hoàn cảnh, setup, hay thời gian thích hợp (các biện pháp có hiệu quả trong dĩ vãng không phải khi nào cũng hoạt động đúng ở thời điểm bây giờ), hoặc trong những trường hợp xấu hơn là toàn thể mô hình đã không tốt ngay từ khi khởi đầu rồi (>””Antipatterns cũng thường được gọi là những mô hình thất bại. Không những thế, tin vui là tất cả chúng ta tuyệt đối có thể nhận ra & tránh né chúng.

Trong nội dung này, tôi sẽ ra mắt qua cho những bạn 10 antipatterns thông dụng tiếp tục gặp phải trong công cuộc tiến triển website. ( Cảnh báo rằng những antipatterns tôi liệt kê dưới đây không trọn vẹn giống với những gì bạn hoàn toàn có thể tìm ra trong quyển sách tôi đã đề cập ở trên ) .

10 Antipatterns thông dụng

1. Premature Optimization (Tối ưu sớm)

Thời điểm tốt là một trong những yếu tố trọng yếu trong việc tối ưu hóa các đoạn codes. Nếu tất cả chúng ta để mắt đến những hiệu quả nhỏ & tối ưu hóa chúng quá sớm trong công cuộc tiến triển, trước khi tất cả chúng ta biết đúng đắn những vấn đề cần làm, rất có thể tất cả chúng ta sẽ đơn giản mắc phải antipattern “Tối ưu sớm”.

*

Theo câu nói nổi tiếng của Donald Knuth : “ Tối ưu sớm là căn nguyên của mọi điều ác ”, nó hoàn toàn có thể hơi bị cường điệu hóa lên một tí, nhưng hoàn toàn có thể cho thấy rằng những yếu tố cực kỳ nghiêm trọng về tối ưu hóa sớm hoàn toàn có thể gây ra trong tương lai như vậy nào .

Nếu tất cả chúng ta tối ưu hóa hiệu năng trước khi xây dựng một thiết kế hiệu quả, nó có thể gây ra codes trở nên khó đọc, việc debug & bảo dưỡng khổ cực hơn, & những đoạn codes thừa bị đẩy vào mã nguồn của các bạn.

Một sáng tạo tốt để ngăn chặn việc tối ưu sớm là tuân theo phép tắc lập trình YAGNI (You Aren’t Gonna Need It), nó khuyên tất cả chúng ta nên tuân thủ “cần cái gì thì thêm cái đó”, chứ đừng có mà “chắc là sau này sẽ cần đến”.

2.Reinventing the Wheel

Reinventing the wheel – Tái phát minh bánh xe có thể hiểu nôm na là cái bánh xe nó đã được phát minh từ rất lâu rồi, & nó cũng khá tốt rồi, đừng có mất thời gian đi phát minh lại nó nữa

*

Reinventing the wheel không những gây ra phung phí thời gian, mà còn những biện pháp tùy chọn, đặc biệt là những tính năng căn bản ít khi tốt hơn những chuẩn mà nhiều nhà tiến triển hay người dùng đã thực nghiệm rất kĩ rồi.

3. Dependency Hell

Trái ngược với “reinventing the wheel”, tất cả chúng ta có một antipattern khác cũng thông dụng đó là “dependency hell”.

Nếu, thay vì lọ mọ viết mọi thứ từ đầu, tất cả chúng ta lại quá lạm dụng việc sử dụng thư viện bên thứ ba dựa vào những phiên bản rõ ràng và cụ thể của những thư viện khác. Điều này sẽ khiến bạn đơn giản phải đương đầu với những tình huống khó làm chủ mỗi khi mong muốn update thư viện, vì đôi lúc những dependencies này sau thời điểm update lại không tương thích với những cái khác.

*

Dependency hell có thể được khắc phục bằng cách dùng các package managers có khả năng update thông minh các dependencies để chúng vẫn có thể tương thích được với nhau. Nếu tất cả chúng ta vấp phải quá nhiều vấn đề, việc refactoring cũng có thể là một sáng tạo hay.

4. Spaghetti Code

“Spaghetti code” có vẻ là antipattern nổi tiếng nhất. Nó diễn tả một vận dụng khó debug & bố trí do thiếu thiết kế thích hợp.

Đọc thêm : Tải Onekey Ghost Mới Nhất năm ngoái, Tải Onekey Ghost Mới Nhất 2021

Kết quả của một kiến trúc thiết kế kém là một đống codes chồng chất lên nhau giống như một bát mì Spaghetti vậy, rất rối rắm & cầu kỳ. Những Spaghetti codes rất khó để đọc & hầu hết khó có thể hiểu được nó hoạt động như vậy nào (>”Don”t Repeat Yourself (DRY), thay vì tạo nên biện pháp khắc phục vấn đề, bạn lại đi gom góp từng mẩu codes hết chỗ này đến chỗ khác, sau đó căn chỉnh lại nó cho phù phù hợp với ngữ cảnh.

*

Kết quả của cách thức này là tất cả chúng ta có những đoạn codes bị lặp đi lặp lại, vì chủ yếu chúng chỉ khác nhau ở một vài điểm nhỏ.

Sao chép and paste programming không những thấy ở những lập trình viên mới, mà còn ở những lập trình viên đã có kinh nghiệm, bởi vì nhiều người trong số họ có khuynh hướng sử dụng những đoạn codes đã được viết sẵn, kiểm soát kĩ lưỡng của họ cho những tác vụ rõ ràng và cụ thể, điều này đơn giản gặp phải sự lặp lại không mong mỏi.

7. Cargo-Cult Programming

Tên gọi “cargo-cult programming” được khởi nguồn từ một hiện tượng dân tộc học đưa tên “cargo cult”. Cargo cults hiện ra ở Nam Thái Bình Dương sau thế chiến thứ II, khi tiếp xúc với nền văn minh tiên tiến, người địa phương cứ cho rằng các sản phẩm như Coca-Cola, TVs, hay tủ lạnh trong những tàu chở hàng đưa lên đảo, đều được tạo bởi những thế lực siêu nhiên, & họ tin rằng mỗi khi thực hiện những nghi lễ ma thuật cũng giống như phong tục của người phương Tây, những thùng chất đầy hàng hóa đó sẽ lại hiện ra trở lại.

*

Antipattern này cũng có những triệu chứng cũng giống như vậy. Ta sử dụng những frameworks, thư viện, biện pháp, hay các thiết kế patterns,…bổ ích cho tất cả chúng ta, mà không thực sự hiểu vì sao tất cả chúng ta cần phải dùng đến chúng hay những công nghệ đó hoạt động ra sao.

Cargo cult programming xảy ra ở những lập trình viên không có tuyệt kỹ hoặc là lập trình viên mới (hoặc là những người thiếu tuyệt kỹ về mặt nào đó), họ copy những mã nguồn từ nơi này đến nơi khác trong vận dụng mà hầu hết ít hoặc không hiểu biết về ý nghĩa thật sự của chúng. Antipattern này không những tệ vì khiến cho vận dụng của các bạn bị “bơm căng phồng”, mà còn tồn tại thể đơn giản mang những lỗi mới vào mã nguồn của các bạn.

8. Lava Flow

Tất cả chúng ta nhắc đến “Lava flow” antipattern mỗi khi cần phải giải quyết những đoạn mã codes thừa hoặc có kém chất lượnghình như chẳng thể tách rời với vận dụng, nhưng tất cả chúng ta không hoàn toàn hiểu được chúng có công dụng gì hoặc tác động của chúng đến toàn thể vận dụng như vậy nào. Chính vì vậy, việc loại bỏ chúng là một việc rất nguy cơ.

Điều này thường xuyên xảy ra với những legacy codes, hoặc là khi đoạn codes này được viết bởi những người khác (thường thiếu ebook đúng đắn), hoặc là khi dự án được chuyển từ công đoạn development sang production quá nhanh.

Tên gọi của antipattern này trổ tài sự tương đương với dung nham núi lửa, bắt đầu thì vận động và di chuyển nhanh, trôi chảy khó phòng ngừa, nhưng sau đó thì cứng lại và khó vô hiệu .

*

Trên lý thuyết, ta có chuyên mục bỏ lava flows sau thời điểm đã kiểm soát & refactoring kĩ lưỡng, nhưng trong thực tiễn, việc thực hiện nó hình như rất khổ cực hoặc thậm chí là chẳng thể. Do lava flows thường có ngân sách thực hiện cao, nên tốt hơn cả để ngăn chặn chúng là ta seting được thiết kế kiến trúc tốt & một workflow làm việc hiệu quả ngay từ ban đầu ^_^.

9. Hard Coding

“Hard coding” là một antipattern được nhắc đến rất là nhiều trong những quyển sách về tiến triển website ngay ở lời nói đầu. Hard coding xảy ra khi tất cả chúng ta lưu trữ những cấu hình hoặc là dữ liệu đầu vào (chẳng hạn như các đường dẫn file, remote hosting name hay một đoạn văn bản ở từ ngữ rõ ràng và cụ thể nào đó) ở trong mã nguồn vận dụng thay vì lưu chúng ở trong những file cấu hình, database, user input hay từ một external api nào đó.

*

Vấn đề gặp phải bước này là những hard code đó sẽ chỉ hoạt động đúng đắn trong một môi trường khẳng định nào đó, & khi mà điều kiện biến đổi, chúng sẽ không còn hoạt động đúng đắn nữa.

Chẳng hạn như, ở thiên nhiên và môi trường development, bạn sử dụng một s3-bucket có tên s3-foo-development, nhưng ở môi trường tự nhiên production bạn lại sử dụng một s3-bucket khác có tên s3-foo-production, hãy thử tưởng tượng, những s3 access key đã được fix cứng ở trong code rồi thì làm thế nào bạn hoàn toàn có thể sử dụng 2 s3-bucket khác nhau trên 2 môi trường tự nhiên khác nhau như thế. Cách giải quyết và xử lý bước này là bạn phải lưu những s3 access key đó ở trong biến thiên nhiên và môi trường cho từng môi trường tự nhiên rõ ràng và đơn cử .

10. Soft Coding

Nếu như cứ nỗ lực quá mức để tránh hard coding, bạn có thể vô tình chạm trán với một antipattern trái lại với nó gọi là “soft coding”.

Trong soft coding, tất cả chúng ta mang những thứ mà đúng ra nó nên được để ở trong mã nguồn vận dụng ra những tài nguyên bên ngoài, chẳng hạn tất cả chúng ta lưu trữ business logic trong database ==”. Nguyên nhân thông dụng nhất mà tất cả chúng ta thường làm thế, là do lo ngại những business rules sẽ biến đổi trong tương lai, & lúc đó sẽ phải viết lại codes.

Trong những trường hợp cực đoan, một vận dụng với những soft coded có thể trở nên quá trừu tượng & cầu kỳ đến mức hầu hết chẳng thể hiểu được nó (đặc biệt là so với những member mới vào đội nhóm), & cực kỳ khó để debug & bảo dưỡng.

Đọc thêm: Rạp Yamaha Why Not Là Gì – Giới Trẻ Hồ Chí Minh Dùng thử Phòng Chiếu Yamaha

Tổng kết

Bài chia sẻ trên đã giới thiệu qua những Antipatterns mà tất cả chúng ta thường mắc phải trong công cuộc tiến triển vận dụng cũng như phương pháp để giải quyết chúng. Hi vọng độc giả sẽ lưu ý để tránh mắc phải chúng trong sự nghiệp lập trình của mình nhé ^_^.

Vậy là đến đây nội dung về Hardcode Là Gì ? Định Nghĩa Và Giải Thích Ý Nghĩa Hardcoded Là Gì đã dừng lại rồi. Mong ước bạn luôn theo dõi & đọc những nội dung hay của http://phptravels.vn/ trên trang web Onlineaz.vn

Chúc những bạn luôn gặt hái nhiều thành công xuất sắc trong cuộc sống !