소프트웨어 공학

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

3
사용자가 브라우저에서 코드를 편집하지 못하게하려면 어떻게해야합니까?
기술 Node.JS 응용 프로그램을 디자인하고 있습니다 (전체 웹 사이트와 유사). 이 앱은 5 개의 JavaScript 파일을 보내며 <script>서로 연결되는 태그 를 갖 습니다. 질문 사용자와 공격자가 코드를 들여다 보거나 편집하지 못하게하려면 어떻게 해야합니까? 예를 들면 다음과 같습니다. Ctrl+ Shift+I 에서 DevTools로 , 고토 소스는 편집 (즉,에 파일 선택 index.html) 및 …

5
이진 형식을 어떻게 디버깅합니까?
이진 빌더 빌드를 디버그 할 수 있기를 원합니다. 지금은 기본적으로 입력 데이터를 이진 파서에 인쇄 한 다음 코드에 대해 깊이 들어가서 출력에 대한 입력 매핑을 인쇄 한 다음 출력 매핑 (정수)을 사용하여 해당 정수를 찾습니다. 이진에서. 꽤 어색하고 입력과 출력 사이의 매핑을 얻기 위해 소스 코드를 깊이 수정해야합니다. 바이너리를 다른 …
11 debugging  binary 

5
의존성 주입을 사용하고 시간적 결합을 피하는 방법?
Service생성자를 통해 종속성을 수신하지만 사용하기 전에 사용자 정의 데이터 (컨텍스트)로 초기화해야 한다고 가정 합니다. public interface IService { void Initialize(Context context); void DoSomething(); void DoOtherThing(); } public class Service : IService { private readonly object dependency1; private readonly object dependency2; private readonly object dependency3; public Service( object dependency1, object dependency2, …

2
개체 구성 요소 시스템이 디커플링 / 정보 숨기기에 끔찍하지 않습니까?
제목은 의도적으로 쌍곡 적이며 패턴에 대한 나의 경험이 아닐 수 있지만 여기에 내 추론이 있습니다. 엔터티를 구현하는 "일반적인"또는 논란의 여지가없는 방법은 그것들을 객체로 구현하고 일반적인 행동을 서브 클래 싱하는 것입니다. 의 고전적인 문제에 대한이 리드 "는 것입니다 EvilTree의 서브 클래스 Tree나 Enemy?". 다중 상속을 허용하면 다이아몬드 문제가 발생합니다. 우리는 대신 …

3
대규모 소프트웨어 프로젝트에서 실제로 복잡성을 측정하는 방법은 무엇입니까?
대학에서는 알고리즘 과정에서 해시 테이블 또는 빠른 정렬과 같이 실제로 사용되는 다양한 간단한 알고리즘의 복잡성을 정확하게 계산하는 방법을 배웁니다. 그러나 이제는 큰 소프트웨어 프로젝트에서 더 빠르게 만들고 싶을 때 개별 조각을 살펴 보는 것입니다. 더 빠른 해시 테이블로 대체 할 수있는 중첩 루프가 거의 없습니다. 더 멋진 기술이지만 전체 파이프 …

6
개발 후 소프트웨어 디자인 문서 작성이 정당화 될 수 있습니까?
저는 현재 "소프트웨어 개발"연구를 위해 졸업하고 있는데 외부 회사에서 복잡한 소프트웨어를 개별적으로 개발해야합니다. 이 모든 것은 구조화 된 방식으로 수행되어 모든 해당 문서를 작성해야합니다. 이 프로젝트에서는 IEEE 표준 문서 인 SRS (Software Requirements Document), SAD (Software Architecture Documents) 및 SDD (Software Design Document)를 사용하기로 결정했습니다. 학교에서 다르게 가르쳤지만,이 프로젝트를 위해 …

2
IComparable 인터페이스가 오래되었거나“유해”합니까?
IComparable 한 방향으로 만 작동 Employee수업 이 있다고 가정 해 봅시다 . Employees한보기에서 이름별로 정렬하고 다른 주소별로 정렬 하여 표시하려고 합니다. 어떻게 달성 할 수 있습니까? 하지와 IComparable적어도되지 않은 관용적 인 방법. IComparable 논리가 잘못된 곳에있다 인터페이스는를 호출하여 사용됩니다 .Sort(). Customer이름별로 정렬 된 보기에는 정렬 방법을 암시하는 코드가 전혀 없습니다. …
11 c#  sorting  comparison 

2
i, j = 1이 실제로 오도됩니까? [닫은]
폐쇄되었습니다 . 이 질문은 의견 기반 입니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 사실과 인용으로 답변 할 수 있도록 질문을 업데이트하십시오 . 휴일 2 년 전 . 하나의 라이너에 여러 변수 초기화에 대한 일반적인 주장이 있습니다. 예를 들어 int i, j = 1; 어떤 …

2
도메인 개체 생성을 테스트하기위한 단위 테스트
다음과 같은 단위 테스트가 있습니다. [Test] public void Should_create_person() { Assert.DoesNotThrow(() => new Person(Guid.NewGuid(), new DateTime(1972, 01, 01)); } Person 객체가 여기에 생성되었다고 주장합니다. 즉 유효성 검사가 실패하지 않습니다. 예를 들어, Guid가 null이거나 생년월일이 01/01/1900 이전 인 경우 유효성 검사가 실패하고 예외가 발생합니다 (테스트가 실패 함을 의미 함). 생성자는 다음과 …

5
스토리 포인트에서 개인의 능력을 고려해야합니까?
스토리 추정에 대한 나의 이해는 상상의 평범한 개발자, 즉 법의 "합리적인 방관자"개념과 비슷한 스토리의 크기를 추정해야한다는 것입니다. 즉, 스토리의 크기를 추정해야 한다고 가정 해서는 안됩니다 . 예를 들어 : 이전 직장에서 나는 가장 자신감있는 Ruby 개발자가있는 팀의 일원이었습니다. 팀원들은 "루비에서 X가 어떻게 작동하는지 모르겠 기 때문에 시간이 오래 걸릴 것입니다."와 …
11 agile  estimation 

3
다른 서버와 다른 코드베이스에 Git을 사용하려면 어떻게해야합니까?
배경 : 최근에 회사에서 일련의 프로젝트를 물려 받았으며 처리 방식과 관련된 몇 가지 근본적인 문제를 해결하려고합니다. 즉, 이전 개발자 (더 이상 회사에 있지 않은 개발자)는 어떤 형태의 소스 제어도 사용하지 않았으며 문서를 거의 만들지 않았으며 실제로 개발 프로세스가 제대로 이루어지지 않았습니다. 이제는 주로 타사 응용 프로그램 및 API를 위해 작성된 …

2
게임 개발을 다룰 때 소프트웨어 테스트가 다른가요?
필자는 일반적인 소프트웨어 개발과 게임 개발의 차이점에 대해이 논문 을 읽었 으며 저자는 소프트웨어 테스트와 관련하여 몇 가지 좋은 점을 지적했습니다. ... 게임 개발자들은 게임 디자이너의 창의적 욕구가 변화함에 따라 이러한 테스트의 빠른 노후화로 인해 자동 테스트를 사용하는 것을 주저합니다. 그래서,이 글을 읽게되면 게임을 다루거나 테스트 할 때 소프트웨어 테스팅의 …

1
계정을 만드는 동안 암호를 자동으로 생성하여 사용자에게 보내거나 사용자가 자신의 암호를 만들도록하는 것이 더 낫습니까?
이 질문은 오늘 우리가 작업하는 웹 사이트의 '계정 만들기'페이지에 대해 동료와 논의하면서 나왔습니다. 동료의 의견에 따르면 등록을 최대한 빠르고 완벽하게해야하므로 사용자에게 전자 메일을 요청하고 나머지는 처리해야합니다. 나는 그 의도에 동의하지만 그것에 대해 몇 가지 우려가 있습니다. 우리는 암호를 생성하기 때문에, 우리 가 반드시 암호가 충분히 강한이 할 책임을 내 경험상 …

5
예외를 디자인하는 방법
나는 매우 간단한 질문으로 고심하고 있습니다. 이제 서버 응용 프로그램을 만들고 있는데 예외에 대한 계층 구조를 만들어야합니다 (일부 예외는 이미 존재하지만 일반 프레임 워크가 필요합니다). 이 작업을 어떻게 시작합니까? 이 전략을 따르는 것을 생각하고 있습니다. 1) 무엇이 잘못 되었습니까? 허용되지 않는 것이 있습니다. 잘못된 매개 변수로 인해 무언가가 요청되고 허용되지만 …
11 design  c++  exceptions  stl 

5
메모리 관리 언어에 대한 참조 카운팅 패턴?
Java 및 .NET에는 메모리를 관리하는 멋진 가비지 수집기 및 외부 객체 ( Closeable, IDisposable)를 단일 객체가 소유 한 경우에만 신속하게 해제 할 수있는 편리한 패턴이 있습니다 . 일부 시스템에서는 두 구성 요소가 독립적으로 리소스를 소비해야하며 두 구성 요소가 모두 리소스를 해제 한 경우에만 해제해야합니다. 현대 C ++에서는 모든 문제가 해결 …

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