소프트웨어 공학

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

8
클라이언트가 소스 코드를 원하지만 다른 프로젝트와 재사용하는 많은 공유 코드가 포함되어 있습니다.
개발 된 응용 프로그램 이진으로 소스 코드를 제공하려는 클라이언트가 있습니다. 그들은 원래 소스 코드에 대해 아무 말도하지 않았지만 최근에 필요하다고 말했습니다. 계약이 완료되지 않았습니다. 그들은 그 일에 동의했고, 서명하지 않았으며,이 조항으로 돌아 왔습니다. 문제는 : 수년에 걸쳐 만든 코드베이스를 가지고 있으며 필자가 작성한 대부분의 응용 프로그램의 템플릿으로 사용되었습니다. 프로젝트 범위보다 …

8
신뢰할 수있는 모바일 애플리케이션에 대해서만 REST API를 보호하는 방법
REST API가 신뢰할 수있는 클라이언트, 내 경우에는 내 모바일 애플리케이션에서 생성 한 요청에만 응답하도록하려면 어떻게해야합니까? 원치 않는 요청이 다른 소스에서 오는 것을 방지하고 싶습니다. 사용자가 직렬 키 등을 채우지 않기를 원합니다. 설치 후, 사용자 상호 작용없이 장면 뒤에서 발생해야합니다. 내가 아는 한 HTTPS는 통신하는 서버의 유효성을 검사하는 것입니다. 물론 HTTPS를 …
96 security  rest  mobile 

3
프로그래밍 언어, 특히 C가 왜 중괄호가 아닌 중괄호를 사용합니까?
"C 스타일 언어"의 정의는 실질적으로 "중괄호 ( {}) 사용"으로 단순화 할 수 있습니다 . 왜 우리는 그 특정 문자를 사용합니까 (그리고 []적어도 미국 키보드에서는 Shift 키가 필요하지 않은 것과 같은 더 합리적인 것이 아닌 이유는 무엇 입니까)? 이러한 중괄호에서 비롯된 프로그래머 생산성에 실질적인 이점이 있습니까, 아니면 새로운 언어 디자이너가 대안을 …

8
브라우저 지문은 익명 사용자를 식별하는 데 유용한 기술입니까?
브라우저 지문은 익명 사용자를 고유하게 식별하기에 충분한 방법입니까? 마우스 제스처 또는 타이핑 패턴과 같은 생체 데이터를 통합하면 어떻게 되나요? 다른 날 에 Panopticlick 실험 EFF가 브라우저 지문에서 실행되고 있었습니다. 물론 나는 프라이버시 영향과 그것이 악에 어떻게 사용될 수 있는지 즉시 생각했습니다. 그러나 다른 한편으로는, 이것은 큰 이익을 위해 사용될 수 …

13
다른 프로그래머에게 클래스 구현에 대해 경고하는 방법
"특정 방법으로 사용해야합니다"클래스를 작성하고 있습니다 (모든 클래스는 반드시 ...). 예를 들어 fooManager클래스를 만들려면을 호출 해야 합니다 Initialize(string,string). 그리고 예제를 조금 더 나아 가기 위해 클래스의 ThisHappened행동을 듣지 않으면 클래스는 쓸모가 없습니다 . 내 요점은, 내가 쓰고있는 클래스에는 메소드 호출이 필요하다는 것입니다. 그러나 이러한 메소드를 호출하지 않으면 컴파일이 잘되고 빈 FooManager가 …

10
"표에서 * 선택"이 나쁜 습관으로 간주되는 이유
어제 나는 "취미"프로그래머 (나 자신은 전문 프로그래머이다)와 논의하고 있었다. 우리는 그의 작업 중 일부를 발견했으며, 그는 항상 데이터베이스의 모든 열 (운영 서버 / 코드의 / 서버)을 쿼리한다고 말했습니다. 나는 그렇게하지 말라고 설득했지만 아직 성공하지는 못했다. 제 생각에는 프로그래머는 "예쁜", 효율성 및 트래픽을 위해 실제로 필요한 것을 쿼리해야합니다. 내 견해에 착각하고 …
96 database  sql  mysql  bad-code 

14
C 프로그래밍 언어가 여전히 사용됩니까?
저는 C # 프로그래머이며 대부분의 개발은 몇 가지 Windows 응용 프로그램과 함께 웹 사이트를위한 것입니다. C가 진행되는 한, 필자가 필요로하지 않았기 때문에 오랫동안 사용하지 않았습니다. 내 친구 중 한 명이 C 테스트를 배우고 C #을 배우는 동안 C를 배워야한다고 말했을 때 놀랍습니다. C로 개발이 진행되고있는 경우 누군가 테스트를 위해 C …

