«design» 태그된 질문

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

2
Google 검색을 어떻게 구현 하시겠습니까? [닫은]
인터뷰에서 "Google 검색을 어떻게 구현 하시겠습니까?" 그런 질문에 어떻게 대답 하시겠습니까? Google의 일부 부분 (BigTable, MapReduce, PageRank 등)을 구현하는 방법을 설명하는 리소스가있을 수 있지만 인터뷰에는 맞지 않습니다. 어떤 전체 아키텍처를 사용하고 15-30 분 동안이를 설명 할 수 있습니까? ~ 100k 문서를 처리하는 검색 엔진을 구축하는 방법을 설명하고 샤딩을 통해 약 …

10
단위 테스트는 어떻게 설계를 용이하게합니까?
우리 동료는 실제로 단위 디자인 테스트를 장려하여 실제로 디자인을 개선하고 리팩토링하는 데 도움을 주지만 방법을 알지 못합니다. CSV 파일을로드하고 파싱하는 경우 단위 테스트 (필드의 값 확인)가 디자인을 확인하는 데 어떻게 도움이됩니까? 그는 커플 링 및 모듈성 등을 언급했지만 나에게는별로 이해가되지 않지만 이론적 인 배경은별로 없습니다. 그것은 당신이 중복으로 표시 한 …

7
비즈니스 로직에서 데이터베이스 값 참조
하드 코딩 및 모범 사례에 대한 또 다른 질문이라고 생각합니다. 데이터베이스에 저장된 값 목록이 있고 fruit라고 가정 해 봅시다.이 테이블은 SSRS 보고서와 같은 다른 목적으로 사용되므로 데이터베이스에 있어야합니다. 1 Apple 2 Banana 3 Grapes 나는 사용자에게 그것들을 제시하고, 하나를 선택하고, 그의 프로파일에 FavouriteFruit로 저장되고 ID는 데이터베이스에 그의 레코드에 저장됩니다. 비즈니스 …
43 design 

7
언제 의존성 역전 원칙을 적용하지 않습니까?
현재 SOLID를 알아 내려고 노력 중입니다. 따라서 Dependency Inversion Principle은 두 클래스가 직접이 아닌 인터페이스를 통해 통신해야 함을 의미합니다. 예 : class A메소드가있는 경우 유형의 객체에 대한 포인터를 예상하면 class B이 메소드는 실제로 유형의 객체를 기대해야합니다 abstract base class of B. 이것은 열기 / 닫기에도 도움이됩니다. 내가 올바르게 이해했다면, 내 …

