소프트웨어 공학

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

8
아무것도 나타내지 않는 클래스-맞습니까?
응용 프로그램을 설계하고 있는데 SOLID와 OOP를 올바르게 이해하고 있는지 잘 모르겠습니다. 수업은 한 가지 일을하고 잘해야하지만 다른 한편으로는 우리가 다루는 실제 사물을 나타내야합니다. 필자의 경우 데이터 세트에서 기능 추출을 수행 한 다음 기계 학습 분석을 수행합니다. 세 개의 클래스를 만들 수 있다고 가정합니다. 특징 추출기 데이터 세트 분석기 그러나 FeatureExtractor …

5
전형적인“동적 언어 실수”를 피하는 방법?
최근 대규모 사용자층의 이점을 원했기 때문에 JavaScript에 몇 시간을 쏟았습니다. 그렇게하면서 대부분의 사람들이 동적 인 언어에 귀속되는 패턴을 발견했습니다. 작업이 빠르게 진행되지만 코드가 특정 크기에 도달하면 일반적으로 유형, 철자 및 리팩토링 오류로 많은 시간이 낭비됩니다. 컴파일러가 일반적으로 저를 아끼는 오류. 그리고 다른 모듈에서 오타를 만들 때 논리에서 오류를 찾지 않도록하십시오. …

10
독창적 인 임의의 정수에 의존 할 수 있습니까?
네트워크 프로토콜을 구현하고 있으며 패킷에 고유 식별자가 있어야합니다. 지금까지 임의의 32 비트 정수를 생성했으며 프로그램 / 연결 수명 동안 충돌이 발생할 가능성이 천문학적이라고 가정합니다. 이것은 일반적으로 프로덕션 코드에서 허용되는 관행으로 간주됩니까, 아니면 충돌을 방지하기 위해보다 복잡한 시스템을 고안해야합니까?

5
Clean Architecture : 발표자를 포함하거나 데이터를 반환하는 사용 사례?
청소 아키텍처는 응답 / 디스플레이를 처리합니다 (DIP 다음, 주입) 발표자의 실제 구현을 호출 인터랙 사용 사례를 수 있도록 제안합니다. 그러나 사람들 이이 아키텍처를 구현하고 상호 작용기의 출력 데이터를 반환 한 다음 컨트롤러 (어댑터 계층)에서 처리 방법을 결정하게합니다. 두 번째 솔루션은 인터랙 터에 대한 입력 및 출력 포트를 명확하게 정의하지 않고 …

