소프트웨어 공학

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


5
함수형 프로그래밍에서 대부분의 데이터 구조를 변경 불가능하게하려면 더 많은 메모리 사용이 필요합니까?
함수형 프로그래밍에서는 거의 모든 데이터 구조가 불변이므로 상태를 변경해야 할 때 새 구조가 생성됩니다. 이것이 더 많은 메모리 사용량을 의미합니까? 객체 지향 프로그래밍 패러다임을 잘 알고 있습니다. 이제 함수형 프로그래밍 패러다임에 대해 배우려고합니다. 불변의 모든 것의 개념은 나를 혼란스럽게한다. 불변 구조를 사용하는 프로그램은 가변 구조를 가진 프로그램보다 훨씬 더 많은 …

9
매일 코드를 커밋 / 체크하는 것이 좋은 습관입니까?
나는 Continuous Integration 에 대한 Martin Fowler의 메모를 읽었으며 필자는 "모든 사람이 매일 메인 라인에 커밋"해야한다고 언급했다. 작업중 인 섹션이 완료되지 않고 실제로 3 일마다 코드를 커밋하지 않는 한 코드를 커밋하는 것을 좋아하지 않습니다 : 하루는 작업을 조사 / 재생하고 예비 변경을 수행하고 하루는 변경을 완료하기 위해 하루를 변경합니다 시험을 …

22
왜 일부 프로그래머들은 이론과 실제가 대조적이라고 생각합니까? [닫은]
토목 공학과 소프트웨어 공학을 비교할 때, 나는 다른 사고 방식을 관찰하는 것에 놀랐습니다. 모든 토목 기술자는 정원에 작은 오두막을 만들고 싶다면 재료를 얻고 건축하려는 경우 건축을 갈 수 있다는 것을 알고 있습니다 10 층짜리 집 (또는 예를 들어 이와 같은 것 )은 떨어지지 않도록 상당한 수학을해야합니다. 반대로, 일부 프로그래머들과 이야기하거나 …

10
개인 기능 / 메소드가 너무 많습니까?
잘 문서화 된 코드의 중요성을 이해합니다. 그러나 자체 문서화 코드 의 중요성도 이해합니다 . 특정 기능을 시각적으로 쉽게 읽을 수있을수록 소프트웨어 유지 관리 중에 더 빠르게 이동할 수 있습니다. 그 말로, 나는 큰 기능을 다른 작은 기능으로 분리하고 싶습니다 . 그러나 나는 한 클래스가 하나의 공개 방법을 제공하기 위해 클래스 …


4
스레드 풀이 란 무엇입니까?
스레드 풀을 어떻게 구현할까요? "스레드 풀"에 대한 위키 백과를 읽었지만 여전히이 질문을 해결하기 위해 어떻게해야하는지 파악할 수 없습니다 (스레드 풀이 간단한 용어로 무엇인지 이해하지 못했을 수도 있습니다). 누군가 스레드 풀이 무엇인지 일반 영어로 설명 할 수 있습니까?이 질문에 어떻게 대답 할 수 있습니까?

7
단위 테스트 대신 수락 및 통합 테스트를 사용하는 것으로 충분합니까?
이 질문에 대한 짧은 소개. 나는 지금 TDD와 요즘 BDD를 1 년 이상 사용했다. 테스트를보다 효율적으로 작성하기 위해 조롱과 같은 기술을 사용합니다. 최근에 나는 작은 돈 관리 프로그램을 작성하기위한 개인 프로젝트를 시작했다. 레거시 코드가 없었기 때문에 TDD로 시작하기에 완벽한 프로젝트였습니다. 불행히도 나는 TDD의 기쁨을 그다지 경험하지 못했습니다. 그것은 심지어 프로젝트를 …

11
프로그램을 여러 클래스로 나누는 것이 좋은 이유는 무엇입니까? [닫은]
저는 여전히 고등학교 (10 학년 입학) 학생이며 학교에서 실제 컴퓨터 과정을 수강하지 않았습니다. 내가 지금까지 한 모든 일은 책을 통해서입니다. 그 책들은 상속과 같은 개념을 가르쳐 주었지만 프로그램을 여러 클래스로 나누는 것이 어떻게 도움이됩니까? 책은 나에게 말하지 않았다. 나는 최근 프로젝트 때문에 주로 이것을 묻습니다. 아케이드 비디오 게임입니다. 일부 사람들이 …

