«design» 태그된 질문

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

1
단일 개발자를위한 익스트림 프로그래밍
폐쇄되었습니다 . 이 질문은 더 집중되어야 합니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 한 가지 문제에만 집중할 수 있도록 질문을 업데이트하십시오 . 휴일 3 년 전 . 저는 지난 2 주 동안 소규모, 영리, 멀티 플레이어, 아케이드 게임을위한 기본적인 극단적 프로그래밍 개념을 연구했습니다. 나는 …

3
HATEOAS를 사용하여 REST 서비스를 발견하기위한 전략이 있습니까?
HATEOAS 제한 조건 으로 REST 서비스를 빌드 할 때 링크를 통해 자원의 존재를 알리는 것이 매우 쉽습니다. 당신 GET은 내 사이트의 루트를 만들고 모든 첫 번째 계층 리소스를 나열하는 루트 문서로 응답합니다. { users: { href: "/users" } questions { href: "/questions" } } 이러한 href값 을 읽는 방법을 이해하는 …
10 design  rest  hateoas 

1
java.util 패키지의 스택 용 OCL (Object Constraint Language)
시험을 치르고 있으며 과거의 논문을보고 무엇을 기대해야하는지에 대한 아이디어를 얻고 있습니다. 나는 다음 중 하나에 약간 붙어있어 누군가가 몇 가지 예를 들어 줄 수 있다면 정말 감사하겠습니다. 다음 각 조작 (java.util 패키지의 Stack 클래스에 포함됨) 각각에 대해 OCL에 사전 조건 및 사후 조건을 작성하십시오. (1) Boolean empty ()-이 스택이 비어 …
10 design  languages  object  ocl 

3
메소드의 매개 변수 목록에 객체 또는 객체 식별자가 포함되어야합니까?
우리 팀은 다음과 같은 토론을하고 있습니다. 다음 두 가지 방법이 있다고 가정 해 봅시다. public Response Withdraw(int clubId, int terminalId,int cardId, string invoice, decimal amount); public Response Withdraw(Club club, Terminal terminal,Card card, string invoice, decimal amount); 유선으로 전송되는 것은 ID입니다. 한쪽은 터미널과 클럽의 ID 만 가지고 있기 때문에 첫 번째 …
10 design  methods 

3
소프트웨어 개발에 "의사 구현"과 같은 개념이 있습니까?
기술 기반 / 확장 성 개발에 시간을 소비하지 않고 제품 또는 데모를 신속하게 시작하기 위해 사람 기반 계산 방법 또는 알고리즘을 "가짜"사용하는 방법을 설명하는 레이블을 찾고 있습니다. / 분석 솔루션? 예 : Amazon Turk를 사용하여 식당의 빈 테이블 수를 계산합니다. 또한이 주제에 대해 더 많이 배우고 싶지만 무엇을 검색해야할지 모르겠습니다. …

5
솔루션 선택에 출구 비용을 통합해야합니까?
현재 두 가지 실행 가능한 소프트웨어 디자인 / 솔루션 중에서 선택하고 있습니다. 해결 방법 1은 구현하기 쉽지만 일부 데이터는 독점 형식으로 잠그므로 나중에 변경하기가 어렵습니다. 솔루션 2는 구현하기 어렵지만 나중에 변경하기가 훨씬 쉽습니다. 이것에 대해 YAGNI로 가야합니까, 아니면 의사 결정에 출구 비용을 포함시켜야합니까? 아니면 출구 비용이 TCO의 일부입니까? 출구 비용이 …

