이 소프트웨어 엔지니어링 용어를 알고 계십니까?

나는 최근에 소프트웨어 엔지니어링에서 더 재미있는 용어를 검색하는 'Google Ride'를 보았습니다.

소프트웨어 엔지니어링은 자체 언어가 있는 복잡한 분야입니다. 현장을 처음 접하거나 잠시 동안 있었다고 해도 익숙하지 않은 용어가 있을 수 있습니다. 이 블로그 게시물에서는 이러한 용어 중 일부와 그 의미를 살펴보겠습니다.

면접관에게 깊은 인상을 심어줄 수 있습니까? 아마 아닐거야!

타조 알고리즘



Simon Infanger에 있는 Unsplash님의 사진

그렇다면 타조 알고리즘은 정확히 무엇입니까? 코드의 오류나 기타 문제를 처리할 때 사용할 수 있는 전략입니다. 잠재적인 문제가 극히 드물다는 이유로 무시하는 전략입니다. 본질적으로 문제를 해결하기 위해 시간/오류를 소비하는 것보다 문제를 그대로 두는 것이 더 비용 효율적일 수 있으므로 문제를 무시하는 것과 관련됩니다.

to stick one’s head in the sand and pretend there is no problem



물론 이것은 이상적인 해결책은 아니지만, 곤란한 상황에 처한 경우 때때로 도움이 될 수 있습니다. deadlocks in concurrent programming을 해결하는 데 사용할 수 있습니다.

Reference



요다 조건



Riku Lu에 있는 Unsplash님의 사진

Yoda 조건은 프로그래머가 조건문을 역순으로 또는 비전통적인 방식으로 작성하는 코딩 스타일입니다. 예를 들어 다음과 같이 작성하는 대신
if (x == 5) {
// do something
}

They would write:

if (5 == x) {
// do something
}

Yoda says “Become powerful you have, the dark side in you I sense.”

If you are interested, there is actually an English to Yoda Translator

The thinking behind this is that it’s less likely for a programmer to make a mistake and write x = 5 by accident, which would cause an error. While this may seem like a small thing, it can actually help to prevent a lot of bugs in your code.

So next time you’re reading some software engineering code and you see an if statement written in reverse, you’ll know that isn’t incorrect and the programmer may just be a star wars fan.

Reference

상태 418 나는 찻주전자입니다

Photo by Joni Ludlow on Unsplash

The term “Status 418 I’m a teapot” is derived from the HTTP status code 418, which is defined as “I’m a teapot”. The code was originally meant to indicate that the server was a teapot, but it has been repurposed to indicate that the client is attempting to brew coffee with a teapot.

In simpler words, it is used to describe a situation where the client is trying to perform an action that is not possible. For example, if you try to brew coffee in a teapot, it will not work because the pot is not designed for that purpose. Similarly, if you try to do something that is not possible with a piece of software, it will also fail.

I’m a teapot, I can not brew coffee

The term “I’m a teapot” can be used in both positive and negative situations. If you are trying to do something and you know it’s not possible, you can use the term to describe your situation. On the other hand, if someone else tries to do something that’s not possible and they succeed, you can use the term to describe their accomplishment.

In either case, the term “I’m a teapot” is a way of describing a situation where someone is trying to do something that cannot be done.

Reference

버그

Photo by James Wainscoat on Unsplash

하이젠버그

Heisenbug is a term used to describe a software bug that disappears or changes behavior when an attempt is made to study or debug it. The name “heisenbug” is a pun on the Heisenberg Uncertainty Principle.

Reference

힌덴벌레

A bug with catastrophic behavior. Think something along the scale of your entire database being wiped off. 

If you manually execute a SQL Delete statement without a where clause, it is more of a mistake than a bug. However, if you write a function to do the above, now that sounds like a Hindenbug.

Reference

강남스타일 버그

When Psy release Gangnam style, he was about to literally break Youtube. Youtube initially stored its view count as a 32-bit number, i.e 2,147,483,647 views but Psy had different plans. Although saw a weird number of views, this deserves to be on the list of funny terms.

Youtube decided to move to a 64-bit counter so they are probably safe for a few more years. In case you are wondering, that's Nine Quintillion Views Lol.

코드 유형

Photo by Valery Fedotov on Unsplash

젠가 코드

Jenga Code is a term used to describe a style of programming that results in the whole thing collapsing when you touch a single block of code. Named after the game where players try to remove wooden blocks from a tower without them falling down.

If you ever get a feeling that you don’t know what that line/piece of code does but removing it breaks everything down, well you might be working with some Jenga Code.

Reference

스파게티 코드

 This term is used to describe code that is messy and difficult to read. It’s often the result of bad coding practices or a rushed development process.

