소프트웨어 공학

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

2
리포지토리 패턴 및 DAL 객체 생성
내가 배운 한 IRepository에는 CRUD. 그리고 우리는 이것을 상속 IRepository과 같은 우리의 다른 인터페이스에 IProduct구현할 IProduct구체적인 클래스 ProductRepository와 같은 방법과를, GetAllProducts(), Top5Products(). n- 계층 아키텍처에서도 동일한 작업을 수행 할 수 있습니다. 같은, 생성 DAL Class Library과에서 클래스 정의 Product와 같은 방법과를 GetAllProducts(), Top5Products(). 모두 DAL.Product와 Repo.ProductRepository우리는 초기화 클래스 DB Context의 …

6
Dijkstra는 우려 분리에 대해 글을 쓸 때 코드 모듈화를 계획 했습니까?
먼저, 나는 Edsger W. Dijkstra의 1974 년 논문 "과학적 사고의 역할에 관한"을 읽었습니다. 내가 당신에게 설명하려고 노력하겠습니다. 내 취향에 맞는 것은 모든 지적 사고의 특징입니다. 그것은 자신이 일관성을 유지하기 위해 자신의 주제의 측면을 심도있게 연구하고자하는 것이며, 항상 하나의 측면만으로 자신을 차지하고 있다는 것을 알고 있습니다. 우리는 프로그램이 정확해야한다는 것을 알고 …

2
JWT의 페이로드에 액세스 권한 및 역할이 포함되어야합니까?
클라이언트의 권한 및 역할에 대한 정보가 JWT에 포함되어야합니까? 유효한 토큰이 올 때마다 JWT 토큰에 이러한 정보를 갖는 것이 매우 유용합니다. 사용자에 대한 권한에 대한 정보를 추출하는 것이 더 쉬울 것이며 데이터베이스를 호출 할 필요가 없습니다. 그러나 이러한 정보를 포함하고 데이터베이스에서 동일한 정보를 다시 확인하지 않는 것이 보안 문제입니까? 또는, 위에서 …

1
형식 매개 변수의 형식 인수를 유추하는 기술 이름입니까?
설정 :Iterator 유형 매개 변수가있는 유형이 있다고 가정합니다 Element. interface Iterator<Element> {} 그런 다음을 Iterable반환하는 하나의 메소드 가있는 인터페이스 가 있습니다 Iterator. // T has an upper bound of Iterator interface Iterable<T: Iterator> { getIterator(): T } Iterator일반적인 문제 는 형식 인수를 제공해야한다는 것입니다. 이를 해결하기위한 한 가지 아이디어는 반복자의 …

6
대학생과 함께 개발 프로세스를 구현하는 방법
소프트웨어 개발자로서의 첫 직장에서, 팀은 애자일 / 스크럼을 사용하여 프로젝트 워크 플로우를 관리했으며 꽤 잘 작동했습니다. 나는 경험이 풍부한 멘토들이 나를 올바른 길로 안내했다 – 나는 그들에게 큰 감사의 빚을졌다. 나는 몇 년 동안 그곳에서 일한 후 몇 달 전에 새로운 기회로 옮겨갔습니다. 내 현재 직업으로 빨리 감기. 저는 교수의 …

2
예외의 세분성
나는 같은 그들은 일반적으로 예외를 선호하는 몇 친구들과 나 사이의 논쟁으로 실행했습니다 ClientErrorException와 ServerErrorException내가 일을 더 구체적인을 선호하는 반면, 예외의 필드와 세부 사항. 예를 들어 다음과 같은 몇 가지 예외가있을 수 있습니다. BadRequestException AuthenticationFailureException ProductNotFoundException 이들 각각은 API에서 반환 된 오류 코드를 기반으로 작성되었습니다. 예외의 장점에 따라 이것은 Java에 관용적 …

5
마이크로 서비스 : MonolithFirst?
나는 모든 장단점,시기 및 이유에 대한 높은 수준의 개요를 얻으려고 노력하는 마이크로 서비스 아키텍처를 연구하고 있습니다. 제가 읽고 /보고있는 많은 정보는 ThoughtWorks (Martin Fowler, Neal Ford, et. al). 이 주제에 대한 Martin Fowler의 작업의 대부분은 마이크로 서비스 (일반적으로 실습은 아니지만 가정의 이름으로)가 아직 젊었을 때 몇 년이 지났으므로 소금 한 …

3
For-if 반 패턴
이 블로그 게시물 에서 For -if 안티 패턴에 대해 읽고 있었는데 왜 안티 패턴인지 이해하지 못했습니다. foreach (string filename in Directory.GetFiles(".")) { if (filename.Equals("desktop.ini", StringComparison.OrdinalIgnoreCase)) { return new StreamReader(filename); } } 질문 1: return new StreamReader(filename);내부 때문 for loop입니까? 또는 for이 경우 루프가 필요하지 않다는 사실 ? 블로그 작성자가 덜 …