7
SOLID 원칙과 YAGNI
SOLID 원칙은 언제 YAGNI가됩니까? 프로그래머로서 우리는 복잡성, 유지 보수성, 구축 시간 등과의 상충 관계를 항상 유지합니다. 무엇보다도 선택을위한 가장 현명한 두 가지 지침은 SOLID 원칙과 YAGNI입니다. 필요하지 않으면; 빌드하지 말고 깨끗하게 유지하십시오. 예를 들어, SOLID 에서 dimecast 시리즈를 볼 때 상당히 간단한 프로그램으로 시작하고 꽤 복잡한 프로그램으로 끝납니다 (결국 예 …

6
애자일 팀에서 수석 개발자의 역할은 무엇입니까?
민첩하지 않은 개발 팀에서 수석 개발자는 일반적으로 다음과 같습니다. 표준 설정 (코딩 등) 팀을위한 새로운 기술 연구 팀의 기술 방향을 설정합니다 문제에 대한 최종 발언 시스템의 아키텍처를 설계 그러나 민첩한 팀은 다르게 작동합니다. 애자일 팀은 선구적인 것이 아니라 새로운 디자인에 의존합니다 한 사람이 디자인 한 것이 아니라 애자일 팀이 함께 …

7
팀장이 제안한대로이 프로젝트의 설계를 중단하고 설계를 시작하려면 어떻게해야합니까? [닫은]
저는 주니어 개발자 (~ 3 년)이며 업무를 수행하면서 새로운 시스템을 설계하고 있습니다. 저의 수석 개발자는 수석 아키텍트가되지만 시스템을 직접 설계 해 보도록 요청했습니다. 아이디어를 브레인 스토밍하고 아키텍처 제안으로 본 것을 제안하는 몇 가지 반복 과정에서 내 리드는 내가 수행 한 대부분의 작업이 "설계"가 아니라 "설계"라는 피드백을 받았습니다. 그는 아키텍처가 구현에 …

6
그래픽 디자이너와 함께 작업하는 올바른 방법은 무엇입니까? [닫은]
최근에 우리는 그래픽 디자이너 (클라이언트에 의해 배열 된)와 협력하여 우리가 구축 한 Django + Bootstrap 어플리케이션을위한 스킨을 제공했습니다. 디자이너는 몇 가지 기술적 속성 (글꼴 크기, 색상, 몇 가지 치수 등)을 설명하는 문서와 함께 새로운 레이아웃의 일련의 정적 이미지를 제공했습니다. 이를 구현하는 데 엄청나게 많은 시간이 소요되었습니다. 전체 사이트는 기본적으로 프론트 …

3
비즈니스 규칙을 저장하기 위해 구성 파일 또는 데이터베이스를 사용해야합니까?
나는 최근에 Pragmatic Programmer 를 읽고 있다 : 세부 사항은 특히 코드가 자주 변경되는 경우 원시 코드를 엉망으로 만듭니다. 비즈니스 로직, 법률 또는 경영진의 개인적인 취향에 따라 코드를 변경하고 변경해야 할 때마다 새로운 버그가 발생할 위험이 있습니다. 헌트 앤드류; 토마스, 데이비드 (1999-10-20). 실용 프로그래머 : Journeyman에서 Master (Kindle Locations 2651-2653)까지. …

15
기본적으로 내장 함수의 이름을 바꾸는 함수를 만드는 것은 바람직하지 않습니까?
특정 상황에서 최소 및 최대 기능에 대해 혼란스러워합니다. 한 가지 맥락에서 함수를 사용하여 두 값 중 더 크거나 작은 값을 사용하면 문제가 없습니다. 예를 들어 //how many autographed CD's can I give out? int howManyAutographs(int CDs, int Cases, int Pens) { //if no pens, then I cannot sign any autographs …

9
TDD를 수행 할 때 로깅이 필요합니까?
Red, Green & Refactor주기를 수행 할 때는 항상 테스트를 통과하기위한 최소 코드를 작성해야합니다. 이것이 제가 TDD에 관해 배운 방식이며 거의 모든 책이 그 과정을 설명하는 방식입니다. 그러나 벌목은 어떻습니까? 솔직히 나는 실제로 복잡한 일이 발생하지 않는 한 응용 프로그램에서 로깅을 거의 사용하지 않았지만 적절한 로깅의 중요성에 대해 이야기하는 많은 게시물을 …

6
Java 상속“확장”을 피해야하는 이유
제임 고슬링은 말했다 "가능한 경우 구현 상속을 피해야합니다." 대신 인터페이스 상속을 사용하십시오. 그런데 왜? 키워드 "extends"를 사용하여 객체의 구조를 상속받지 않고 동시에 객체 지향 코드를 만들려면 어떻게해야합니까? 누군가 "서점에서 책을 주문"과 같은 시나리오에서이 개념을 설명하는 객체 지향 예제를 제시해 주시겠습니까?

7
상수를 정의하기위한 인터페이스를 갖는 것은 나쁜 습관입니까?
Java로 junit 테스트 클래스 세트를 작성 중입니다. 다른 테스트 클래스에 필요한 문자열과 같은 몇 가지 상수가 있습니다. 나는 그것들을 정의하는 인터페이스를 생각하고 있으며 모든 테스트 클래스가 그것을 구현할 것입니다. 내가 볼 수있는 이점은 다음과 같습니다. 상수에 쉽게 액세스 : MY_CONSTANT대신ThatClass.MY_CONSTANT 각 상수는 한 번만 정의 됨 이 접근법은 오히려 좋은 …

3
AngularJS : 여러 ng-app로 웹 애플리케이션 구성
블로고 스피어는 AngularJS 앱의 주제와 관련하여 다음과 같은 가이드 라인을 구성하는 많은 기사를 가지고 있습니다 : http://www.johnpapa.net/angular-app-structuring-guidelines/ http://codingsmackdown.tv/blog/2013/04/19/angularjs-modules-for-great-justice/ http://danorlando.com/angularjs-architecture-understanding-modules/ http://henriquat.re/modularizing-angularjs/modularizing-angular-applications/modularizing-angular-applications.html 그러나 가이드 라인과 모범 사례를 위해 아직 다루지 않은 한 가지 시나리오는 여러 "미니 스파"앱이 포함 된 대규모 웹 애플리케이션이 있고 미니 스파 앱이 모두 특정 양의 코드를 공유하는 경우입니다. …

13
부울 매개 변수를 사용하여 값을 결정하는 것은 잘못입니까?
에 따르면 이 동작을 결정하는 부울 매개 변수를 사용하는 것이 잘못인가? 부울 매개 변수를 사용하여 동작을 결정하지 않는 것이 중요하다는 것을 알고 있습니다. 원본 버전 public void setState(boolean flag){ if(flag){ a(); }else{ b(); } c(); } 새로운 버전: public void setStateTrue(){ a(); c(); } public void setStateFalse(){ b(); c(); } …

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