소프트웨어 공학

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

1
파이썬의 조인은 조인 할 항목이 아니라 루비 또는 스몰 토크와 비교할 때 디자인상의 이유로 심볼에 집중하는 것 같습니다.
OOP의 초석 중 하나는 우리가 다루고 싶은 아이템 인 객체가 있고 메시지를 보낸다는 것입니다. 따라서 항목 모음이 있고 하나의 문자열에 넣어야한다는 것이 당연한 것처럼 보일 수 있습니다. ["x", "o", "o"].join(" | ") # joining a tic-tac-toe row in Ruby (Smalltalk는 동일한 방식으로 수행합니다). 은 " | "어떤 방법이 인수를 결합하는 …

1
명령 객체를 올바른 수신자와 어떻게 연결합니까?
프로젝트에서 실행 취소 및 다시 실행을 구현 하기 위해 명령 패턴 을 사용하려고했습니다. public abstract class Command { protected Form Receiver { set; get; } protected HtmlElement Element { set; get; } abstract public void ReDo(); abstract public void UnDo(); public Command(Form receiver) { this.Receiver = receiver; } } class …

2
코드 구성 방식을 계획하기 위해 UML 다이어그램을 사용하는 것이 부적절한 이유는 무엇입니까?
따라서 다이어그램은 때때로 부적절 할 수 있습니다. 언제 부적절한가요? 코드없이 코드를 작성하여 유효성을 검증 한 후 따르려고합니다. 아이디어를 탐색하기 위해 다이어그램을 그리는 데 아무런 문제가 없습니다. 민첩한 소프트웨어 개발 : 원칙, 패턴 및 실습 -Robert C. Martin 그가 정확히 무엇을 의미합니까? UML은 "다이빙" 하기 전에 코드를 구성하는 방법을 계획하도록 설계되지 …

8
데이터베이스에서 잘못된 널 항목을 방지하기위한 설계 및 실습
내 프로그램의 한 부분은 처리를 위해 데이터베이스의 많은 테이블과 열에서 데이터를 가져옵니다. 일부 열은 null이지만 현재 처리 컨텍스트에서 오류 일 수 있습니다. 이것은 "이론적으로"일어나지 않아야하는데, 그렇게된다면 그것이 나쁜 데이터 나 코드의 버그를 가리 킵니다. 어떤 필드가 어떤지에 따라 오류의 심각도가 다릅니다 null. 즉, 일부 필드의 경우 처리를 중지하고 누군가에게 통지해야합니다. …

1
쓰기가 드문 경우에만 이벤트 소싱이 이루어 집니까?
나는 이벤트 소싱에 대해 읽고 있으며 글이 매우 드물거나 군사 등급 감사가 필요한 이국적인 상황에서만 의미가 있는지 스스로에게 물어볼 수는 없습니다. 사용량이 많은 예외가 아닌 시스템은 하루에 수백에서 수천 번의 쓰기 작업을 수행하여 연간 운영 횟수가 백만 또는 2 회 (따라서 이벤트)로 변환 될 수 있습니다. 기존 스토리지에서 일직선으로 읽은 …

1
PHP에서 문자열 수식으로 데이터 세트 평가
응용 프로그램에서 일부 조건을 업데이트해야했습니다. 평가할 데이터 세트가 있으며 다음과 같은 방식으로 애플리케이션에 하드 코딩되었습니다. $arr = array( 'a' => 'apple', 'b' => 'orange', 'c' => 1, 'd' => 2, 'e' => 5, 'f' => 'green', 'g' => 'red', 'h' => 'yellow', ) $res1 = ($arr['a'] == 'apple') ? TRUE …
9 php 

1
자바 스크립트로 게양 === 컴파일 중?
최근 취업 면접에서 흥미로운 관점을 발견했습니다. Javascript에서 게양은 스크립트의 맨 위에서 변수 선언 및 함수 선언을 이동하는 것입니다. 이 단계를 컴파일 이라고 부를 수 있습니까 ? Javascript 인터프리터가 첫 번째 패스에서 게양을 수행하는 두 번째 패스와 실제로 스크립트를 실행하는 입력 스크립트를 2 패스한다는 사실을 알고 있습니다. Javascript가 해석되는 언어라는 것을 …

4
이 데이터를 저장하는 가장 효율적인 방법은 무엇입니까?
오래된 VB 코드를 다시 작성해야합니다. 나는 그것이 어떻게 작동하는지 이해하지만, 그들이 한 일을하는 훨씬 효율적인 방법이 있다고 생각합니다. 나는 그것이 무엇인지 알 수 없습니다. 다음은 데이터 요구 사항과 관련하여 실제로 내가 해야하는 것과 비슷한 것으로 고안된 예입니다. 사용자는 GUI에서 자동차 제조업체, 제조사, 모델 및 색상을 선택해야합니다. 다음과 같은 큰 텍스트 …