6
객체가 변경 가능한 경우 함수형 프로그래밍의 맥락에서 무엇이 잘못 될 수 있습니까?
불변 객체와 같은 불변 객체와 불변 객체의 이점은 공유 및 쓰기 가능한 상태로 인해 다중 스레드 프로그래밍 문제를 해결하는 데 많은 어려움을 겪는 것을 볼 수 있습니다. 반대로, 가변 객체는 매번 새로운 사본을 생성하지 않고 객체의 신원을 처리하는 데 도움이되므로 특히 큰 객체의 성능 및 메모리 사용량을 향상시킵니다. 내가 이해하려고하는 …

3
값으로 전달 된 매개 변수의 값을 수정하지 않는 이유가 있습니까?
함수 본문에서 값별 매개 변수의 값을 수정하거나 반대하는 객관적이고 지원 가능한 소프트웨어 엔지니어링 인수가 있습니까? 우리 팀에서 반복되는 스 패트 (주로 좋은 재미)는 값으로 전달 된 매개 변수를 수정 해야하는지 여부입니다. 팀 구성원 중 일부는 매개 변수를 절대로 지정해서는 안된다는 점을 잘 알고 있으므로 원래 함수에 전달 된 값을 항상 …

5
긴 메소드 리팩토링 : 그대로두고 메소드로 분리 vs 로컬 함수 사용
다음과 같은 긴 방법이 있다고 가정하십시오. public void SomeLongMethod() { // Some task #1 ... // Some task #2 ... } 이 방법에는 별도의 방법이나 로컬 기능으로 이동해야하는 반복적 인 부분이 없습니다. 긴 방법이 코드 냄새라고 생각하는 사람들이 (나를 포함하여) 많이 있습니다. 또한 #region여기에 (s) 를 사용하는 것을 좋아하지 않으며 …

3
구문 분석 오류가 발생할 경우 자세한 정보를 제공하는 TryParse 메서드를 어떻게 디자인합니까?
사용자 입력을 구문 분석 할 때 일반적으로 예외를 throw하지 않고 확인 메소드를 사용하는 것이 좋습니다 . .NET BCL에서 이는 예를 들어 int.Parse(유효하지 않은 데이터에 대해 예외가 발생 함)과 int.TryParse( false유효하지 않은 데이터가 반환 됨)의 차이입니다. 나는 내 자신을 디자인하고 있습니다 Foo.TryParse(string s, out Foo result) 메서드와 반환 값이 확실하지 않습니다. …
9 c#  .net  api-design 

5
내가 아는 길을 따른 다음 올바른 코딩 방법을 구현하거나 좋은 코딩 방법으로 시작하여 퍼지하려고 노력합니까?
우선, 나는 취미로 절차 적 프로그래밍을하는 데 익숙하다고 말하고 싶습니다. 저는 몇 가지 언어로 OOP를 배우고 연습이 아닌 이론을 이해하려고합니다 . 특히 데이터베이스 백엔드가있는 PHP에서 빌드하려는 애완 동물 프로젝트가 있습니다 (무엇을 신경 쓰지 않았습니까). 내 주된 이유는 모든 장치에서 앱을 사용했기 때문에 WebApp이 논리적 인 선택처럼 보였습니다. 유지 관리 가능한 …

4
주변 컨텍스트와 생성자 주입
데이터베이스의 ISessionContext, 로그의 경우 ILogManager 및 다른 서비스와의 통신에 사용되는 IService가 필요한 많은 핵심 클래스가 있습니다. 모든 핵심 클래스에서 사용하는이 클래스에 종속성 주입을 사용하고 싶습니다. 두 가지 가능한 구현이 있습니다. 세 클래스 모두에서 IAmbientContext를 허용하거나 모든 클래스에 세 클래스를 삽입하는 핵심 클래스입니다. public interface ISessionContext { ... } public class …

3
단위 테스트 Proof By Example을 수동으로 작성합니까?
JUnit 테스트 작성은 코드를 통한 특정 경로를 보여줍니다. 내 동료 중 하나가 다음과 같이 댓글을 달았습니다. 단위 테스트를 수동으로 작성하는 것은 Proof By Example 입니다. 그는 Quickcheck 와 같은 툴 과 타입으로 프로그램 동작 을 추론 할 수있는 능력을 가진 Haskell의 배경에서왔다 . 그의 의미는 코드가 테스트되지 않은이 방법으로 시도되지 …

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