Hard code là gì

Đây là bài chia sẻ được dịch trường đoản cú bài viết của người sáng tác Anna Monus (https://www.hongkiat.com/blog/code-optimization-coding-antipatterns/). Trong bài bác share này, bao gồm một vài chỗ được bản thân sửa thay đổi, bổ sung để cho phù hợp.Quý khách hàng vẫn xem: Hard code là gì


*

Thiết kế kiến trúc của một trang web hay là 1 ứng dụng, hoặc thiết lập một coding workflow công dụng thường xuyên khiến cho họ đề nghị đối mặt cùng với đều sự việc nan giải, thường xuyên gặp yêu cầu. Chúng ta ko cần thiết yêu cầu xử lý phần đông sự việc thiết kế này tự con số 0, vì ta rất có thể tái sử dụng được phần lớn chiến thuật sinh sống Lever phong cách xây dựng cũng như rất nhiều đoạn code tại tầng vi tế bào.

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

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


*

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

Antipatterns là gì?

Thuật ngữ "antipatterns" xuất hiện thêm lần trước tiên vào một cuốn nắn sách sở hữu tên AntiPatterns vào thời điểm năm 1998.

Nó đề cập đến đông đảo phương án tái thực hiện mà lúc đầu trông có vẻ hữu ích, nhưng dần dần kế tiếp, bọn chúng lại trlàm việc yêu cầu vô ích hơn là lợi.

Vấn đề này hoàn toàn có thể xẩy ra vì chưng các nguyên do không giống nhau, ví như nếu như chúng ta không thực hiện số đông patterns đúng bối cảnh, thiết lập, giỏi thời hạn tương xứng (các giải pháp gồm công dụng trong thừa khứ đọng không phải cơ hội nào thì cũng hoạt động đúng sinh hoạt thời khắc hiện tại tại), hoặc giữa những ngôi trường vừa lòng xấu rộng là toàn cục mô hình đã không giỏi ngay trường đoản cú Khi ban đầu rồi (>""Antipatterns cũng thường xuyên được hotline là đều mô hình thất bại. Tuy nhiên, tin vui là họ hoàn toàn rất có thể nhận thấy và tránh chúng.

Trong nội dung bài viết này, tôi vẫn ra mắt qua mang lại các bạn 10 antipatterns thông dụng tốt chạm chán nên trong quy trình cải cách và phát triển web. (Chụ ý rằng các antipatterns tôi liệt kê tiếp sau đây ko hoàn toàn giống như cùng với các gì bạn cũng có thể tìm thấy vào cuốn nắn sách tôi sẽ nói ngơi nghỉ trên).

10 Antipatterns phổ biến

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

Thời điểm tốt là 1 trong trong những yếu tố đặc biệt quan trọng vào Việc buổi tối ưu hóa những đoạn codes. Nếu chúng ta chú ý tới các tác dụng bé dại và tối ưu hóa bọn chúng quá mau chóng trong quá trình phát triển, trước khi họ biết đúng chuẩn hầu hết điều cần làm cho, vô cùng hoàn toàn có thể chúng ta đã thuận lợi 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 nhanh chóng là gốc rễ của số đông điều ác", nó hoàn toàn có thể khá bị cường điệu hóa lên một ít, nhưng rất có thể cho biết thêm rằng phần đa vấn đề nghiêm trọng về buổi tối ưu hóa mau chóng rất có thể tạo ra sau đây thế nào.

Nếu chúng ta tối ưu hóa hiệu năng trước khi tạo ra một kiến trúc công dụng, nó có thể tạo ra codes trsinh hoạt đề nghị khó khăn đọc, Việc debug với bảo trì khó khăn hơn, cùng mọi đoạn codes vượt bị đẩy vào mã nguồn của bọn họ.

Một ý tưởng phát minh giỏi để ngăn chặn Việc buổi tối ưu nhanh chóng là tuân theo cách thức lập trình YAGNI (You Aren’t Gonna Need It), nó khuyên họ cần vâng lệnh "đề xuất đồ vật gi thì thêm cái đó", chứ đọng đừng gồm mà lại "chắc hẳn rằng sau đây đã đề nghị đến".

2.Reinventing the Wheel

Reinventing the wheel - Tái sáng tạo bánh xe có thể phát âm nôm na là mẫu bánh xe cộ nó đã có sáng tạo trường đoản cú thời xưa, với nó cũng tốt nhất có thể rồi, đừng gồm mất thời hạn đi phát minh lại nó nữa

*

Reinventing the wheel không chỉ tạo ra tiêu tốn lãng phí thời hạn, mà hơn nữa phần đa giải pháp tùy lựa chọn, đặc biệt là hồ hết chức năng cơ phiên bản hi hữu khi tốt hơn phần đa chuẩn mà các nhà cách tân và phát triển xuất xắc người tiêu dùng đã thử nghiệm siêu kĩ rồi.

3. Dependency Hell

Trái ngược cùng với "reinventing the wheel", chúng ta gồm một antipattern không giống cũng phổ biến chính là "dependency hell".

Nếu, gắng bởi vì hặm hụi viết những trang bị từ đầu, bọn họ lại quá lạm dụng việc sử dụng thư viện mặt thiết bị bố dựa trên rất nhiều phiên phiên bản ví dụ của không ít thư viện khác. Vấn đề này sẽ khiến cho các bạn dễ ợt cần đương đầu cùng với đầy đủ trường hợp khó khăn cai quản mỗi một khi hy vọng update thư viện, vày nhiều khi hầu như dependencies này sau khi cập nhật lại ko cân xứng cùng với các chiếc khác.


*

Dependency hell rất có thể được xử lý bằng phương pháp áp dụng các package managers có khả năng cập nhật logic những dependencies nhằm bọn chúng vẫn hoàn toàn có thể tương hợp được cùng nhau. Nếu họ vấp cần quá nhiều vụ việc, câu hỏi refactoring cũng rất có thể là một trong những phát minh hay.

4. Spaghetti Code

Kết trái của một xây cất kiến trúc kém là một trong đống codes ông xã chất lên nhau y hệt như một chén mì Spaghetti vậy, khôn cùng rối rắm với phức tạp. Những Spaghetti codes cực kỳ khó khăn để hiểu với hầu hết cạnh tranh có thể hiểu được nó chuyển động như thế nào (>"Don"t Repeat Yourself (DRY), rứa vì tạo ra giải pháp giải quyết và xử lý vấn đề, chúng ta lại đi gom góp từng mẩu codes không còn vị trí này mang lại chỗ khác, tiếp nối sửa đổi lại nó cho tương xứng cùng với ngữ chình họa.

Xem thêm: Các Tư Thế Ngủ Tốt Cho Bà Bầu Nên Nằm Ngủ Như Thế Nào ? Bà Bầu Nên Nằm Nghiêng Bên Nào


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

Copy và paste programming không chỉ là thấy sinh sống đều lập trình viên mới, ngoại giả sinh sống mọi lập trình sẵn viên đã tất cả kinh nghiệm tay nghề, bởi vì đa số người trong số họ có Xu thế sử dụng đông đảo đoạn codes đã có viết sẵn, kiểm soát kĩ lưỡng của họ mang lại phần lớn tác vụ cố kỉnh thể, vấn đề này thuận tiện chạm chán đề nghị sự tái diễn không muốn.

7. Cargo-Cult Programming

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


Antipattern này cũng đều có đông đảo thể hiện tương tự như thế. Ta thực hiện các frameworks, thỏng viện, giải pháp, tốt các thiết kế patterns,...hữu ích đến họ, mà ko thực thụ hiểu tại vì sao chúng ta cần phải sử dụng mang lại chúng xuất xắc rất nhiều technology kia vận động ra sao.

Cargo cult programming xẩy ra ngơi nghỉ rất nhiều lập trình sẵn viên không tồn tại kĩ năng hoặc là thiết kế viên bắt đầu (hay những những người thiếu hụt kĩ năng về phương diện làm sao đó), bọn họ sao chép đông đảo mã mối cung cấp từ bỏ vị trí này đến địa điểm khác trong vận dụng nhưng mà đa số không nhiều hoặc không hiểu biết biết về ý nghĩa thiệt sự của bọn chúng. Antipattern này không những tệ vày làm cho áp dụng của họ bị "bơm căng phồng", ngoại giả hoàn toàn có thể dễ dàng gửi phần đa lỗi new vào mã mối cung cấp của chúng ta.

8. Lava Flow

Chúng ta nhắc tới "Lava flow" antipattern mọi khi rất cần phải xử lý rất nhiều đoạn mã codes quá hoặc bao gồm unique thấp nhưng mà có vẻ chẳng thể bóc tách rời với vận dụng, dẫu vậy chúng ta không trọn vẹn hiểu được bọn chúng tất cả tác dụng gì hoặc tác động của chúng đến toàn thể ứng dụng như thế nào. Vì vậy, việc thải trừ chúng là một trong những việc vô cùng rủi ro khủng hoảng.

Điều này liên tiếp xẩy ra cùng với gần như legacy codes, hoặc là khi đoạn codes này được viết bởi những người dân khác (thường thiếu thốn tài liệu bao gồm xác), hoặc là khi dự án công trình được đưa trường đoản cú quá trình development lịch sự production thừa nkhô giòn.

Cái tên của antipattern này biểu thị sự tương đồng với dung nđê mê núi lửa, thuở đầu thì dịch rời nkhô nóng, trôi chảy khó chống dự phòng, tuy thế tiếp nối thì cứng lại với cạnh tranh loại trừ.


Trên lý thuyết, ta hoàn toàn có thể loại trừ lava flows sau khoản thời gian sẽ bình chọn với refactoring kĩ lưỡng, nhưng vào thực tế, vấn đề triển khai nó có thể khôn xiết trở ngại hoặc thậm chí còn là ko thể. Do lava flows thông thường có ngân sách tiến hành cao, đề nghị giỏi hơn không còn để ngăn ngừa chúng là ta tùy chỉnh cấu hình được kiến trúc xây dựng tốt cùng một workflow thao tác công dụng tức thì tự ban đầu ^_^.

9. Hard Coding

"Hard coding" là 1 antipattern được nhắc đến tương đối nhiều trong những cuốn sách về cách tân và phát triển web ngay ở khẩu ca đầu. Hard coding xảy ra Khi bọn họ lưu trữ đầy đủ thông số kỹ thuật hoặc là tài liệu đầu vào (ví dụ như các đường dẫn file, remote host name hay là 1 đoạn văn uống bạn dạng sinh hoạt ngôn ngữ rõ ràng làm sao đó) sinh hoạt trong mã nguồn ứng dụng nạm do lưu giữ bọn chúng ngơi nghỉ giữa những file thông số kỹ thuật, database, user input xuất xắc từ một external api như thế nào đó.


Vấn đề chạm mặt phải làm việc đó là hầu như hard code này sẽ chỉ vận động đúng mực trong một môi trường thiên nhiên cố định như thế nào đó, với Khi cơ mà ĐK chuyển đổi, bọn chúng đã không còn vận động đúng đắn nữa.

lấy một ví dụ nlỗi, sinh sống môi trường xung quanh development, chúng ta sử dụng một s3-bucket có tên s3-foo-development, tuy thế sống môi trường production chúng ta lại áp dụng một s3-bucket không giống có tên s3-foo-production, hãy thử tưởng tượng, hồ hết s3 access key đã có được fix cứng làm việc trong code rồi thì làm thế nào bạn có thể thực hiện 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 nghỉ ngơi đây là bạn buộc phải giữ đều s3 access key đó sinh sống trong đổi thay môi trường thiên nhiên cho từng môi trường ví dụ.

10. Soft Coding

Nếu như cứ đọng cố gắng trên mức cho phép để rời hard coding, bạn có thể vô tình chạm trán với cùng 1 antipattern trở lại với nó Hotline là "soft coding".

Trong soft coding, bọn họ gửi hầu như sản phẩm công nghệ mà đúng ra nó nên được đặt ở vào mã mối cung cấp áp dụng ra phần đa tài ngulặng mặt ngoài, ví dụ chúng ta tàng trữ business súc tích vào database ==". Lý vì phổ biến tốt nhất nhưng mà họ thường làm nỗ lực, là vì băn khoăn lo lắng những business rules đang chuyển đổi trong tương lai, với dịp đó sẽ đề xuất viết lại codes.

Xem thêm: Ielts Là Gì? Bằng Ielts Có Giá Trị Như Thế Nào Và Giá Trị Bao Lâu?

Kết luận

Bài chia sẻ trên sẽ giới thiệu qua phần lớn Antipatterns nhưng mà bọn họ thường xuyên mắc phải trong quá trình cải cách và phát triển ứng dụng cũng như cách để khắc phục và hạn chế chúng. Hi vọng độc giả vẫn để ý nhằm rời mắc phải chúng trong sự nghiệp xây dựng của mình nhé ^_^.