2
단위 테스트에서 주석의 존재를 확인할 수 있습니까?
Abstract 클래스와 N 확장으로 구성된 Java 클래스 계층 구조가 있습니다. 추상 클래스에는 @Remove 주석으로 주석이 달린 메소드가 있습니다. 이 주석이 제거되면 예외가 빨리 발생하지는 않지만 메모리 예외가 발생할 수 있으므로 일부 리팩토링에서 주석이 사라지면 가능한 한 빨리 통지하고 싶습니다. GUTS (좋은 단위 테스트)를 만들려고 노력하고 있으므로 테스트에서이 "기술 요구 사항"을 …

5
추상화에 따라 중요한 단점이 있습니까?
SAP (Stable Abstractions Principle)에서이 위키를 읽고있었습니다 . SAP는 패키지가 안정적 일수록 더 추상적이어야한다고 말합니다. 이것은 패키지가 덜 안정적이고 (변경 될 가능성이 높으면) 더 구체적이어야 함을 의미합니다. 내가 실제로 이해하지 못하는 것은 이것이 사실이어야하는 이유입니다. 확실하게 안정성에 관계없이 모든 경우에 추상화에 의존하고 구체적인 구현을 숨겨야합니까?

2
Akka가 동시성에 적합한 이유는 무엇입니까?
나는 Akka와 배우 프레임 워크를 처음 사용합니다-분명한 것이 빠져 있다고 확신합니다. 사전에 사과하십시오. Akka를 선택하는 주요 요점 중 하나가 동시성을 관리하는 방법이라는 것을 계속 읽습니다. Akka가 왜 그렇게 특별한 지 분명하지 않습니다. 나는 매우 가볍고 빠른 많은 배우들이 있다는 것을 알고 있습니다. 그러나 두 명의 사용자가 동시에 양식을 저장할 때 …

3
ASP.Net의 3 계층 아키텍처와 MVC (모델, 뷰 컨트롤러)의 차이점
동일한 아키텍처가 적용되는 것처럼 ASP.Net의 3-Tier 아키텍처가 MVC (Model, View Controller)와 어떻게 다른지 알고 싶습니다. 3 층에서 우리는이 User Services Layer, BusinessLayer그리고 DataAccessLayer, 우리가 가지고있는 반면에 Model, View하고 Controller. 이것은 나에게 동일한 아키텍처로 보입니다. 두 아키텍처의 차이점이 무엇인지, 각 레이어가 어떻게 다른지 누구나 설명 할 수 있습니까?

1
ISO-8601에서 "kk"와 "HH"+1의 차이점은 무엇입니까?
ISO-8601에는 여러 시간 형식이 있으며 그 중 하나는 1-24 시간 동안 "kk"입니다. 이것의 목적은 무엇입니까? 시간을 상쇄하는 국가가 있습니까? 군사용입니까? 위키 피 디아 기사는 HH과 주식 사이의 정확한 특성을 명확히하지 않았다. 내 관심의 주요 소스는 SimpleDataFormatter 형식의 동작입니다 . 편집 : 내가 언급하는 SimpleDateFormat의 직접적인 부분은 다음과 같습니다. H 하루 …

1
모든 사용자에 대해 인증 된 요청 캐싱
동일한 콘텐츠를 요청하려면 승인이 필요한 동시 사용자의 매우 큰 충동을 처리 해야하는 웹 앱을 개발 중입니다. 현재 상태에서는 32 코어 AWS 인스턴스까지 완전히 무너지고 있습니다. (우리는 Nginx를 리버스 프록시로 사용하고 있습니다) 최악의 경우 JWT를 디코딩하여 사용자가 인증되었는지 확인해야하므로 응답을 간단히 캐시 할 수 없습니다. 이것은 대부분 동의 할 것이다 Laravel …

1
웹 사이트 버전 관리 : 개발 / 생산 프론트 엔드 파일
웹 사이트 프로젝트를 버전 관리하는 더 좋은 방법을 생각하고 있습니다. 저는 프론트 엔드 개발자 일 뿐이므로 VCS에 대한 깊은 지식이 없습니다. 워크 플로우가 변화하고 있으며 과거 버전 관리 습관이 더 이상 사용되지 않습니다. 주요 문제는 각 웹 사이트마다 2 개의 프런트 엔드 파일 배열이 있다는 것입니다. 개발 환경 (파일, 압축되지 …

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