Hard code là gì

Đây là bài bác share được dịch tự nội dung bài viết của tác giả Anna Monus (https://www.hongkiat.com/blog/code-optimization-coding-antipatterns/). Trong bài xích chia sẻ này, tất cả một vài khu vực được bản thân sửa thay đổi, bổ sung làm cho phù hợp.quý khách đã xem: Hard code là gì


*

Thiết kế phong cách thiết kế của một website hay như là một vận dụng, hoặc tùy chỉnh một coding workflow tác dụng liên tiếp khiến chúng ta cần đối mặt với các sự việc nan giải, thường xuyên gặp mặt phải. Chúng ta không cần thiết bắt buộc giải quyết những vụ việc kiến thiết này từ bỏ con số 0, vì ta hoàn toàn có thể tái sử dụng được số đông phương án ngơi nghỉ Lever phong cách thiết kế cũng tương tự mọi đoạn code trên tầng vi mô.Quý Khách vẫn xem: Hard code là gì

Design patterns là một trong những giữa những giải pháp tái sử dụng vào một vài ngôi trường thích hợp nhất quyết, có thể có lợi để giải quyết gần như sự thế thường xảy ra và rất có thể giúp chúng ta về tối ưu phần đa đoạn codes của chính bản thân mình.

Bạn đang xem: Hard code là gì


*

Mặc mặc dù Design patterns là phương tiện hoàn hảo để nâng cao tiến trình phát triển của bọn họ bằng phương pháp thực hiện gần như công thức đã được kiểm chứng xuất sắc. Tuy nhiên, đôi khi gần như Design patterns đó cũng mang đến phần đông kết quả tiêu cực đối với chúng. Trong thời điểm này, chúng được hotline là phần đông Antipatterns.

Antipatterns là gì?

Thuật ngữ "antipatterns" xuất hiện thêm lần thứ nhất trong một cuốn sách với thương hiệu AntiPatterns vào năm 1998.

Nó đề cập đến những phương án tái áp dụng cơ mà ban đầu trông có vẻ hữu ích, nhưng dần dần kế tiếp, bọn chúng lại trngơi nghỉ yêu cầu ăn hại hơn là lợi.

Điều này hoàn toàn có thể xảy ra do các nguyên nhân khác nhau, ví dụ như nếu như bọn họ không áp dụng phần nhiều patterns đúng toàn cảnh, setup, tuyệt thời hạn tương xứng (các giải pháp có công dụng vào vượt khứ đọng không hẳn thời gian nào thì cũng chuyển động đúng ngơi nghỉ thời gian hiện nay tại), hoặc trong những trường thích hợp xấu rộng là toàn thể quy mô dường như không xuất sắc tức thì từ lúc bước đầu rồi (>""Antipatterns cũng thường xuyên được gọi là hầu như quy mô thất bại. Tuy nhiên, tin vui là bọn họ hoàn toàn có thể nhận ra và tránh giảm chúng.

Trong nội dung bài viết này, tôi đang giới thiệu qua đến chúng ta 10 antipatterns thịnh hành xuất xắc chạm mặt đề xuất trong quy trình trở nên tân tiến web. (Chú ý rằng các antipatterns tôi liệt kê tiếp sau đây không trọn vẹn tương tự cùng với hầu như gì bạn cũng có thể search thấy vào cuốn sách tôi đã nói nghỉ ngơi trên).

10 Antipatterns phổ biến

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

Thời điểm tốt là một trong những trong số những nhân tố quan trọng đặc biệt vào bài toán tối ưu hóa những đoạn codes. Nếu bọn họ xem xét đến các tác dụng nhỏ và buổi tối ưu hóa bọn chúng thừa sớm trong quá trình cải cách và phát triển, trước khi bọn họ biết đúng đắn phần đông điều cần làm, cực kỳ rất có thể bọn họ vẫn thuận lợi phạm phải antipattern "Tối ưu sớm".


*

Theo lời nói nổi tiếng của Donald Knuth: "Tối ưu sớm là căn nguyên của đông đảo điều ác", nó hoàn toàn có thể khá bị cường điệu hóa lên một chút, cơ mà hoàn toàn có thể cho thấy thêm rằng phần nhiều vụ việc rất lớn về tối ưu hóa nhanh chóng rất có thể gây nên sau này thế nào.

Nếu họ tối ưu hóa tính năng trước khi kiến tạo một kiến trúc kết quả, nó có thể gây nên codes trlàm việc phải cực nhọc đọc, Việc debug với gia hạn khó khăn hơn, và hồ hết đoạn codes vượt bị đẩy vào mã nguồn của bọn họ.

Một phát minh tốt để ngăn ngừa vấn đề buổi tối ưu mau chóng là theo đúng cách thức thiết kế YAGNI (You Aren’t Gonmãng cầu Need It), nó khulặng bọn họ đề nghị tuân hành "bắt buộc đồ vật gi thì thêm dòng đó", chứ đừng bao gồm mà lại "chắc là sau đây đã cần đến".

2.Reinventing the Wheel

Reinventing the wheel - Tái phát minh sáng tạo bánh xe hoàn toàn có thể gọi nôm mãng cầu là mẫu bánh xe pháo nó đã làm được sáng tạo tự rất lâu rồi, cùng nó cũng tốt nhất rồi, chớ tất cả mất thời gian đi phát minh sáng tạo lại nó nữa

*

Reinventing the wheel không chỉ gây nên tiêu tốn lãng phí thời hạn, mà hơn nữa các giải pháp tùy chọn, đặc biệt là đa số tác dụng cơ phiên bản thảng hoặc khi xuất sắc hơn phần nhiều chuẩn mà những công ty cách tân và phát triển hay người tiêu dùng đã trải nghiệm cực kỳ kĩ rồi.

3. Dependency Hell

Trái ngược cùng với "reinventing the wheel", họ có một antipattern khác cũng phổ biến sẽ là "dependency hell".

Nếu, cố gắng do cặm cụi viết phần nhiều thiết bị từ trên đầu, bọn họ lại vượt sử dụng việc áp dụng thỏng viện bên đồ vật ba dựa vào phần nhiều phiên phiên bản rõ ràng của không ít tlỗi viện khác. Điều này đang khiến cho chúng ta dễ ợt buộc phải đương đầu cùng với những trường hợp khó khăn thống trị mỗi khi ao ước cập nhật tlỗi viện, do nhiều lúc gần như dependencies này sau thời điểm update lại ko tương thích với các chiếc khác.


*

Dependency hell hoàn toàn có thể được giải quyết và xử lý bằng cách sử dụng những package managers có công dụng update xuất sắc các dependencies để chúng vẫn rất có thể tương thích được với nhau. Nếu chúng ta vấp phải rất nhiều sự việc, bài toán refactoring cũng rất có thể là 1 trong những ý tưởng xuất xắc.

Xem thêm: Cách Tắt Avast Chặn Phần Mềm Avast Trên Máy Tính Pc & Laptop

4. Spaghetti Code

Kết quả của cách thức này là bọn họ có số đông đoạn codes bị lặp đi lặp lại, vày hầu như bọn chúng chỉ khác biệt tại một vài ba điểm nhỏ tuổi.

Copy and paste programming không những thấy sinh hoạt đông đảo lập trình sẵn viên bắt đầu, mà còn nghỉ ngơi hồ hết lập trình sẵn viên đang tất cả kinh nghiệm, chính vì đa số người trong các chúng ta tất cả xu hướng thực hiện hồ hết đoạn codes đã làm được viết sẵn, chất vấn kĩ lưỡng của mình mang đến phần nhiều tác vụ vắt thể, điều đó thuận lợi chạm chán buộc phải sự lặp lại không hề muốn.

7. Cargo-Cult Programming

Cái thương hiệu “cargo-cult programming” được xuất phát từ một hiện tượng kỳ lạ dân tộc học sở hữu tên "cargo cult". Cargo cults mở ra sống Nam Tỉnh Thái Bình Dương sau cố kỉnh chiến đồ vật II, khi xúc tiếp cùng với nền vnạp năng lượng minh tiên tiến và phát triển, người bản địa cđọng nghĩ rằng những sản phẩm nlỗi Coca-Cola, TVs, giỏi tủ giá buốt trong số những tàu chsống hàng với lên đảo, rất nhiều được chế tạo ra vì số đông quyền năng hết sức nhiên, với chúng ta tin tưởng rằng mỗi khi tiến hành mọi nghi lễ ma thuật tựa như như phong tục của bạn phương thơm Tây, phần nhiều thùng hóa học đầy sản phẩm & hàng hóa này sẽ lại xuất hiện trở về.

Antipattern này cũng đều có hồ hết biểu hiện tương tự như vậy. Ta áp dụng gần như frameworks, thư viện, giải pháp, tuyệt các kiến thiết patterns,...có ích đến bọn họ, mà ko thực thụ gọi tại sao chúng ta cần được dùng mang đến chúng hay phần đông công nghệ kia vận động ra sao.

Cargo cult programming xẩy ra ở phần lớn lập trình sẵn viên không có kĩ năng hoặc là lập trình sẵn viên bắt đầu (Hay là những người thiếu thốn kĩ năng về mặt nào đó), chúng ta sao chép mọi mã nguồn trường đoản cú chỗ này mang lại địa điểm khác vào áp dụng nhưng hầu hết không nhiều hoặc thiếu hiểu biết nhiều biết về chân thành và ý nghĩa thật sự của chúng. Antipattern này không những tệ do làm cho ứng dụng của họ bị "bơm căng phồng", mà hơn nữa có thể thuận tiện đưa phần đông lỗi mới vào mã nguồn của bọn họ.

8. Lava Flow

Chúng ta nhắc đến "Lava flow" antipattern mỗi khi rất cần phải xử lý phần đa đoạn mã codes thừa hoặc gồm quality thấp nhưng chắc là không thể bóc rời với áp dụng, cơ mà bọn họ không trọn vẹn phát âm được bọn chúng bao gồm tác dụng gì hoặc tác động của bọn chúng mang đến toàn cục vận dụng ra sao. Vì vậy, vấn đề thải trừ chúng là 1 Việc vô cùng khủng hoảng.

Vấn đề này liên tiếp xẩy ra cùng với rất nhiều legacy codes, hoặc là khi đoạn codes này được viết do những người dân khác (hay thiếu tài liệu bao gồm xác), hoặc là khi dự án được đưa từ tiến độ development lịch sự production thừa nhanh.

Cái thương hiệu của antipattern này biểu đạt sự tương đồng cùng với dung nsi mê núi lửa, ban sơ thì di chuyển nkhô nóng, trôi tung khó phòng dự phòng, tuy thế tiếp đến thì cứng lại cùng cạnh tranh sa thải.

Trên kim chỉ nan, ta hoàn toàn có thể loại bỏ lava flows sau khi đang khám nghiệm cùng refactoring kĩ lưỡng, nhưng mà vào thực tiễn, câu hỏi thực hiện nó giống như hết sức khó khăn hoặc thậm chí còn là ko thể. Do lava flows thông thường có chi phí thực hiện cao, cần xuất sắc hơn hết để ngăn chặn bọn chúng là ta thiết lập được kiến trúc thi công xuất sắc và một workflow làm việc kết quả tức thì tự lúc đầu ^_^.

9. Hard Coding

"Hard coding" là 1 antipattern được nói đến tương đối nhiều trong những cuốn sách về cải tiến và phát triển website tức thì nghỉ ngơi tiếng nói đầu. Hard coding xảy ra khi chúng ta lưu trữ đều thông số kỹ thuật Hay những tài liệu đầu vào (ví như những đường truyền tệp tin, remote host name hay như là một đoạn văn uống bạn dạng ở ngôn từ ví dụ làm sao đó) ngơi nghỉ vào mã mối cung cấp ứng dụng thế do giữ chúng nghỉ ngơi giữa những file cấu hình, database, user input đầu vào giỏi từ 1 external api nào đó.

Vấn đề gặp phải ngơi nghỉ đó là đông đảo hard code đó sẽ chỉ chuyển động đúng đắn trong một môi trường xung quanh cố định như thế nào đó, với Khi mà lại ĐK thay đổi, bọn chúng đang không còn chuyển động đúng mực nữa.

lấy ví dụ như nlỗi, sinh hoạt môi trường xung quanh development, các bạn áp dụng một s3-bucket có tên s3-foo-development, nhưng lại sinh hoạt môi trường xung quanh production chúng ta lại thực hiện một s3-bucket khác có tên s3-foo-production, hãy thử tưởng tượng, các s3 access key đã được fix cứng sống trong code rồi thì làm thế nào bạn có thể áp dụng 2 s3-bucket không giống nhau trên 2 môi trường xung quanh không giống nhau như vậy. Cách giải quyết và xử lý sống đó là bạn phải lưu giữ phần lớn s3 access key đó nghỉ ngơi trong biến hóa môi trường thiên nhiên cho từng môi trường ví dụ.

10. Soft Coding

Nếu nlỗi cứ nỗ lực quá mức để tách hard coding, chúng ta cũng có thể vô tình va trán với 1 antipattern ngược chở lại với nó Điện thoại tư vấn là "soft coding".

Xem thêm: Feeding Frenzy 2 Video Game), Flushin Frenzy : Mattel Games

Chuandotan) · Twitter, 7 Chuanvì Tan Ideas

Kết luận

Bài chia sẻ trên đang reviews qua hầu như Antipatterns mà bọn họ hay mắc phải trong quá trình phát triển vận dụng cũng như cách để khắc chế chúng. Hi vọng độc giả vẫn chăm chú để tránh phạm phải bọn chúng vào sự nghiệp lập trình sẵn của chính bản thân mình nhé ^_^.


Chuyên mục: Tin Tức