소프트웨어 공학

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

3
커널 모드 웹 서버 : 영리한 최적화 또는 보안 악몽?
한 사용자가 2011 년부터 IIS가 다른 (* nix) 웹 서버보다 훨씬 빠르다는 링크를 게시 하는 해커 뉴스 스레드를 읽었 습니다 . 또 다른 사용자는 IIS가 HTTP.sys라는 커널 모듈 을 사용하여 IIS가 이점을 얻는다고 설명하면서 대답 합니다 . 아시다시피, 2015 년에 가장 많이 사용되는 다른 웹 서버는 이것을하지 않습니다. 커널 모드 …

4
부정적인 용어 "레거시 코드"의 기원은 무엇입니까
모두가 소프트웨어 개발에서 레거시 코드에 대해 이야기하고 있으며 지난 10 년 동안 코드베이스를 나쁜 것으로 묘사하는 데 사용되는 용어를 들었습니다. 프로그래머들에게 그러한 강력한 의미가있는이 용어는 어디에서 유래 했는가? 이 용어를 개척 한 소프트웨어 개발에 관한 책이 반드시 있어야합니다. "레거시 코드"라는 용어의 원점을 찾고 싶습니다.

1
프로덕션 코드에서 잘못 명명 된 함수를 처리하는 방법은 무엇입니까?
최근 GitHub에서 Python 라이브러리를 보았습니다. 라이브러리는 훌륭하지만 함수 이름에 눈부신 오타가 하나 있습니다. dummy_fuction()그것이 있어야 하는 동안 전화합시다 dummy_function(). 이 기능은 "실제로"존재하며 임베디드 시스템에서 가장 많이 사용됩니다. 가장 먼저 떠오르는 것은 올바른 이름의 함수의 두 번째 버전을 추가하고 다음 릴리스의 첫 번째 버전에 더 이상 사용되지 않는 경고를 추가하는 것입니다. …

6
플래그를 확인할 필요가없는 디자인 패턴이 있습니까?
데이터베이스에 문자열 페이로드를 저장하겠습니다. 두 가지 전역 구성이 있습니다. 암호화 압축 이들 중 하나만 활성화되거나 둘 다 활성화되거나 비활성화되는 방식으로 구성을 사용하여 활성화 또는 비활성화 할 수 있습니다. 내 현재 구현은 다음과 같습니다. if (encryptionEnable && !compressEnable) { encrypt(data); } else if (!encryptionEnable && compressEnable) { compress(data); } else if …

3
별도의 업무용 계정과 개인 GitHub 계정을 만들어야합니까? [닫은]
저는 프로그래밍에 익숙하지 않으며 많은 개인적인 프로젝트를 진행하고 있습니다. 내가 가진 프로젝트 종류는 Reddit Image Downloader이며 GM 이 롤 플레잉 게임에 사용할 수 있는 도구입니다 . 선택한 데이터 분석 분야에서 프로젝트에 대한 GitHub 계정을 구축하려고하지만 GitHub 계정에서 프로젝트 를 구성하는 방법을 잘 모르겠습니다. 주로 다른 분석 스크립트를 포함하는 "전문적인"GitHub를 작성하고 …
28 github 

6
왜 I / O를 기다려야합니까?
디스크 작업이 느리다는 것은 항상 알려져 있으며 그 이유는 무엇인지 잘 알고 있습니다. 여기서 질문은 왜 우리가 I / O를 기다려야하는지 또는 왜 IOWait 등과 같은 것이 있습니까? 필자는 백그라운드에서 일부 I / O 작업을 수행 할 때 컴퓨터가 기본적으로 속도가 훨씬 느리다는 것을 알았습니다. 특히 Linux를 사용할 때 더 …
28 cpu  io  operations 

2
좋은 / 더 나은 소스 코드 제어 방법을 시행하는 방법?
나는 내가 틀린 문제에 집중하고 있다고 생각하므로 내가 생각할 수없는 최적의 해결책을 제시하기 전에 먼저 문제가 무엇이라고 생각하는지 설명 할 것입니다. 현재 상황 : 현재 내 동료들은 프로젝트 전체에 변경 사항이 퍼져있는 엄청난 양의 덩어리에서 코드 변경을 커밋합니다. 얼마 전까지 만 .zip 아카이브를 일부 네트워크 공유에 배치했기 때문에 진행 상황입니다. …

