소프트웨어 공학

시스템 개발 수명주기 내에서 작업하는 전문가, 학자 및 학생을위한 Q & A

6
필수 메소드 매개 변수에 assert 또는 IllegalArgumentException을 사용하는 것이 더 낫습니까?
Java에서 더 권장되는 이유는 무엇입니까? 두 유형 모두 예외가 발생하므로 처리 측면에서 동일합니다. assert약간 짧지 만 얼마나 중요한지 잘 모르겠습니다. public void doStuff(Object obj) { assert obj != null; ... } vs public void doStuff(Object obj) { if (obj == null) { throw new IllegalArgumentException("object was null"); } ... }

9
레거시 코드베이스에서 시간 비용 추정
최근에 아주 오래된 단일 응용 프로그램이 마이크로 서비스 기반 아키텍처로 마이그레이션되는 프로젝트를 시작했습니다. 레거시 코드베이스는 매우 혼란스럽고 ( '스파게티 코드') 종종 단순한 함수 (예 : "multiplyValueByTen")는 나중에 "3 개의 서로 다른 스키마에서 10 개의 테이블을 포함하는 수천 개의 유효성 검사 코드 행"으로 나타납니다. 이제 상사는 새 아키텍처에서 기능 X를 작성하는 …

5
UTF-8이 수백만 개의 새로운 문자로 방대한 외계 언어를 포함하도록 지원할 수 있습니까?
경우에 외계인의 침공은 문자의 자신의 가능성 방대한 양의 수 있도록하는 방법으로 UTF-8을 설계, 발생 그리고 우리는 우리의 기존 컴퓨터 시스템의 모든 자신의 언어를 지원하기 위해 강제로? (물론, 우리는 외계인이 실제로 언어를 가지고 있는지, 의사 소통을하는지 또는 어떻게 말하는지 알지 못하지만, 논쟁을 위해, 단지 그들이한다고 상상해보십시오.) 예를 들어, 언어가 수백만 개의 …
86 unicode  utf-8 

11
Citigroup이 단위 실수로이 비싼 실수를 피하는 데 도움이 되었습니까?
나는이 snafu에 대해 읽었다 : 15 년 동안 테스트 데이터로 오해 한 합법적 인 거래 후 프로그래밍 버그 비용 Citigroup은 $ 7m 이다. 1990 년대 중반에 시스템이 도입되었을 때 프로그램 코드는 089에서 100까지 3 자리 분기 코드가 제공된 트랜잭션을 걸러 내고 테스트 목적으로 해당 접두사를 사용했습니다. 그러나 1998 년 회사는 …

10
Alan Kay가“인터넷은 잘 수행되었지만 웹은 아마추어에 의해 이루어졌다”고 말한 이유는 무엇입니까?
알았어요. 전체 인용문 : 인터넷은 너무나 잘 이루어 졌기 때문에 대부분의 사람들은 인터넷이 사람이 만든 것이 아니라 태평양과 같은 천연 자원으로 생각합니다. 그런 규모의 기술이 오류가없는 마지막 때는 언제입니까? 이에 비해 웹은 농담입니다. 웹은 아마추어에 의해 수행되었습니다. 앨런 케이 인터넷과 웹의 역사를 이해하려고하는데이 내용을 이해하기 어렵습니다. 나는 인터넷이 현재 설계된 …

10
2010-01 년 데비안 팝콘 그래프에서 Git 제출자가 갑자기 증가하는 이유는 무엇입니까?
내가 Git과 Mercurial을 비교 한 1을 읽은 거의 모든 기사는 Mercurial이 더 나은 명령 줄 UX를 가지고있는 것처럼 보입니다 git checkout. 그러나 어느 시점에서 Git은 갑자기 인기가 높아졌고 데비안 팝콘 그래프 (아래 그래프 이미지 참조)에서 Git 제출자 수가 문자 그대로 폭발했습니다. 출처 : 데비안 2010-01 년에 상황이 갑자기 바뀌었다. GitHub가 …
86 git  history  mercurial 

5
대 foreach 대 LINQ
Visual Studio에서 코드를 작성할 때 ReSharper (God bless!)는 종종 구식 학교 for 루프를보다 간결한 foreach 형식으로 변경하도록 제안합니다. 그리고 종종이 변경 사항을 수락하면 ReSharper는 한발 더 나아가 반짝이 LINQ 형식으로 다시 변경하도록 제안합니다. 그래서, 나는 이 개선에 몇 가지 진정한 장점이 있습니까? 아주 간단한 코드 실행에서는 속도 향상을 볼 수 …
86 c#  linq 

