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 bác share này, bao gồm một số vị trí được mình sửa đổi, bổ sung làm cho cân xứng.

You watching: Hard code là gì

*

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

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

*

Mặc mặc dù Design patterns là phương tiện đi lại hoàn hảo nhằm nâng cao các bước cách tân và phát triển của họ bằng phương pháp áp dụng đông đảo bí quyết đã được kiểm chứng giỏi. Tuy nhiên, đôi lúc phần đa Design patterns này cũng mang đến đa số hậu quả tiêu cực so với chúng. Lúc bấy giờ, bọn chúng được điện thoại tư vấn là đầy đủ Antipatterns.

Antipatterns là gì?

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

Nó đề cùa tới đầy đủ chiến thuật tái áp dụng mà lúc đầu trông có vẻ như hữu ích, nhưng mà dần dần tiếp nối, bọn chúng lại trsinh sống cần bất lợi rộng là lợi.

Điều này hoàn toàn có thể xẩy ra do nhiều lý do không giống nhau, ví như nếu như chúng ta ko áp dụng đa số patterns đúng toàn cảnh, thiết lập, tuyệt thời hạn phù hợp (những phương án bao gồm công dụng vào quá khđọng chưa phải thời điểm nào cũng vận động đúng ở thời gian hiện tại tại), hoặc trong số những trường phù hợp xấu rộng là toàn thể quy mô đã không xuất sắc tức thì từ khi bắt đầu rồi (>""Antipatterns cũng hay được Gọi là số đông mô hình thất bại. Tuy nhiên, tin vui là chúng ta hoàn toàn rất có thể nhận biết và né tránh chúng.

Trong nội dung bài viết này, tôi đang trình làng qua mang đến chúng ta 10 antipatterns phổ biến xuất xắc gặp mặt đề nghị vào quá trình cách tân và phát triển web. (Chú ý rằng phần đông antipatterns tôi liệt kê tiếp sau đây ko hoàn toàn giống với đều gì chúng ta có thể tra cứu thấy vào cuốn nắn sách tôi vẫn đề cập sinh sống 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 giữa những nguyên tố quan trọng trong việc tối ưu hóa các đoạn codes. Nếu bọn họ chú ý đến những kết quả nhỏ cùng buổi tối ưu hóa chúng vượt mau chóng vào quy trình cải cách và phát triển, trước khi bọn họ biết đúng chuẩn rất nhiều điều cần làm cho, vô cùng có thể bọn họ vẫn dễ dãi phạm phải antipattern "Tối ưu sớm".

*

Theo lời nói khét tiếng của Donald Knuth: "Tối ưu sớm là nền tảng gốc rễ của phần đa điều ác", nó có thể khá bị cường điệu hóa lên một chút ít, mà lại có thể cho biết thêm rằng phần lớn vụ việc nghiêm trọng về về tối ưu hóa sớm có thể tạo ra sau này thế nào.

Nếu họ buổi tối ưu hóa hiệu năng trước lúc chế tạo một bản vẽ xây dựng hiệu quả, nó hoàn toàn có thể gây ra codes trở đề nghị nặng nề đọc, vấn đề debug với gia hạn trở ngại hơn, và đều đoạn codes thừa bị đẩy vào mã nguồn của họ.

Một phát minh xuất sắc nhằm ngăn ngừa việc buổi tối ưu nhanh chóng là tuân theo cách thức xây dựng YAGNI (You Aren’t Gonna Need It), nó khuyên ổn chúng ta đề nghị tuân thủ "đề nghị cái gì thì thêm loại đó", chứ đừng bao gồm nhưng mà "chắc hẳn rằng sau này đang buộc phải đến".

2.Reinventing the Wheel

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

*

Reinventing the wheel không chỉ có gây nên tiêu tốn lãng phí thời hạn, hơn nữa hầu như phương án tùy lựa chọn, nhất là mọi công dụng cơ bản hi hữu khi xuất sắc rộng phần nhiều chuẩn cơ mà các nhà trở nên tân tiến tuyệt người tiêu dùng đã làm nghiệm khôn xiết kĩ rồi.

3. Dependency Hell

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

Nếu, cố vày hặm hụi viết rất nhiều thiết bị từ đầu, chúng ta lại vượt sử dụng bài toán áp dụng tlỗi viện bên thứ ba dựa trên gần như phiên bạn dạng cụ thể của rất nhiều thư viện khác. Điều này vẫn khiến các bạn dễ ợt buộc phải đương đầu với gần như trường hợp khó thống trị mọi khi mong muốn update thư viện, bởi nhiều khi rất nhiều dependencies này sau khi cập nhật lại không tương xứng với những cái không giống.

*

Dependency hell có thể được xử lý bằng phương pháp sử dụng những package managers có chức năng update tuyệt vời những dependencies để bọn chúng vẫn có thể tương xứng được với nhau. Nếu bọn họ vấp váp bắt buộc không ít vụ việc, Việc refactoring cũng rất có thể là một trong ý tưởng phát minh hay.

4. Spaghetti Code

"Spaghetti code" chắc rằng là antipattern lừng danh duy nhất. Nó diễn đạt một áp dụng nặng nề debug với kiểm soát và điều chỉnh vị thiếu thốn kiến trúc phù hợp.

See more: Code Geass: Boukoku No Akito Tập 1, Code Geass: Boukoku No Akito 1

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

*

Kết trái của phương pháp này là chúng ta bao gồm mọi đoạn codes bị lặp đi lặp lại, vày phần đông bọn chúng chỉ khác nhau ở 1 vài ba điểm bé dại.

Copy and paste programming không chỉ là thấy nghỉ ngơi những xây dựng viên bắt đầu, mà còn ở phần lớn lập trình sẵn viên sẽ gồm kinh nghiệm tay nghề, bởi vì nhiều người trong số bọn họ tất cả xu hướng sử dụng đông đảo đoạn codes đã làm được viết sẵn, kiểm tra kĩ lưỡng của họ mang lại số đông tác vụ vắt thể, vấn đề này dễ ợt gặp mặt đề xuất sự tái diễn không 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 lạ dân tộc bản địa học với tên "cargo cult". Cargo cults xuất hiện ngơi nghỉ Nam Tỉnh Thái Bình Dương sau cố gắng chiến lắp thêm II, lúc tiếp xúc với nền vnạp năng lượng minch tiên tiến, bạn bạn dạng địa cứ cho rằng những thành phầm nlỗi Coca-Cola, TVs, tốt tủ rét Một trong những tàu chsinh hoạt mặt hàng mang lên hòn đảo, hầu hết được tạo ra vì phần đa thế lực siêu nhiên, và chúng ta tin tưởng rằng mọi khi thực hiện phần nhiều nghi lễ ma thuật tựa như nhỏng phong tục của tín đồ phương Tây, gần như thùng hóa học đầy hàng hóa đó sẽ lại xuất hiện quay trở lại.

*

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

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

8. Lava Flow

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

Vấn đề này liên tiếp xẩy ra cùng với hầu hết legacy codes, hoặc là lúc đoạn codes này được viết vị những người dân khác (thường thiếu tài liệu bao gồm xác), hoặc là lúc dự án công trình được chuyển từ bỏ quá trình development sang production vượt nkhô hanh.

Cái tên của antipattern này biểu thị sự tương đồng cùng với dung nđam mê núi lửa, lúc đầu thì di chuyển nhanh hao, trôi tan cực nhọc phòng đề phòng, cơ mà tiếp nối thì cứng lại với cạnh tranh thải trừ.

*

Trên triết lý, ta có thể loại bỏ lava flows sau thời điểm sẽ chất vấn với refactoring kĩ lưỡng, tuy nhiên trong thực tế, bài toán tiến hành nó hình như rất khó khăn hoặc thậm chí là ko thể. Do lava flows thông thường sẽ có chi phí triển khai cao, bắt buộc giỏi rộng không còn nhằm ngăn chặn chúng là ta tùy chỉnh được kiến trúc thiết kế giỏi với một workflow thao tác làm việc tác dụng ngay từ ban đầu ^_^.

9. Hard Coding

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

*

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

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

10. Soft Coding

Nếu nlỗi cứ cố gắng quá mức cho phép để tránh hard coding, chúng ta có thể vô tình chạm trán với một antipattern ngược trở lại cùng với nó Hotline là "soft coding".

Trong soft coding, bọn họ đưa đông đảo thiết bị cơ mà đáng ra nó đề nghị được đặt tại trong mã nguồn vận dụng ra các tài nguim mặt ngoài, ví dụ chúng ta tàng trữ business xúc tích trong database ==". Lý vày thịnh hành tuyệt nhất mà lại họ thường làm nắm, là do băn khoăn lo lắng những business rules vẫn thay đổi sau đây, và thời điểm này sẽ bắt buộc viết lại codes.

Trong các ngôi trường phù hợp cực đoan, một vận dụng cùng với đa số soft coded rất có thể trsinh sống yêu cầu quá trừu tượng với phức hợp đến cả gần như cần thiết đọc được nó (đặc biệt là so với số đông member mới vào team), với rất là khó khăn để debug với bảo trì.

See more: Cách Nhập Code Và Nhận Code Fifa Online 3 Miễn Phí, Update: All Codes

Kết luận

Bài share trên sẽ ra mắt qua phần đa Antipatterns nhưng họ hay phạm phải vào quy trình cách tân và phát triển vận dụng cũng giống như cách để hạn chế bọn chúng. Hi vọng bạn đọc vẫn chú ý nhằm rời phạm phải chúng trong sự nghiệp xây dựng của bản thân mình nhé ^_^.


Chuyên mục: giftcode