2
역사적으로 성장한 소프트웨어를위한 명명 된 안티 패턴이 있습니까? [닫은]
여러 개발자가 방금 시스템에 새로운 기능을 추가했지만 아무도 전체 아키텍처를 주시하거나 리팩토링을 수행하지 않은 역사적으로 성장한 소프트웨어 시스템을 설명하는 안티 패턴이 있습니까? 관리 / 고객이 지속적으로 새로운 기능을 요구하고 아무도 리팩터링하지 않고 다른 개발자가 이전에 한 일을 추가 할 때 이런 일이 발생한다고 생각합니다. 개발자가 소프트웨어 시스템에 압도되어 현재 작동 …

6
TDD가없는 단위 테스트의 의미
우리는 TDD를 사용하여 개발할 계획 인 새로운 프로젝트를 시작했습니다. TDD에 대한 아이디어는 실패했지만 (많은 비즈니스 및 비 비즈니스 이유), 지금 우리는 대화를합니다. 어쨌든 단위 테스트를 작성해야하는지 여부입니다. 제 친구는 TDD없이 단위 테스트를 작성하는 데 아무런 의미가 없거나 0에 가깝다고 말합니다. 통합 테스트에만 중점을 두어야합니다. 나는 반대로 미래 코드를 만들기 위해 …
28 unit-testing  tdd 

8
C # Generics-중복 방법을 피하는 방법?
다음과 같은 두 개의 클래스가 있다고 가정합니다 (첫 번째 코드 블록과 일반적인 문제는 C #과 관련이 있음). class A { public int IntProperty { get; set; } } class B { public int IntProperty { get; set; } } 이러한 클래스는 어떤 식 으로든 변경할 수 없습니다 (타사 어셈블리의 일부 …
28 c#  generics 

2
매년 초 github에서 MIT 라이센스를 갱신해야합니까?
모든 github 프로젝트 에서 MIT LICENSE를 사용하고 있습니다. 두 번째 줄에는 2013 년이 맨 위에 있습니다. 향후 저작권 보유를 위해 (예 : 2013 년 이후) 매년 변경해야합니까, 아니면 좋은가요? 추가, 수정 또는 그대로 두어야합니까? The MIT License (MIT) Copyright (c) 2013 Aseem Bansal <aseembansal@ymail.com> //Rest of the MIT LICENSE

6
이벤트 / 활동 데이터에 관계형 데이터베이스 대 JSON 객체 사용
표준 SQL 관계형 데이터베이스 또는 JSON 객체를 사용하여 이벤트 또는 활동에 대한 데이터를 저장하도록 결정하려는 프로젝트를 진행 중입니다. 프로젝트는 여러 이벤트 유형에 데이터를 저장하므로이 질문에 대해 하나의 이벤트 유형 만 설명하기로 결정했습니다. 라이브 음악 이벤트 (이 질문의 맨 아래에 JSON 스키마를 사용하여 전체 설명)는 이벤트가 발생하는 위치, 이벤트 시간 / …
28 design  sql  json 

3
속성 설정기에 논리를 추가하는 것은 나쁜 습관으로 간주됩니까?
나는 프로젝트에 뛰어 들었고 다른 개발자들이 합성 속성의 세터에 많은 논리를 추가하고 있음을 알았습니다. 나는 이것이 어떻게 작동하는지 이해하지만 프로그램의 흐름을 이해하기가 어렵다고 생각합니다. 코드를 읽는 동안 볼 때마다 self.something = whatever항상 something세터가 재정의 되었는지 확인합니다 . 이 주제에 대한 귀하의 의견은 무엇입니까? 이것이 잘못된 아키텍처 또는 정교한 솔루션의 표시라고 …

3
사용자가 Google Play 스토어에서 최신 버전의 내 앱으로 업데이트하도록합니다.
사용자가 앱을 계속 사용하려면 앱을 업데이트해야하는 Google Play 스토어에 내 앱에 대한 "중요한 업데이트"를하는 방법이 있습니까? 예를 들어 몇 가지 버그 수정을 가져 오는 업데이트를 푸시한다고 가정하겠습니다. 필수 사항은 아닙니다. 사용자는 원하는 경우 업데이트합니다. 중요하지 않은 업데이트입니다. 이제 앱에서 매우 심각한 보안 문제를 해결하고 모든 사용자가이 버전으로 업데이트하여 앱을 계속 …

2
다음의 (안티) 패턴의 이름은 무엇입니까? 장점과 단점은 무엇입니까?
지난 몇 달 동안 나는 다음과 같은 기술 / 패턴에 대해 몇 번 걸려 넘어졌습니다. 그러나 특정 이름을 찾을 수 없으며 모든 장점과 단점에 대해 100 % 확신 할 수 없습니다. 패턴은 다음과 같습니다. Java 인터페이스 내에서 일반적인 방법 세트는 평소와 같이 정의됩니다. 그러나 내부 클래스를 사용하면 인터페이스를 통해 기본 …

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