소프트웨어 공학

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

10
중급 프로그래밍 상태에 도달 [닫기]
나는 VBA에서 위치 프로그래밍을 한 소프트웨어 엔지니어입니다 (심지어 시행 착오이기 때문에 '실제'경험을 감히하지는 않지만!), Perl w / CGI, C # 및 ASP.NET. 후자 2 명은 학부생으로 '실제 세계'에 입학했습니다. 저는 2 년제 대학에 다니고 있으며 제가 언급 한 언어에 대해 5 년의 경험을 가지고 있습니다. 그러나 이력서에 관해서는 C #의 …

25
프로그래머로서 작업 표를 작성해야합니까? [닫은]
작업 표는 내가 결코 좋아하지 않았지만 회사 내에서 요구하는 것은 아닙니다. 그들은 나를 귀찮게하지 않지만 다른 사람들의 기어를 실제로 갈아주는 것처럼 보입니다. 몇 가지 질문이 있고 피드백이 좋을 것 같습니다. 계약자가 아니라고 가정하면 작업 표를 작성해야합니까? (그것은 이해할 수 있습니다). 편안하거나 사용하기 쉬운 작업 표의 단위는 무엇입니까? (예 : 모든 …
32 management 

1
왜 캐럿이 지수 대신 XOR에 사용 되었습니까?
그것은 이전 에이 구문 문제에 직면 한 사람에게는 실제로 문제가되지는 않지만 ^, 널리 인정되는 수학적 지수 연산 대신 XOR 연산으로 캐럿 ( )을 사용하여 생겨난 혼란이 있습니다 . 물론 캐럿의 (오용) 사용이 설명되고 수정되는 곳이 많이 있지만 캐럿 에게 왜 다른 의미를 부여 했는지에 대한 명확한 출처를 찾지 못했습니다 . …

10
GUID를 기본 키로 사용
나는 일반적으로 데이터베이스에서 자동 증가 ID를 기본 키로 사용합니다. GUID 사용의 이점을 배우려고합니다. 나는이 기사를 읽었다 : https://betterexplained.com/articles/the-quick-guide-to-guids/ 이 GUID는 응용 프로그램 수준에서 개체를 식별하는 데 사용됩니다. 또한 데이터베이스 레벨에서 기본 키로 저장됩니다. 예를 들어 다음과 같은 클래스가 있다고 가정 해보십시오. public class Person { public GUID ID; public string …

5
구현을 누설하지 않고 내부 벡터의 반복을 허용
사람들의 목록을 나타내는 수업이 있습니다. class AddressBook { public: AddressBook(); private: std::vector<People> people; } 고객이 사람들의 벡터를 반복하도록하고 싶습니다. 내가 가진 첫 번째 생각은 간단했습니다. std::vector<People> & getPeople { return people; } 그러나 구현 세부 정보를 클라이언트에 유출하고 싶지 않습니다 . 벡터가 수정 될 때 특정 불변을 유지하고 싶을 수 …
32 c++ 

2
올바른 디자인 패턴 선택
저는 항상 디자인 패턴 활용의 중요성을 인식했습니다. 다른 개발자가 가장 적합한 것을 선택하는 방법에 대해 궁금합니다. 순서도와 같은 일련의 특성을 사용하여 결정하는 데 도움이됩니까? 예를 들면 다음과 같습니다. 객체가 관련되어 있지만 구체적 클래스를 지정하지 않으려면 Abstract를 고려하십시오. 인스턴스화가 파생 클래스에 남아있을 때 팩토리를 고려하십시오. 집계 오브젝트의 요소에 순차적으로 액세스해야합니다. 반복자를 …

6
Spring에 의해 어떤 클래스가 자동 연결되어야합니까 (종속성 주입을 사용하는 경우)?
나는 Spring에서 Dependency Injection을 한동안 사용 해 왔으며 그것이 어떻게 작동하고 그것을 사용하는 장단점이 무엇인지 이해합니다. 그러나 새 클래스를 만들 때 종종 궁금합니다.이 클래스는 Spring IOC 컨테이너에서 관리해야합니까? 그리고 @Autowired 주석, XML 구성, setter 주입, 생성자 주입 등의 차이점에 대해 이야기하고 싶지 않습니다. 내 질문은 일반적인 질문입니다. 변환기가있는 서비스가 있다고 …

5
C #과 Java가 왜 '=='의 기본값으로 참조 동등성을 사용합니까?
Java와 C # (및 다른 언어)이 기본적으로 동등성을 참조하는 이유를 잠시 고민해 왔습니다 ==. 내가하는 프로그래밍에서 (확실히 프로그래밍 문제의 작은 하위 집합 일뿐입니다), 참조 평등 대신 객체를 비교할 때 거의 항상 논리적 평등을 원합니다. 나는 왜 두 언어가 왜이 길을 거꾸로 돌리고 ==논리적 평등을 유지하고 .ReferenceEquals()참조 평등 을 위해 사용 …

3
공개 API에서 (열) 유형을 나타내는 방법
나는 내 자신의 클라이언트에 사용하고 향후 대중에게 공개하려는 간단한 API를 개발 중입니다. 다른 "유형"을 가질 수있는 "Item"객체가 있습니다. 형식은 C "typedef enum"입니다. typedef enum { ItemTypeBool, ItemTypeNumber, ItemTypeDate, } ItemType; (나중에 일부를 추가 할 수 있음) 정수 또는 정의 된 "문자열"로 전송해야하는지 궁금합니다. JSON은 다음과 같습니다. 정수의 경우 : { …


4
추상 데이터 유형 및 데이터 구조
이러한 용어를 이해하기가 매우 어렵습니다. Google에서 검색하여 Wikipedia에서 조금 읽었지만 여전히 확실하지 않습니다. 나는 지금까지 다음을 결정했습니다. 추상 데이터 형식 은 새로운 형식의 정의이며 해당 속성과 작업을 설명합니다. 데이터 구조 는 ADT의 구현입니다. 많은 ADT를 동일한 데이터 구조로 구현할 수 있습니다. 내가 올바르게 생각하면 ADT로서의 배열은 요소의 컬렉션을 의미하고 데이터 …


7
클래스가있는 OOP와 비교 한 기능적 프로그래밍
최근에 함수형 프로그래밍 개념에 관심이있었습니다. 나는 얼마 동안 OOP를 사용했다. OOP에서 상당히 복잡한 앱을 작성하는 방법을 알 수 있습니다. 각 객체는 그 객체가하는 일을 수행하는 방법을 알고 있습니다. 아니면 부모님의 수업도 마찬가지입니다. 그래서 나는 단순히 Person().speak()그 사람 에게 말 을하도록 말할 수 있습니다 . 그러나 함수형 프로그래밍에서 비슷한 작업을 어떻게 …

8
메모리를 절약하기 위해 변수에 더 작은 데이터 유형을 사용하는 것이 좋습니다?
C ++ 언어를 처음 배웠을 때 int, float 등 이외에도 이러한 데이터 형식의 더 작거나 더 큰 버전이 언어 내에 존재한다는 것을 알게되었습니다. 예를 들어 변수 x를 호출 할 수 있습니다 int x; or short int x; 주요 차이점은 short int는 2 바이트의 메모리를 사용하고 int는 4 바이트를 사용하고 short …

9
리팩토링시기
나는 Fowler 's Refactoring 책의 대부분을 읽었으며 과거의 크고 작은 많은 응용 프로그램을 리팩토링했습니다. 내가 가르치기 어려운 것들 중 하나는 "언제나"리팩토링하는 것입니다. 나는 과거에 놀랍게도 잘 맞는 직감에 근거하여 이것을하는 경향이있다. 그러나 코드 조각을 단독으로 남겨 두어야하는지 아니면 리팩터링해야하는지에 대해 사람들과 토론 할 때 "장 점검"을 지키기가 어렵습니다. 나는 이것에 …

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