이 소프트웨어 엔지니어링 용어를 알고 계십니까?
소프트웨어 엔지니어링은 자체 언어가 있는 복잡한 분야입니다. 현장을 처음 접하거나 잠시 동안 있었다고 해도 익숙하지 않은 용어가 있을 수 있습니다. 이 블로그 게시물에서는 이러한 용어 중 일부와 그 의미를 살펴보겠습니다.
면접관에게 깊은 인상을 심어줄 수 있습니까? 아마 아닐거야!
타조 알고리즘
Simon Infanger에 있는 Unsplash님의 사진
그렇다면 타조 알고리즘은 정확히 무엇입니까? 코드의 오류나 기타 문제를 처리할 때 사용할 수 있는 전략입니다. 잠재적인 문제가 극히 드물다는 이유로 무시하는 전략입니다. 본질적으로 문제를 해결하기 위해 시간/오류를 소비하는 것보다 문제를 그대로 두는 것이 더 비용 효율적일 수 있으므로 문제를 무시하는 것과 관련됩니다.
to stick one’s head in the sand and pretend there is no problem
물론 이것은 이상적인 해결책은 아니지만, 곤란한 상황에 처한 경우 때때로 도움이 될 수 있습니다. deadlocks in concurrent programming을 해결하는 데 사용할 수 있습니다.
요다 조건
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.
상태 418 나는 찻주전자입니다
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.
버그
하이젠버그
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.
힌덴벌레
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.
강남스타일 버그
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.
코드 유형
젠가 코드
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.
스파게티 코드
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.
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.
매직코드
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
포켓몬 예외 처리
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은 모든 포켓몬을 잡을 수 없었지만 할 수 있습니다!
야크 깎기
소프트웨어 엔지니어링에서 야크 쉐이빙은 더 큰 작업을 완료하기 위해 여러 개의 작은 작업을 수행해야 하는 경우를 가리키는 용어입니다. 그것은 당신이 또 다른 관련 작업을 수행하도록 이끄는 작업이고, 또 다른 관련 작업을 수행하도록 이끄는 등의 작업으로, 이 모든 것이 원래 목표에서 멀어지게 합니다. 이것은 때때로 "토끼 구멍으로 내려가기"라고도 합니다.
야크 깎기는 일반적으로 아직 준비되지 않은 다른 것에 의존하는 무언가를 하려고 할 때 발생합니다. 예를 들어 웹 사이트에 새 기능을 배포하려고 하지만 데이터베이스가 아직 마이그레이션되지 않은 경우 먼저 데이터베이스를 마이그레이션해야 할 수 있습니다. 또는 단위 테스트를 작성하려고 하지만 클래스 중 하나에 아직 인터페이스가 없어서 작성할 수 없는 경우 먼저 인터페이스를 작성해야 할 수 있습니다.
야크 깎는 것은 당신이 주된 일을 진척시키지 못하는 것처럼 느끼기 때문에 좌절할 수 있습니다. 그러나 완료하는 모든 작업이 목표에 더 가까워지고 결국에는 목표에 도달하게 된다는 점을 기억하는 것이 중요합니다.
원숭이 패치
원숭이 패치는 원래 소스 코드를 변경하지 않고 프로그램이나 라이브러리를 변경하기 위해 소프트웨어 엔지니어링에서 사용되는 기술입니다. Monkey 패치는 일반적으로 새 버전의 공식 릴리스를 기다리지 않고 프로그램의 기능을 추가하거나 버그를 수정하는 데 사용됩니다.
원숭이 패치는 유지 관리 및 디버그하기 어려운 코드로 이어질 수 있으므로 위험할 수 있습니다. Monkey 패치를 수행할 때 변경 사항의 잠재적인 부작용을 인식하는 것이 중요합니다.
신앙 기반 프로그래밍
오류가 마법처럼 수정되기를 바라는 마음으로 동일한 코드를 다시 실행하려고 할 때.
하이 주도 개발
대부분의 언어에는 마음대로 사용할 수 있는 많은 디버거가 있습니다. 중단점을 추가하고 더 쉽게 문제를 디버깅할 수 있도록 더 많은 작업을 수행할 수 있습니다. 그러나 많은 프로그래머는 디버거를 사용하지 않습니다. 우리가 하는 일은 임의의
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-
결론
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/
Reference
이 문제에 관하여(이 소프트웨어 엔지니어링 용어를 알고 계십니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rahulbanerjee99/do-you-know-these-software-engineering-terms-156l텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)