25
프로그래머는 어떻게 직업을 그만두나요? [닫은]
저는 현재 고용주를 떠나 프로그래밍 세계에서 어떻게 그 과정을 진행하는지 궁금합니다. 현재 진행중인 많은 프로젝트가 있으며 저는 유일한 개발자입니다. 우리는 상당히 크고 4 ~ 5 개의 프로젝트를 가지고 있으며 앞으로 몇 개월 안에, 심지어 그보다 몇 년 더 긴 기간 동안 수행해야합니다. 나는 유일한 직원이기 때문에 떠난다. 나는 젊고 배우고 …

13
하급 개발자의 '거의 좋은'코드를 처리하는 방법은 무엇입니까? [닫은]
팀 관리에 대한 질문이 있습니다. 지금은 코딩 공장에서 원격으로 일하는 하급 개발자를 상대하고 있습니다. 그 사람은 비판을 받고 기꺼이 배울 의향이 있지만, 물건을 얼마나 밀어야할지 의심이 듭니다. SRP 위반, 신의 대상, 방법이나 변수에 대한 의미없는 이름; 나는 그가 고쳐야 할 것을 지적하고 그것이 왜 잘못되었는지 설명하려고 노력한다. 내 질문은 : …

12
최신 컴파일러에서 함수 호출 비용은 여전히 ​​중요합니까?
나는 종교적인 사람이며 죄를 짓지 않기 위해 노력합니다. 그렇기 때문에 Clean Code 성경이 지시 한 몇 가지 계명을 준수하기 위해 작게 ( 로버트 C. 마틴을 말하면) 작게 작성하는 경향이 있습니다. 그러나 몇 가지 사항을 확인 하면서이 게시물에 착륙했으며 그 아래 에서이 의견을 읽었습니다. 언어에 따라 메서드 호출 비용이 상당 할 …

9
의존성 주입을 사용해야하는 이유는 무엇입니까?
종속성 주입을 사용해야하는 이유에 대한 리소스를 찾는 데 어려움을 겪고 있습니다 . 내가 보는 대부분의 리소스는 객체의 인스턴스를 객체의 다른 인스턴스로 전달한다고 설명하지만 왜 그럴까요? 이것은 깨끗한 아키텍처 / 코드만을위한 것입니까 아니면 성능 전체에 영향을 줍니까? 왜 다음을해야합니까? class Profile { public function deactivateProfile(Setting $setting) { $setting->isActive = false; } …

13
가능한 경우 지역 변수를 제거해야합니까?
예를 들어 Android에서 CPU를 켜려면 다음과 같은 코드를 사용할 수 있습니다. PowerManager powerManager = (PowerManager)getSystemService(POWER_SERVICE); WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "abc"); wakeLock.acquire(); 하지만 지역 변수를 생각 powerManager하고 wakeLock제거 할 수있다 : ((PowerManager)getSystemService(POWER_SERVICE)) .newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakelockTag") .acquire(); iOS 경보보기에 유사한 장면이 나타납니다. 예 : from UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"my title" message:@"my …

2
JavaScript 란 무엇입니까?
이 모든 것은 W3C HTML Validator 와 같은 JavaScript 적합성에 대한 웹 페이지 를 테스트하는 방법을 찾고 있었을 때 시작되었습니다 . 아직 찾지 못했습니다. 알고 계시다면 알려주십시오. 공식 JavaScript 페이지를 찾아 ECMA Script를 찾았습니다 . 이 사람들은 스크립팅 언어를 표준화하고 (더 이상 JavaScript라고 부르지 않습니다!) ECMA-262 ( Wikipedia ) 라고 …


2
"Free Monad + Interpreter"패턴은 무엇입니까?
사람들이 Free Monad with Interpreter 에 대해 이야기하는 것을 보았습니다 . 특히 데이터 액세스와 관련하여 특히 그렇습니다. 이 패턴은 무엇입니까? 언제 사용하고 싶습니까? 어떻게 작동하며 어떻게 구현합니까? 나는 (같은 글에서 이해 이 이 데이터 액세스에서 모델을 분리 관하여 것을). 잘 알려진 리포지토리 패턴과 어떻게 다릅니 까? 그들은 같은 동기를 갖는 …

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