5
전략 패턴으로 리팩토링 된 함수를 단위 테스트하는 방법은 무엇입니까?
코드에 다음과 같은 함수가있는 경우 : class Employee{ public string calculateTax(string name, int salary) { switch (name) { case "Chris": doSomething($salary); case "David": doSomethingDifferent($salary); case "Scott": doOtherThing($salary); } } 일반적으로 팩토리 클래스와 전략 패턴을 사용하여 Ploymorphism을 사용하도록 이것을 리팩터링합니다. public string calculateTax(string name) { InameHandler nameHandler = NameHandlerFactory::getHandler(name); nameHandler->calculateTax($salary); } …

6
DRY 원리의 해석
지금은 코딩에서 DRY (Do n't Repeat Yourself)라는 개념으로 어려움을 겪고 있습니다. 너무 복잡해지기를 두려워하는이 기능을 만들고 있지만 DRY 원칙을 따르려고합니다. createTrajectoryFromPoint(A a,B b,C c,boolean doesSomething,boolean doesSomething2) 내가 말을해야이 기능은 3 개 입력 매개 변수를 다음 함수는 부울 조합 주어진 약간 다른 것을 할 것 doesSomething등을 doesSomething2. 그러나 내가 겪고있는 문제는이 …
10 java  design  dry 

4
응답 처리를위한 디자인 패턴
대부분의 경우 특정 함수 호출에 대한 응답을 처리하는 코드를 작성할 때 다음 코드 구조를 얻습니다. 예 : 로그인 시스템의 인증을 처리하는 기능입니다 class Authentication{ function login(){ //This function is called from my Controller $result=$this->authenticate($username,$password); if($result=='wrong password'){ //increase the login trials counter //send mail to admin //store visitor ip }else if($result=='wrong …

1
파이썬“신 클래스”를 리팩토링하는 방법?
문제 저는 주 클래스가“ God Object ” 인 Python 프로젝트를 진행하고 있습니다. 가 있습니다 너무 많은 속성과 메소드 '빌어 먹을! 수업을 리팩토링하고 싶습니다. 지금까지… 첫 번째 단계에서는 상대적으로 간단한 일을하고 싶습니다. 그러나 가장 간단한 접근 방식을 시도했을 때 일부 테스트와 기존 예제가 중단되었습니다. 기본적으로이 클래스에는 속성 목록이 많이 있습니다. 그러나 …

2
'Law of Demeter'는 공개 / API 메소드 서명에 적용 가능합니까?
이러한 메소드를 사용하는 클라이언트 코드를 손상시키지 않기 위해 API / 공용 메소드 서명의 변경이 최소화되어야한다는 점을 감안할 때 Demeter of Law 가 적용되지 않는지 궁금했습니다 . 간단한 예 : class Account() { double balance; public void debit(Transaction t) { balance -= t.getAmount(); } } debit 메소드는 단지 두 배의 금액이 …

5
인터페이스와 상속 : 두 세계의 최고?
나는 인터페이스를 '발견'했고 그것들을 사랑하기 시작했다. 인터페이스의 장점은 계약이라는 것입니다. 계약을 이행하는 모든 개체는 해당 인터페이스가 필요한 모든 곳에서 사용할 수 있습니다. 인터페이스의 문제점은 기본 구현을 할 수 없다는 것입니다. 이는 평범한 속성에 대한 고통이며 DRY를 물리칩니다. 이것은 구현과 시스템이 분리 된 상태를 유지하기 때문에 좋습니다. 한편 상속은 더 긴밀한 …

7
코드를 작성하는 것에서 훌륭한 개발자가되는 방법은 무엇입니까?
스크립트 작성 (bash, awk)에서 간단한 응용 프로그램 (c, php, python)을 작성하는 것에서 더 크고 복잡한 소프트웨어를 설계하고 개발하는 방법에 대한 구체적인 설명이 없기 때문에 좌절합니다. 한쪽에는 프로그래밍 언어 서적이 있고 다른쪽에는 프로그래머 팀을 위해 설계된 소프트웨어 엔지니어링 / 프로젝트 관리 서적이있는 것 같습니다. 둘 다 많이 읽었습니다. XP / Agile …

5
구성 클래스 / 구조 : 패턴 또는 안티 패턴? 대안?
프로그램에 새로운 구성 옵션을 추가하면, 옵션을 수행해야하는 위치에서 여러 가지 파급 효과가 발생할 수 있습니다. 내가 알고있는 이것을 처리하는 세 가지 기본 방법이 있습니다. 기본적으로 명시 적으로 필요한 모든 구성 설정을 프로그램의 일부로 전달하십시오. 이것은 가장 명백한 방법이며 가장 많이 분리하는 방법입니다. 단점은 이것이 장황하고 부서지기 쉽다는 것입니다. 가장 자주 …

7
큰 코드 기반 (컴파일) 문제에 대처하는 방법은 무엇입니까?
코딩 할 수는 있지만 아직 대규모 프로젝트를 수행 한 경험이 없습니다. 내가 지금까지 한 일은 몇 초 만에 컴파일되는 작은 프로그램을 코딩하거나 (알고리즘, 프로그래밍 원칙, 아이디어, 패러다임과 같은 다양한 c / c ++ 연습 또는 API를 시도하는 중 ...) 작은 프로젝트에서 작업하는 것입니다. 컴파일이 필요없는 스크립트 언어 (python, php, js)로 …

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