16
예외를 지원하지 않는 언어에서 0으로 나누기를 처리하는 방법은 무엇입니까?
일부 비즈니스 요구 사항을 해결하기 위해 새로운 프로그래밍 언어를 개발하는 중입니다.이 언어는 초보자 사용자를 대상으로합니다. 따라서 언어에서 예외 처리를 지원하지 않으므로 추가해도 예외를 사용할 것으로 기대하지 않습니다. 나누기 연산자를 구현 해야하는 시점에 도달했으며 0으로 나누기 오류를 가장 잘 처리하는 방법이 궁금합니다. 이 사례를 처리 할 수있는 방법은 세 가지 뿐인 …

7
테스트 가능성을 설계 할 때 정적 유틸리티 클래스를 처리하는 방법
우리는 시스템을 테스트 할 수 있고 대부분 TDD를 사용하여 개발하도록 시스템을 설계하려고합니다. 현재 우리는 다음과 같은 문제를 해결하려고 노력하고 있습니다. 여러 곳에서 ImageIO 및 URLEncoder (표준 Java API)와 같은 정적 헬퍼 메소드와 대부분 정적 메소드 (Apache Commons 라이브러리와 같은)로 구성된 다양한 라이브러리를 사용해야합니다. 그러나 이러한 정적 도우미 클래스를 사용하는 메서드를 …

15
클라이언트 측 Javascript에서 데이터베이스로 직접 이동하지 않는 이유가 있습니까?
가능한 중복 : 웹 "서버 이하"응용 프로그램 작성 따라서 Stack Exchange 복제본을 구축하고 백엔드 저장소로 CouchDB와 같은 것을 사용하기로 결정했다고 가정 해 봅시다. 내장 인증 및 데이터베이스 레벨 권한 부여를 사용하는 경우 클라이언트 측 Javascript가 공개적으로 사용 가능한 CouchDB 서버에 직접 쓰지 못하게 할 이유가 있습니까? 이것은 기본적으로 CRUD 응용 …

3
왜 비공개 회원을 헤더에 넣어야합니까?
개인 변수는 클래스 사용자에게 복잡성과 구현 세부 사항을 숨기는 방법입니다. 이것은 다소 좋은 기능입니다. 그러나 C ++에서 왜 클래스 헤더에 그것들을 넣어야하는지 이해하지 못합니다. 나는 이것에 대한 두 가지 성가신 단점을 봅니다. 사용자의 헤더를 어지럽게 만듭니다. 내부를 수정할 때마다 모든 클라이언트 라이브러리를 강제로 다시 컴파일합니다. 이 요구 사항 뒤에 개념적 …
62 c++  headers 

6
객체 풀링은 더 이상 사용되지 않는 기술입니까?
나는 객체 풀링의 개념에 매우 익숙하며 항상 가능한 한 많이 사용하려고합니다. 또한 Java 자체뿐만 아니라 다른 프레임 워크에서도 가능한 한 많이 풀링을 사용하는 것을 관찰 한 것처럼 객체 풀링이 표준 표준이라고 생각했습니다. 최근에 나는 완전히 새로운 (그리고 반 직관적 인) 것을 읽었지만. 이러한 풀링은 실제로 동시 응용 프로그램에서 실제로 프로그램 …

4
화살의 목적은 무엇입니까?
나는 Haskell과 함께 함수형 프로그래밍을 배우고 있으며, 왜 필요한지 먼저 이해함으로써 개념을 잡으려고 노력합니다. 함수형 프로그래밍 언어에서 화살표의 목표를 알고 싶습니다. 그들은 어떤 문제를 해결합니까? http://en.wikibooks.org/wiki/Haskell/Understanding_arrows 및 http://www.cse.chalmers.se/~rjmh/afp-arrows.pdf 확인했습니다 . 내가 이해하는 것은 계산을 위해 그래프를 설명하는 데 사용되며 더 쉬운 포인트 프리 스타일 코딩이 가능하다는 것입니다. 이 기사에서는 포인트 …

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