If you’re working on a project with spaghetti code, it can be tough to make sense of it all. But with a little patience and perseverance, you should be able to untangle the mess and get things back on track.

하이드라 코드

A little backstory about Hydra. 

Hydra was the offspring of Typhon and Echidna, the father and mother of all monsters respectively. Hydra’s lair was the lake of Lerna, which was claimed to be the entrance to the UnderWorld. Heracles’ second of the set of 12 labors was to slay the Lernaean Hydra. Hydra had a regeneration feature: for every head chopped off, Hydra would regrow two heads.

One head off, two heads Grow!

Heracles eventually managed to cut off all of Hydra’s heads with assistance from Iolaus.

Hydra Code is code that simply can not be fixed. For every new “fix”, two new bugs get introduced. Your best bet would be to rewrite the code.

Reference

매직코드

Magic Code is Code that is usually taken verbatim from websites like StackOverflow. Although it might solve your problem, you don’t know how it works or why it works. It magically solves your problem.

관습법 기능

A bug in the application that has existed so long that it is now part of the expected functionality, i.e it is a feature

It’s not a bug, it’s a feature

Reference

포켓몬 예외 처리

Photo by Thimo Pedersen on Unsplash

If you have watched Pokemon, you must be familiar with it’s catch-phrase

Gotta Catch ’Em All

try:
    // Some Code
except Exception as Pokemon:
    // print("Catching all Pokemons", Pokemon)

Ash Ketchum은 모든 포켓몬을 잡을 수 없었지만 할 수 있습니다!

Reference



야크 깎기



소프트웨어 엔지니어링에서 야크 쉐이빙은 더 큰 작업을 완료하기 위해 여러 개의 작은 작업을 수행해야 하는 경우를 가리키는 용어입니다. 그것은 당신이 또 다른 관련 작업을 수행하도록 이끄는 작업이고, 또 다른 관련 작업을 수행하도록 이끄는 등의 작업으로, 이 모든 것이 원래 목표에서 멀어지게 합니다. 이것은 때때로 "토끼 구멍으로 내려가기"라고도 합니다.

야크 깎기는 일반적으로 아직 준비되지 않은 다른 것에 의존하는 무언가를 하려고 할 때 발생합니다. 예를 들어 웹 사이트에 새 기능을 배포하려고 하지만 데이터베이스가 아직 마이그레이션되지 않은 경우 먼저 데이터베이스를 마이그레이션해야 할 수 있습니다. 또는 단위 테스트를 작성하려고 하지만 클래스 중 하나에 아직 인터페이스가 없어서 작성할 수 없는 경우 먼저 인터페이스를 작성해야 할 수 있습니다.

야크 깎는 것은 당신이 주된 일을 진척시키지 못하는 것처럼 느끼기 때문에 좌절할 수 있습니다. 그러나 완료하는 모든 작업이 목표에 더 가까워지고 결국에는 목표에 도달하게 된다는 점을 기억하는 것이 중요합니다.

Reference



원숭이 패치



원숭이 패치는 원래 소스 코드를 변경하지 않고 프로그램이나 라이브러리를 변경하기 위해 소프트웨어 엔지니어링에서 사용되는 기술입니다. Monkey 패치는 일반적으로 새 버전의 공식 릴리스를 기다리지 않고 프로그램의 기능을 추가하거나 버그를 수정하는 데 사용됩니다.

원숭이 패치는 유지 관리 및 디버그하기 어려운 코드로 이어질 수 있으므로 위험할 수 있습니다. Monkey 패치를 수행할 때 변경 사항의 잠재적인 부작용을 인식하는 것이 중요합니다.

Reference



신앙 기반 프로그래밍



오류가 마법처럼 수정되기를 바라는 마음으로 동일한 코드를 다시 실행하려고 할 때.

Reference



하이 주도 개발



대부분의 언어에는 마음대로 사용할 수 있는 많은 디버거가 있습니다. 중단점을 추가하고 더 쉽게 문제를 디버깅할 수 있도록 더 많은 작업을 수행할 수 있습니다. 그러나 많은 프로그래머는 디버거를 사용하지 않습니다. 우리가 하는 일은 임의의 print 또는 console.log 문을 추가하는 것입니다. 함수에서 무작위로 아래와 같은 문이 표시되면 개발자가 연습을 통해 디버깅 중일 가능성이 높습니다Hi-driven development.
console.log(`HI.... ${varValue}`)

Most of us have our own version of Hi , personally, I use Yooo and a bunch of -x-x-x-x-x-x-x-

Reference

결론

Let me know if you know of any other such terms in Software Engineering.

Want to Connect?

Find me on LinkedIn: https://www.linkedin.com/in/rahulbanerjee2699/

Originally Posted on https://www.realpythonproject.com/do-you-know-these-software-engineering-terms/

좋은 웹페이지 즐겨찾기