«design» 태그된 질문

소프트웨어 설계를 통한 솔루션의 문제 해결 및 계획에 대한 질문.

7
URI 대 쿼리 문자열로 REST API 디자인
다음과 같은 세 가지 리소스가 있다고 가정 해 봅시다. Grandparent (collection) -> Parent (collection) -> and Child (collection) 위의 내용은 다음과 같은 리소스 간의 관계를 보여줍니다. 각 조부모는 하나 이상의 부모에게 매핑 할 수 있습니다. 각 부모는 하나 이상의 자녀에게 매핑 될 수 있습니다. 하위 리소스에 대한 검색을 지원하지만 필터 …
73 design  rest  api 


11
수명이 40 년 이상인 웹 응용 프로그램 설계에 대한 조언
대본 현재 저는 의료 서비스 제공자가 사용자 생성 양식을 사용하여 알 수없는 속성으로 데이터를 캡처하는 것이 주요 건강 관리 프로젝트입니다. 두 번째 요구 사항은 데이터 무결성이 핵심이며 40 년 이상 응용 프로그램을 사용해야한다는 것입니다. 우리는 현재 지난 40 년간 고객의 데이터를 다양한 소스 (Paper, Excel, Access 등)에서 데이터베이스로 마이그레이션하고 있습니다. …

9
왜 부분 클래스를 사용합니까?
내 이해에서 partial키워드는 아무것도하지 않고 클래스를 여러 소스 파일로 나눌 수 있습니다. 코드 구성 이외의 다른 이유가 있습니까? 생성 된 UI 클래스에서 사용되는 것을 보았습니다. 전체 키워드를 작성하는 것은 좋지 않은 이유입니다. 클래스가 여러 파일을 요구할만큼 충분히 큰 경우에는 너무 많은 작업을 수행했을 수 있습니다. 다른 프로그래머가 완성 할 클래스를 …

12
SQL : 빈 문자열 대 NULL 값
나는이 주제가 논란의 여지가 있으며 인터넷에 떠 다니는 다양한 기사 / 의견이 많다는 것을 알고 있습니다. 불행히도, 대부분의 사람들은 NULL과 빈 문자열의 차이점이 무엇인지 알지 못한다고 가정합니다. 따라서 조인 / 집계로 놀라운 결과에 대해 이야기하고 일반적으로 좀 더 고급 SQL 레슨을 수행합니다. 이렇게함으로써, 그들은 요점을 절대로 그리워하지 않으므로 나에게는 쓸모가 …
72 design  database  sql  strings  null 

7
C #에서 확장 메서드가있는 인터페이스 대신 추상 클래스를 사용하는 경우
"Abstract class"와 "interface"는 비슷한 개념으로, 인터페이스가 두 가지 중 더 추상적 인 개념입니다. 차별화 요소 중 하나는 추상 클래스가 필요할 때 파생 클래스에 대한 메소드 구현을 제공한다는 것입니다. 그러나 C #에서는 최근에 확장 메서드가 도입되어이 차별화 요소가 줄어들어 인터페이스 메서드에 대한 구현을 제공 할 수 있습니다. 또 다른 차별화 요소는 …

12
“모든 것이지도입니다”, 제가 올바르게하고 있습니까?
나는 스튜어트 시에라 (Stuart Sierra)의 " 씽킹 인 데이터 (Thinking In Data) " 연설을 보고이 게임의 아이디어 중 하나를 내가 만드는이 게임의 디자인 원칙으로 채택했다. 차이점은 그가 Clojure에서 일하고 있고 JavaScript에서 일하고 있다는 것입니다. 나는 우리 언어들 사이에 몇 가지 큰 차이점이 있음을 알았습니다 Clojure는 관용적으로 기능적인 프로그래밍입니다 대부분의 상태는 …

