소프트웨어 공학

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

3
함수가 다른 함수에서 값을 얻는 것이 순수한 것으로 간주됩니까?
부작용없이 함수를 만들 때 기본 변수 값을 처리하는 방법을 찾으려고 노력하고 있으며 다음과 같이 끝났습니다. function getDefaultSeparator() { return ':'; } function process(input, separator) { var separator = separator || getDefaultSeparator(); // Use separator in some logic return output; } 기본 구분 기호는 다른 기능에서 사용되며 한 위치에서만 정의하고 싶습니다. …

1
배열을 기반으로하지 않는 컴퓨터 아키텍처
휴무 . 이 질문은 더 집중되어야 합니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 한 가지 문제에만 집중할 수 있도록 질문을 업데이트하십시오 . 휴일 3 년 전 . 기능 프로그래밍을위한 Monads에 관한 Wadler의 원본 논문 (Haskell) 오랜 역사를 가진 또 다른 질문은 프로그램을 어레이 업데이트를 …

1
MVP 패턴에서 View는 UI 내용을 기반으로 Model 객체를 인스턴스화해야합니까, 아니면 이러한 내용을 매개 변수로 Presenter에 전달해야합니까?
개발중인 Android 앱에서 MVP 패턴을 사용하고 있습니다. 기본적으로 4 가지 요소가 있습니다. 새 사용자를 추가 할 수있는 AddUserView : AddUserPresenter UserInfo (포조) UserInfoManager (비즈니스 로직 및 스토리지 관리자) 내 질문은 : AddUserView에서 "Add"버튼을 누르면 텍스트 뷰의 내용을 가져 와서 새로운 UserInfo를 인스턴스화하여 Presenter에 전달해야합니다. 또는 AddUserView가 textViews 내용을 가져 와서 …

2
오프라인 시스템과 동기화
데이터를 생성하고 서버로 다시 보내는 모바일 장치 (내장 응용 프로그램이있는)의 비즈니스 데이터를 동기화 할 시스템을 설계하고 있습니다. 동기화 된 각 회선은 데이터베이스에서 특정 비즈니스 로그를 생성합니다. 내가 동기화 한 것이 비즈니스 데이터의 마지막 수정 날짜보다 낮은 날짜 (동기화 데이터 내)로 데이터를 생성하는 경우이를 무시하고 데이터베이스에 로그인을 추가해야합니다. 업로드 된 데이터가 …

1
은행은 실제로 돈의 데이터 유형으로 무엇을 사용합니까? [닫은]
휴무 . 이 질문은 더 집중되어야 합니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 한 가지 문제에만 집중할 수 있도록 질문을 업데이트하십시오 . 휴일 3 년 전 . 몇 가지 좋은 옵션을 알고 있습니다 . 센트 또는 10 - n 센트 를 나타내는 큰 정수 …

4
비즈니스 객체 클래스 디자인의“완전한 공개”사고 방식에 반박하는 방법
우리는 비즈니스 객체에 대해 많은 단위 테스트 및 리팩토링을 수행하고 있으며 다른 동료와 클래스 디자인에 대한 의견 이 매우 다른 것 같습니다 . 내가 팬이 아닌 예제 클래스 : public class Foo { private string field1; private string field2; private string field3; private string field4; private string field5; public Foo() …

2
점차 의존성 주입 컨테이너로 코드베이스 이동
많은 "반 패턴"싱글 톤, 정적 메소드가있는 유틸리티 클래스 및 new키워드를 사용하여 자체 종속성을 작성하는 클래스가있는 대형 코드베이스가 있습니다. 코드를 테스트하기가 매우 어렵습니다. 점차 의존성 주입 컨테이너로 코드를 점차 마이그레이션하고 싶습니다 (제 경우 Guice에는 GWT프로젝트 이므로 ). 의존성 주입에 대한 나의 이해에서, 그것은 전부 또는 아무것도 아닙니다. 모든 클래스는 Spring / …

7
더 많은 자연 언어 프로그래밍 언어가없는 이유는 무엇입니까?
둘 이상의 자연 언어로 사용 가능하고 확장 가능한 프로그래밍 언어가 있습니까? 예를 들어, do..while루프가 있는 영어 버전, 루프가있는 스페인어 버전 hacer..mientas, a가있는 프랑스어 버전 faire..pendant및 a가있는 네덜란드어 버전이 있습니다 doe..terwijl. 내가 이런 종류의 구현을 생각할 수있는 유일한 '프로그래밍 언어'는 Microsoft VBA입니다. 보너스 질문 : 여러 언어로 제공되는 프로그래밍 언어가 왜 …

2
기고자로부터 BSD 라이센스 프로젝트로 저작권 통지를 관리하는 방법
LICENSE파일 에 다음 BSD 라이센스가 있습니다. Copyright (c) 2006-2016 SymPy Development Team All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: a. Redistributions of source code must retain the above copyright notice, this list of …

2
`Vector <float> .Equals`는 반사적이어야합니까, 아니면 IEEE 754 의미론을 따라야합니까?
부동 소수점 값이 동일한 지 비교할 때 두 가지 접근 방식이 있습니다. NaNIEEE 754 사양 과 일치하지 않습니다 . NaN등가 관계 의 정의에 필수적인 반사성 의 수학적 특성을 제공 C # ( float및 double) 에 내장 된 IEEE 부동 소수점 유형은 ==및 !=(및 같은 관계 연산자 &lt;)에 대한 IEEE 의미를 …

3
이름이 같은 클래스를 처리하는 방법 (다른 패키지)
나와 R &amp; D 팀은 큰 코드베이스를 유지 관리합니다. 비즈니스 로직을 여러 패키지로 나누었습니다. 일부는 이름이 같은 클래스 를 가지고 있습니다 . 짐작할 수 있듯이 두 클래스가 모두 동일한 Java 파일에서 참조 될 때 이름이 충돌합니다. 예를 들면 다음과 같습니다. com.myapp.model (package) - Device (class) - ... com.myapp.data (package) - …

3
C의 "실제"크기 조정 변수는 얼마나 유용합니까?
항상 직관적으로 C의 긍정적 인 기능 (gcc, clang 등의 구현 중 하나)으로 나를 직관적으로 강타 한 가지는 런타임에 자신의 변수 옆에 숨겨진 정보를 저장하지 않는다는 사실입니다. 이것은 예를 들어 "uint16_t"타입의 변수 "x"를 원한다면 "x"는 2 바이트의 공간만을 차지할 것입니다 (그리고 타입과 같은 숨겨진 정보는 포함하지 않을 것입니다) ). 마찬가지로 100 …

2
데이터 지향 인터페이스 프로그래밍
코드베이스의 일부는 다음과 같은 스타일로 작성되었습니다. // IScheduledTask.cs public interface IScheduledTask { string TaskName { get; set; } int TaskPriority { get; set; } List&lt;IScheduledTask&gt; Subtasks { get; set; } // ... several more properties in this vein } // ScheduledTaskImpl.cs public class ScheduledTaskImpl : IScheduledTask { public string TaskName …


2
인터페이스 분리 원리 : 인터페이스가 상당히 겹치는 경우 어떻게해야합니까?
에서 피어슨 새로운 국제 버전 : 애자일 소프트웨어 개발, 원칙, 패턴, 및 사례 : 때로는 다른 클라이언트 그룹이 호출 한 메소드가 겹칠 수 있습니다. 오버랩이 작 으면 그룹의 인터페이스가 분리되어 있어야합니다. 공통 기능은 모든 겹치는 인터페이스에 선언해야합니다. 서버 클래스는 각 인터페이스에서 공통 기능을 상속하지만 한 번만 구현합니다. Bob 아저씨, 약간의 …

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