8
범위를 벗어난 의미있는 값의 경우 예외를 던지거나 직접 처리해야합니까?
위도 / 경도 좌표를 나타내는 구조체를 작성했습니다. 값은 경도의 경우 -180 ~ 180, 위도의 경우 90 ~ -90입니다. 해당 구조체의 사용자가 해당 범위를 벗어난 값을 제공하면 두 가지 옵션이 있습니다. 예외 발생 (범위를 벗어남) 값을 구속 조건으로 변환 -185의 좌표는 의미를 갖기 때문에 (극좌표이므로 +175로 매우 쉽게 변환 될 수 …

6
인터프리터는 기계 코드를 생성합니까?
나는 컴파일러와 인터프리터의 주제를 집중적으로 연구합니다. 내 기본 이해가 올바른지 확인하고 싶으므로 다음을 가정 해 봅시다. "Foobish"라는 언어가 있으며 키워드는 <OUTPUT> 'TEXT', <Number_of_Repeats>; 콘솔에 10 번 인쇄하고 싶다면 OUTPUT 'Hello World', 10; 안녕하세요 World.foobish-file. 이제 선택한 언어로 통역사를 작성합니다.이 경우 C # : using System; namespace FoobishInterpreter { internal class …

2
기존 REST API 대신 SignalR (웹 소켓)을 사용하지 않는 유일한 이유는 성능입니까?
내가 사용했던 SignalR내 프로젝트의 여러 실시간 메시징 기능을 달성하기 위해. 안정적으로 작동하는 것 같고 사용법을 익히기가 매우 쉽습니다. 적어도 나에게 유혹은 웹 API 서비스 개발을 포기하고 SignalR모든 것에 사용 하는 것입니다. 나는 이것이 신중한 디자인으로 달성 될 수 있다고 생각하며, 그렇다면 클라이언트 코드가 훨씬 적게 필요하다는 것을 의미합니다. 더 중요한 …

10
왜 코드에서 100 % CPU를 사용하지 않아야합니까? [닫은]
Windows XP 이상에서 실행되는 C # .NET 4 프로그램에 대해 구체적으로 말하고 있지만 일반적인 대답도 허용됩니다. 이미 최적화되고 효율적인 프로그램을 가정하십시오. 여기서 문제는 전적으로 CPU 사용률이 하드웨어에 미치는 영향과 내 구현의 효율성이 아니라 마모를 줄이기 위해 사용량이 많은 프로그램을 조절해야하는지 여부입니다. 동료는 오늘 "현대 CPU가 싸고 100 % CPU에서 빠르게 …
42 c#  multithreading  cpu  usage 

8
함수 이름으로 문장을 시작 하시겠습니까? [닫은]
대소 문자를 구분하는 프로그래밍 언어와 관련된 것을 입력하는 동안 함수 이름으로 문장을 시작하는 경우가 있습니다. 이제 영어 규칙은 문장의 첫 단어를 대문자로 표기해야한다고 명시하고 있습니다. 그러나 함수 이름은 소문자입니다. 첫 번째 단어가 함수 이름이 될 것이라는 말을 궁금해하는 경우 다음 예제를 사용하십시오. 스프레드 구현이 깨졌습니다. fread는 읽은 바이트 수를 리턴해야합니다. …
42 functions 

9
향후 인터페이스 사용을위한 프로그래밍
내 옆에 다음과 같은 인터페이스를 디자인 한 동료가 있습니다. public interface IEventGetter { public List<FooType> getFooList(String fooName, Date start, Date end) throws Exception; .... } 문제는 현재 코드의 어느 곳에서나이 "종료"매개 변수를 사용하지 않고 있다는 것입니다. 차후에 시간이 지나야 할 수도 있기 때문입니다. 우리는 지금 매개 변수를 인터페이스에 넣는 것이 …

3
10 진수로 표현할 수 없지만 2 진수로 표현할 수있는 숫자가 있습니까?
C#갖는 decimal유형 예를 들어베이스 (10)의 정확한 표현을 필요로 번호를 사용하고, 0.1베이스 (2)에서 표현 될 수 없다 (예를 들어, float및 double)과 항상 이러한 유형의 변수에 저장된 근사 할 것이다. 반대의 사실도 가능했는지 궁금했습니다. 10 진수로 표현할 수 없지만 2 진수로 표현할 수있는 숫자가 있습니까 (이 경우 a float대신에 a decimal를 사용 …

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

7
직장에서 배우는 데 얼마나 많은 시간을 할애 할 수 있습니까? [닫은]
나는 지금까지 약 2 년 동안 소프트웨어 개발자로 일해 왔습니다. 소프트웨어 개발로 빠르게 발전하는 분야에서는 새로운 기술, 프레임 워크 등을 배우는 데 시간을 소비해야합니다. 나는 항상 직장에서 문제를 해결하기 위해 무언가를 배워야한다면, 직장에서 배우는 데 필요한 시간을 자유롭게 보낼 수 있다고 생각합니다. 그러나 저는이 주제에 대해 다양한 동료들과 토론을했으며 두 …

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

2
모바일 앱의 데이터 동기화-여러 장치, 여러 사용자
첫 번째 모바일 앱을 구축하려고합니다. 응용 프로그램의 핵심 기능 중 하나는 여러 장치 / 사용자가 동일한 데이터에 액세스 할 수 있으며 모든 장치에 CRUD 권한이 있다는 것입니다. 아키텍처에는 모든 데이터가 저장되는 중앙 서버가 포함되어야한다고 생각합니다. 장치는 API를 사용하여 서버와 상호 작용하여 데이터 작업 (예 : 레코드 추가, 레코드 편집, 레코드 …
42 database  mysql  data  mobile 

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