Hard code là gì

     

Đây là bài chia sẻ được dịch từ bài viết của người sáng tác Anna Monus (https://www.hongkiat.com/blog/code-optimization-coding-antipatterns/). Vào bài share này, có một số trong những chỗ được bản thân sửa đổi, bổ sung để mang đến phù hợp.Bạn đã xem: Hard code là gì


*

Thiết kế bản vẽ xây dựng của một website hay là 1 ứng dụng, hoặc tùy chỉnh một coding workflow tác dụng thường xuyên khiến họ phải đối mặt với những vấn đề nan giải, thường xuyên chạm mặt phải. Họ không quan trọng phải xử lý những vấn đề thi công này từ con số 0, bởi ta rất có thể tái sử dụng được những chiến thuật ở lever kiến trúc tương tự như những đoạn code tại tầng vi mô.Bạn đang xem: Hard code là gì

Design patterns là một trong những giải pháp tái sử dụng trong một số trong những trường hợp duy nhất định, có thể hữu ích để xử lý những sự cầm thường xảy ra và có thể giúp bọn họ tối ưu đa số đoạn codes của mình.Bạn sẽ xem: Hard code là gì


*

Mặc dù Design patterns là phương tiện tuyệt đối hoàn hảo để nâng cao quy trình cải cách và phát triển của bọn chúng ta bằng cách sử dụng những phương pháp đã được kiểm bệnh tốt. Mặc dù nhiên, nhiều khi những design patterns kia cũng đem đến những hậu quả tiêu cực so với chúng. Thời điểm này, chúng được call là những Antipatterns.

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

Antipatterns là gì?

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

Nó đề cập cho những phương án tái áp dụng mà thuở đầu trông có vẻ như hữu ích, tuy thế dần sau đó, chúng lại trở nên bất lợi hơn là lợi.

Điều này có thể xảy ra vị nhiều tại sao khác nhau, ví dụ như nếu chúng ta không sử dụng những patterns đúng bối cảnh, mua đặt, giỏi thời gian cân xứng (các giải pháp có tác dụng trong thừa khứ chưa hẳn lúc nào cũng hoạt động đúng ở thời khắc hiện tại), hoặc trong những trường đúng theo xấu hơn là tổng thể mô hình đã không tốt ngay trường đoản cú khi ban đầu rồi (>""Antipatterns cũng thường được điện thoại tư vấn là những mô hình thất bại. Tuy nhiên, tin vui là họ hoàn toàn hoàn toàn có thể nhận biết và nên tránh chúng.

Trong bài viết này, tôi sẽ reviews qua cho chúng ta 10 antipatterns phổ biến hay gặp mặt phải trong vượt trình cách tân và phát triển web. (Chú ý rằng hầu như antipatterns tôi liệt kê dưới đây không hoàn toàn giống với mọi gì chúng ta có thể tìm thấy trong cuố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à trong số những yếu tố đặc trưng trong việc tối ưu hóa những đoạn codes. Nếu họ để ý đến các hiệu quả bé dại và tối ưu hóa chúng quá nhanh chóng trong quy trình phát triển, trước khi bọn họ biết đúng chuẩn những vấn đề cần làm, rất tất cả thể chúng ta sẽ dễ ợt mắc nên antipattern "Tối ưu sớm".


*

Theo câu nói khét tiếng của Donald Knuth: "Tối ưu mau chóng là nền tảng gốc rễ của đa số điều ác", nó có thể hơi bị cường hóa lên một chút, nhưng gồm thể cho thấy rằng những vấn đề nghiêm trọng về về tối ưu hóa sớm có thể gây ra vào tương lai như vậy nào.

Nếu bọn họ tối ưu hóa hiệu năng trước lúc xây dựng một kiến trúc hiệu quả, nó hoàn toàn có thể gây ra codes trở buộc phải khó đọc, việc debug và bảo trì khó khăn hơn, và những đoạn codes thừa bị đẩy vào mã nguồn của bọn chúng ta.

Một ý tưởng giỏi để ngăn ngừa việc về tối ưu sớm là tuân theo vẻ ngoài lập trình YAGNI (You Aren’t Gonna Need It), nó khuyên họ nên tuân thủ "cần vật gì thì thêm loại đó", chứ đừng có mà "chắc là trong tương lai sẽ đề xuất đến".

2.Reinventing the Wheel

Reinventing the wheel - Tái phát minh sáng tạo bánh xe có thể hiểu nôm na là cái bánh xe nó vẫn được sáng tạo từ rất lâu rồi, cùng nó cũng cực 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 tiêu tốn lãng phí thời gian, ngoài ra những giải pháp tùy chọn, đặc biệt là những tác dụng cơ bạn dạng hiếm khi tốt hơn phần đa chuẩn mà những nhà trở nên tân tiến hay người dùng đã test nghiệm siêu kĩ rồi.

3. Dependency Hell

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

Nếu, thay bởi cặm cụi viết gần như thứ từ bỏ đầu, họ lại quá sử dụng việc thực hiện thư viện mặt thứ ba dựa vào những phiên bản cụ thể của rất nhiều thư viện khác. Điều này sẽ khiến cho bạn dễ dàng phải đối mặt với những tình huống khó thống trị mỗi lúc muốn update thư viện, vì đôi lúc những dependencies này sau khi update lại không tương thích với những chiếc khác.


*

4. Spaghetti Code

Kết trái của phương thức này là chúng ta có những đoạn codes bị lặp đi lặp lại, vì phần lớn chúng chỉ khác biệt ở một vài ba điểm nhỏ.

Xem thêm: Cách Xác Định Hướng Gió Trên Bản Đồ, Cách Xác Định Hướng Gió

Copy and paste programming không chỉ thấy ở hầu như lập trình viên mới, mà hơn nữa ở phần đa lập trình viên đã tất cả kinh nghiệm, chính vì nhiều người trong số họ có xu hướng sử dụng phần đa đoạn codes đã có được viết sẵn, chất vấn kĩ lưỡng của họ cho gần như tác vụ núm thể, vấn đề đó dễ dàng gặp phải sự lặp lại không mong mỏi muốn.

7. Cargo-Cult Programming

Cái thương hiệu “cargo-cult programming” được xuất phát điểm từ một hiện tại tượng dân tộc bản địa học có tên "cargo cult". Cargo cults xuất hiện thêm ở phái nam Thái tỉnh bình dương sau gắng chiến sản phẩm II, khi tiếp xúc cùng với nền thanh tao tiên tiến, người phiên bản địa cứ cho là các thành phầm như Coca-Cola, TVs, hay tủ lạnh một trong những tàu chở hàng sở hữu lên đảo, đầy đủ được tạo vì những quyền năng siêu nhiên, và họ có niềm tin rằng mỗi khi thực hiện những nghi lễ ma thuật tương tự như như phong tục của người phương Tây, đều thùng chất đầy hàng hóa đó đang lại lộ diện trở lại.

Antipattern này cũng có thể có những biểu hiện tương trường đoản cú như vậy. Ta áp dụng những frameworks, thư viện, giải pháp, hay các design patterns,...có lợi cho việc đó ta, mà không thực thụ hiểu trên sao bọn họ cần đề xuất dùng mang lại chúng xuất xắc những công nghệ đó hoạt động ra sao.

Cargo cult programming xảy ra ở đa số lập trình viên ko có kỹ năng hoặc là lập trình sẵn viên new (hoặc là những người dân thiếu khả năng về mặt nào đó), họ xào luộc những mã nguồn từ khu vực này đến nơi khác trong ứng dụng mà phần nhiều ít 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 chỉ có tệ vì tạo nên ứng dụng của chúng ta bị "bơm căng phồng", nhưng còn rất có thể dễ dàng đưa đông đảo lỗi mới vào mã mối cung cấp của chúng ta.

8. Lava Flow

Chúng ta nói tới "Lava flow" antipattern mỗi khi cần nên xử lý những đoạn mã codes quá hoặc có quality thấp nhưng dường như ko thể bóc rời với ứng dụng, nhưng chúng ta không trọn vẹn hiểu được chúng có công dụng gì hoặc ảnh hưởng của bọn chúng đến cục bộ ứng dụng như thế nào. Do vậy, việc loại trừ chúng là một việc khôn xiết rủi ro.

Điều này tiếp tục xảy ra với số đông legacy codes, hoặc là lúc đoạn codes này được viết bởi những người dân khác (thường thiếu hụt tài liệu chính xác), hoặc là khi dự án được chuyển từ quá trình development sang trọng production vượt nhanh.

Cái thương hiệu của antipattern này biểu lộ sự tương đồng với dung nham núi lửa, thuở đầu thì di chuyển nhanh, trôi chảy cạnh tranh phòng ngừa, nhưng tiếp nối thì cứng lại cùng khó loại bỏ.

Trên lý thuyết, ta có thể loại quăng quật lava flows sau khoản thời gian đã kiểm tra cùng refactoring kĩ lưỡng, dẫu vậy trong thực tế, việc thực hiện nó ngoài ra rất trở ngại hoặc thậm chí là là không thể. Vì chưng lava flows thường có giá thành thực hiện cao, nên tốt hơn không còn để ngăn chặn chúng là ta thiết lập cấu hình được bản vẽ xây dựng thiết kế tốt và một workflow làm cho việc tác dụng ngay từ ban đầu ^_^.

9. Hard Coding

"Hard coding" là 1 trong antipattern được nhắc đến rất 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 chúng ta lưu trữ những cấu hình hoặc là dữ liệu đầu vào (ví dụ như những đường dẫn file, remote host name hay là một đoạn văn bản ở ngôn ngữ rõ ràng nào đó) làm việc trong mã nguồn vận dụng thay vày lưu chúng ở trong số những file cấu hình, database, user đầu vào hay xuất phát điểm từ một external api nào đó.

Vấn đề gặp phải ở đó là những hard code này sẽ chỉ hoạt động đúng đắn trong một môi trường nhất định làm sao đó, cùng khi mà điều kiện thay đổi, chúng sẽ không hề hoạt động chính xác nữa.

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

10. Soft Coding

Nếu như cứ cố gắng quá mức nhằm tránh hard coding, chúng ta cũng có thể vô tình va trán với một antipattern trái lại với nó điện thoại tư vấn là "soft coding".

Xem thêm: " Rating Là Gì ? Nghĩa Của Từ Rating Trong Tiếng Việt Tìm Hiểu Về Rating Trong Truyền Hình

Chuandotan) · Twitter, 7 Chuando rã Ideas

Kết luận

Bài chia sẻ trên đã reviews qua phần nhiều Antipatterns mà bọn họ thường mắc phải trong vượt trình cải cách và phát triển ứng dụng cũng như cách để khắc phục chúng. Hi vọng bạn gọi sẽ để ý để tránh phạm phải chúng trong sự nghiệp lập trình của chính mình nhé ^_^.