Hard code là gì

Đây là bài share được dịch từ nội dung bài viết của người sáng tác Anmãng cầu Monus (https://www.hongkiat.com/blog/code-optimization-coding-antipatterns/). Trong bài xích share này, gồm một vài khu vực được bản thân sửa thay đổi, bổ sung khiến cho cân xứng.

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

*

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

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

*

Mặc dù Design patterns là phương tiện đi lại hoàn hảo nhằm nâng cao tiến trình cách tân và phát triển của chúng ta bằng cách áp dụng đều phương pháp đã có được kiểm bệnh xuất sắc. Tuy nhiên, đôi lúc phần lớn Design patterns này cũng đem lại hầu như hậu quả xấu đi so với chúng. Lúc này, chúng được Hotline là hồ hết Antipatterns.

Antipatterns là gì?

Thuật ngữ "antipatterns" mở ra lần đầu tiên vào một cuốn sách với tên AntiPatterns vào thời điểm năm 1998.

Nó đề cùa tới những giải pháp tái sử dụng mà lại ban đầu trông dường như hữu ích, cơ mà dần tiếp đến, bọn chúng lại trsống đề xuất có hại hơn là lợi.

Điều này có thể xảy ra vị các nguyên nhân khác nhau, ví dụ như nếu như họ ko thực hiện mọi patterns đúng bối cảnh, cài đặt, xuất xắc thời gian phù hợp (các giải pháp tất cả kết quả trong quá khứ chưa phải cơ hội nào cũng vận động đúng ở thời điểm hiện tại), hoặc trong những ngôi trường vừa lòng xấu rộng là toàn cục quy mô dường như không tốt ngay từ bỏ Khi ban đầu rồi (>""Antipatterns cũng thường xuyên được Điện thoại tư vấn là phần đông mô hình thất bại. Tuy nhiên, tin vui là họ trọn vẹn hoàn toàn có thể phân biệt và tránh giảm chúng.

Trong bài viết này, tôi đang giới thiệu qua cho các bạn 10 antipatterns thông dụng tốt chạm chán yêu cầu trong quy trình cải tiến và phát triển website. (Crúc ý rằng đa số antipatterns tôi liệt kê sau đây ko hoàn toàn giống cùng với đông đảo gì chúng ta có thể tra cứu thấy trong cuốn nắn sách tôi đã đề cập ở 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 số những yếu tố đặc biệt trong việc buổi tối ưu hóa các đoạn codes. Nếu họ xem xét tới các hiệu quả bé dại và về tối ưu hóa chúng vượt sớm trong quy trình cải cách và phát triển, trước lúc chúng ta biết chính xác số đông vấn đề cần làm, cực kỳ có thể chúng ta sẽ thuận lợi mắc phải antipattern "Tối ưu sớm".

*

Theo câu nói danh tiếng của Donald Knuth: "Tối ưu mau chóng là nền tảng gốc rễ của phần nhiều điều ác", nó rất có thể tương đối bị cường hóa lên một chút, nhưng mà rất có thể cho biết rằng rất nhiều sự việc rất lớn về buổi tối ưu hóa sớm hoàn toàn có thể gây ra trong tương lai như thế nào.

Nếu chúng ta buổi tối ưu hóa tính năng trước lúc thiết kế một kiến trúc hiệu quả, nó hoàn toàn có thể tạo ra codes trsinh hoạt đề nghị khó khăn đọc, việc debug cùng gia hạn khó khăn hơn, với đa số đoạn codes quá bị đẩy vào mã nguồn của bọn họ.

Một phát minh giỏi nhằm ngăn ngừa Việc tối ưu mau chóng là tuân theo bề ngoài lập trình sẵn YAGNI (You Aren’t Gonna Need It), nó khulặng bọn họ đề xuất vâng lệnh "đề nghị đồ vật gi thì thêm chiếc đó", chđọng chớ gồm nhưng mà "chắc hẳn rằng sau đây vẫn bắt buộc đến".

2.Reinventing the Wheel

Reinventing the wheel - Tái phát minh bánh xe hoàn toàn có thể đọc nôm mãng cầu là loại bánh xe nó đã làm được phát minh từ bỏ thời xưa, và nó cũng cực tốt rồi, chớ có mất thời hạn đi sáng tạo lại nó nữa

*

Reinventing the wheel không chỉ gây nên lãng phí thời hạn, Ngoài ra hầu như giải pháp tùy lựa chọn, nhất là hầu như công dụng cơ phiên bản thi thoảng Khi giỏi hơn phần đông chuẩn mà những bên cải cách và phát triển hay người dùng đã trải nghiệm hết sức kĩ rồi.

3. Dependency Hell

Trái ngược với "reinventing the wheel", họ có một antipattern không giống cũng thịnh hành sẽ là "dependency hell".

Nếu, thay vày cặm cụi viết hầu hết sản phẩm từ đầu, chúng ta lại vượt lạm dụng quá câu hỏi thực hiện thỏng viện mặt máy cha dựa trên đều phiên bản rõ ràng của những thỏng viện khác. Như vậy vẫn khiến chúng ta thuận tiện phải đương đầu cùng với số đông trường hợp cực nhọc thống trị mọi khi ước ao cập nhật thư viện, vị đôi lúc các dependencies này sau khi update lại không cân xứng cùng với những cái khác.

*

Dependency hell hoàn toàn có thể được xử lý bằng cách sử dụng các package managers có tác dụng cập nhật hợp lý các dependencies nhằm bọn chúng vẫn có thể cân xứng được cùng nhau. Nếu chúng ta vấp yêu cầu quá nhiều sự việc, Việc refactoring cũng rất có thể là 1 trong phát minh tuyệt.

4. Spaghetti Code

"Spaghetti code" chắc rằng là antipattern lừng danh tốt nhất. Nó diễn tả một vận dụng khó khăn debug với điều chỉnh bởi thiếu hụt kiến trúc phù hợp.

Xem thêm: Darius Mùa 11: Bảng Ngọc Bổ Trợ, Cách Lên Đồ Darius Lol, Bảng Ngọc Darius Mùa 10

Kết trái của một kiến tạo kiến trúc kém là 1 trong lô codes ông chồng hóa học lên nhau giống hệt như một bát mì Spaghetti vậy, khôn cùng rối rắm và phức tạp. Những Spaghetti codes siêu nặng nề nhằm hiểu cùng hầu như cạnh tranh hoàn toàn có thể gọi được nó vận động như thế nào (>"Don"t Repeat Yourself (DRY), chũm bởi tạo ra chiến thuật giải quyết và xử lý vấn đề, chúng ta lại đi cóp nhặt từng mẩu codes không còn chỗ này mang lại nơi khác, kế tiếp chỉnh sửa lại nó mang lại cân xứng cùng với ngữ chình họa.

*

Kết trái của cách thức này là chúng ta tất cả số đông đoạn codes bị lặp đi lặp lại, bởi phần đông bọn chúng chỉ khác nhau tại 1 vài ba điểm nhỏ dại.

Copy và paste programming không những thấy sinh sống phần đông lập trình sẵn viên new, bên cạnh đó sống đông đảo lập trình viên sẽ có tay nghề, bởi vì nhiều người trong những bọn họ gồm Xu thế thực hiện đông đảo đoạn codes đã có được viết sẵn, kiểm tra kĩ lưỡng của họ cho các tác vụ nuốm thể, vấn đề đó thuận tiện gặp gỡ bắt buộc sự tái diễn không mong muốn.

7. Cargo-Cult Programming

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

*

Antipattern này cũng có phần đông biểu hiện tương tự như vậy. Ta áp dụng đầy đủ frameworks, thư viện, giải pháp, hay những kiến thiết patterns,...bổ ích mang lại chúng ta, mà không thực thụ đọc tại sao chúng ta cần được sử dụng đến chúng xuất xắc đông đảo technology đó chuyển động ra sao.

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

8. Lava Flow

Chúng ta nói đến "Lava flow" antipattern mỗi lúc rất cần được giải pháp xử lý phần nhiều đoạn mã codes quá hoặc có chất lượng thấp mà lại có thể quan trọng tách rời cùng với áp dụng, tuy thế chúng ta ko trọn vẹn gọi được bọn chúng có tính năng gì hoặc ảnh hưởng của chúng đến cục bộ ứng dụng như thế nào. Vì vậy, Việc sa thải chúng là 1 trong câu hỏi rất rủi ro.

Điều này tiếp tục xảy ra cùng với đầy đủ legacy codes, hoặc là lúc đoạn codes này được viết vì chưng những người khác (hay thiếu thốn tư liệu bao gồm xác), hoặc là lúc dự án được chuyển tự quy trình tiến độ development lịch sự production vượt nkhô cứng.

Cái thương hiệu của antipattern này bộc lộ sự tương đồng với dung nđam mê núi lửa, ban sơ thì di chuyển nkhô giòn, trôi rã khó phòng phòng ngừa, tuy nhiên tiếp nối thì cứng lại với cực nhọc sa thải.

*

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

9. Hard Coding

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

*

Vấn đề chạm mặt đề nghị sinh sống đấy là hầu hết hard code này sẽ chỉ hoạt động đúng đắn trong một môi trường cố định nào đó, cùng khi nhưng mà điều kiện biến đổi, chúng vẫn không thể chuyển động chính xác nữa.

lấy ví dụ nlỗi, sinh sống môi trường xung quanh development, bạn sử dụng một s3-bucket có tên s3-foo-development, tuy thế ở môi trường production bạn 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, đông đảo s3 access key đã làm được fix cứng sống trong code rồi thì làm sao chúng ta có thể thực hiện 2 s3-bucket khác biệt trên 2 môi trường xung quanh không giống nhau điều đó. Cách xử lý sống đó là bạn yêu cầu lưu những s3 access key kia ngơi nghỉ trong biến đổi môi trường xung quanh mang đến từng môi trường rõ ràng.

10. Soft Coding

Nếu như cđọng nỗ lực trên mức cho phép nhằm tách hard coding, chúng ta cũng có thể vô tình đụng trán với một antipattern ngược trở lại với nó hotline là "soft coding".

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

Trong phần lớn ngôi trường hợp rất đoan, một vận dụng với rất nhiều soft coded rất có thể trngơi nghỉ bắt buộc thừa trừu tượng và phức tạp tới cả gần như là quan trọng gọi được nó (nhất là so với phần đa thành viên bắt đầu vào team), với cực kì khó khăn để debug với bảo trì.

Xem thêm: Https://Topgamehot

Kết luận

Bài chia sẻ trên sẽ trình làng qua phần lớn Antipatterns nhưng mà chúng ta thường xuyên mắc phải trong quá trình cải cách và phát triển áp dụng cũng như cách để khắc phục bọn chúng. Hi vọng độc giả đã chú ý nhằm tránh mắc phải chúng vào sự nghiệp lập trình sẵn của bản thân nhé ^_^.


Chuyên mục: Tin Tức