6
JQuery보다 순수한 JavaScript를 사용하는 이점
Javascript 만 사용하는 것과 JQuery 만 사용하는 것의 장점은 무엇입니까? JavaScript 및 JQuery 코딩에 대한 경험이 제한적입니다. HTML 페이지에 각각의 비트와 스 니펫을 추가했지만 대부분 다른 언어로 서버 측 내용을 코딩했습니다. 이론적으로 두 가지 접근 방식 중 하나를 사용하여 동일한 작업을 수행 할 수는 있지만 동일한 프로젝트에서 혼합 할 수도 …

2
에지 케이스, 코너 케이스,베이스 케이스 및 경계 케이스의 차이점은 무엇입니까?
저는 영어 원어민이 아닙니다. 내 모국어에서는 재귀를 중지하기 위해 검사 한 조건과 극단적이거나 가능성이 높지 않거나 매우 간단한 경우를 확인하는 조건을 나타내는 데 사용되는 일부 용어를 알고 있습니다. 영어에서는 "가장자리 사례", "코너 사례", "경계 사례"및 "기본 사례"라는 용어가 발견되었지만 차이점을 파악할 수 없으며 그 의미를 파악하는 데 사용됩니다. 나는 그들 …

12
단위 테스트를 위해 프로젝트가 얼마나 커야합니까? [닫은]
내 프로젝트가 단위 테스트를 수행 할 수있을만큼 분리 된 것으로 가정합니다. 그러나 단위 테스트의 가치를 높이려면 클래스와 함수 측면에서 프로젝트가 얼마나 커야합니까? 우리 모두는 실수를 저지르고 완벽하지는 않지만 작은 프로젝트의 오류를 단계별로 처리하는 적절한 프로그래머라고 생각합니다. 아니면 프로젝트 규모에 관계없이 단위 테스트가 어려운가요?

21
누군가 코드가 엉망이라고 말하면 어떻게 반응하겠습니까?
나는 좋은 프로그래머입니다, 그래서 나는 전에 생각했습니다. 나는 항상 프로그램하는 것을 좋아합니다. 더 나은 프로그래머가되기 위해 프로그래밍에 대해 많은 것을 배우고 싶습니다. 나는 1 년 동안 프로그래밍을 공부했고 지금은 거의 2 년 동안 프로그래머로 일하고 있습니다. 한마디로, 거의 3 년의 프로그래밍 경험이 있습니다. 우리 팀은 5 명의 프로그래머로 구성되어 있으며 …

17
TODO 주석이 의미가 있습니까? [닫은]
나는 상당히 큰 프로젝트를 진행 중이며 그것을 위해 일부 번역 작업을 수행했습니다. 번역되지 않은 많은 레이블이 있었고 코드를 파헤치는 동안이 작은 코드 조각을 발견했습니다. //TODO translations 이것은 대부분의 개발자가 특정 코드 조각을 얻은 후 개발자가 할 때까지 이것을 보지 않을 것이라는 느낌을 얻었 기 때문에 자신과 다른 사람들 에게이 의견의 …

7
바이트가 8 비트 인 이유는 무엇입니까?
8 비트 그룹을 기본 단위로 사용하기로 결정할 때, 작업중인 역사적 세력, 절충점은 어디에 있습니까? 한 번에 다른 단어 크기를 사용하는 기계가 있었지만 오늘날 8 비트가 아닌 경우 박물관 조각, 임베디드 응용 프로그램을위한 특수 칩 및 DSP를 찾아야합니다. 바이트는 컴퓨터 설계 초기의 혼란과 창의성에서 어떻게 진화 했습니까? 적은 수의 비트는 컴퓨팅을 …
86 history  hardware  byte  bit 

5
Objective-C 개발을위한 Clang 경고 플래그
C & Objective-C 프로그래머로서, 나는 컴파일러 경고 플래그를 가진 약간의 편집증입니다. 나는 일반적으로 내가 사용하는 컴파일러에 대한 경고 플래그의 전체 목록을 찾으려고 노력하지 말아야 할 충분한 이유가 없다면 대부분을 켜십시오. 개인적으로 이것이 코딩 기술뿐만 아니라 잠재적 코드 이식성을 향상시키고 일부 문제를 예방할 수 있다고 생각합니다. 모든 세부 사항, 잠재적 구현 …

6
상태 저장과 상태 비 저장의 차이점은 무엇입니까?
MVC에 관한 서적과 문서는 Stateful 및 Stateless 용어를 사용하는 것입니다. 솔직히 말해서, 나는 그 책에 대해 이야기하는 아이디어를 얻을 수 없습니다. 그들은 HTTP가 stateless이고 ASP.NET MVC와 함께 Microsoft가 그것과 함께 가고 있다고 말하는 것보다는 어느 한 상태를 이해하는 예제를 제공하지 않습니다. 스테이트 풀이 무엇이며 스테이트 풀이 동일한 이유와 스테이트리스가없는 이유를 …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.