10
제안 된 디자인은 일반적으로 동료보다 나쁩니다. 어떻게하면 더 나아질까요? [닫은]
나는 몇 년 동안 프로그래밍을 해왔으며 일반적으로 문제를 해결하고 중소 규모의 스크립트를 만드는 데 능숙하지만 일반적으로 객체 지향 방식으로 대규모 프로그램을 설계하는 데 능숙하지 않습니다. 몇 가지 질문 최근에 나와 같은 경험을 가진 동료 가 문제를 해결하고있었습니다. 나는 그보다 더 긴 문제에 대해 연구하고 있었지만 더 나은 해결책을 찾았고 결국 …

4
인터페이스에서 "선택적 메소드"로 Java 콜렉션이 구현 된 이유는 무엇입니까?
Java 콜렉션 프레임 워크를 확장 한 첫 번째 구현 중에 콜렉션 인터페이스에 선택적으로 선언 된 메소드가 포함되어 있다는 사실에 놀랐습니다. 구현되지 않은 경우 구현자는 UnsupportedOperationExceptions를 발생시킵니다. 이것은 즉시 API 디자인 선택이 좋지 않은 것으로 나타났습니다. Joshua Bloch의 뛰어난 "Effective Java"책을 많이 읽은 후 나중에 이러한 결정에 대한 책임을진다는 사실을 알게 …

7
의도 한 동작을 수행하기 전에 함수가 null 검사를 수행해야하는 경우 이것이 나쁜 설계입니까?
그래서 이것이 좋은 코드 디자인인지 나쁜 코드인지 모릅니다. 그래서 더 잘 물어볼 것이라고 생각했습니다. 클래스를 사용하여 데이터 처리를 수행하는 메소드를 자주 작성하며, 사전에 널 참조 나 기타 오류가 발생하지 않도록 메소드를 많이 점검합니다. 매우 기본적인 예를 들면 다음과 같습니다. // fields and properties private Entity _someEntity; public Entity SomeEntity => …
67 c#  design  validation 

12
오류를 발생시켜야 하는지를 나타내는 플래그가있는 것
나는 최근에 훨씬 더 오래된 개발자들 (약 50 세 이상)과 함께 일하기 시작했습니다. 그들은 시스템이 다운 될 수없는 항공을 다루는 중요한 애플리케이션에서 작업했습니다. 결과적으로 이전 프로그래머는 이런 식으로 코딩하는 경향이 있습니다. 그는 예외가 발생해야하는지 여부를 나타 내기 위해 객체에 부울을 넣는 경향이 있습니다. 예 public class AreaCalculator { AreaCalculator(bool shouldThrowExceptions) …

11
단일 책임 원칙 명확화
단일 책임 원칙에 따르면 클래스는 한 가지만 수행해야합니다. 어떤 경우는 꽤 분명합니다. 그러나 특정 추상화 수준에서 볼 때 "하나의 것"처럼 보이는 것이 낮은 수준에서 볼 때 여러 가지 일 수 있기 때문에 다른 것들은 어렵습니다. 또한 단일 책임 원칙이 더 낮은 수준에서 과도하게 분리되고 자세한 라비올리 코드를 준수하면 더 많은 …


14
MVC가 OOP가 아닙니까?
OOP의 기본 아이디어는 단일 개체 (객체)에서 데이터와 동작을 통합하는 것입니다. 절차 적 프로그래밍에는 데이터를 수정하는 별도의 알고리즘과 데이터가 있습니다. Model-View-Controller 패턴에서 데이터와 로직 / 알고리즘은 각각 별개의 엔터티, 모델 및 컨트롤러에 배치됩니다. 동등한 OOP 방식에서 모델과 컨트롤러를 동일한 논리 엔티티에 배치해서는 안됩니까?

12
여러 계층을 통해 인스턴스를 전달하는 것은 나쁜 습관입니까?
프로그램 디자인에서 종종 여러 클래스를 통해 객체 인스턴스를 전달해야하는 시점에 도달합니다. 예를 들어, 오디오 파일을로드 한 다음 플레이어로 전달하는 컨트롤러가 있고 플레이어가 playerRunnable에 전달하면 다른 곳으로 다시 전달됩니다. 그것을 피하는 방법을 알아라. 아니면 괜찮습니까? 편집 : 아마도 파일을 나중에로드 할 수 있기 때문에 플레이어 예제가 가장 좋지 않을 수도 있지만 …

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