소프트웨어 공학

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

8
헤더 파일이나 소스 파일에 함수를 문서화하는 것이 더 낫습니까?
"소스"와 "헤더"파일 (주로 C와 C ++)을 구분하는 언어에서는 헤더 파일에 함수를 문서화하는 것이 좋습니다. ( CCAN 에서 인용 ) /** * time_now - return the current time * * Example: * printf("Now is %lu seconds since epoch\n", (long)time_now().tv_sec); */ struct timeval time_now(void); 또는 소스 파일에서? (PostgreSQL에서 인용) /* * Convert …
86 c++  c  headers 

19
OCaml이 왜 더 인기가 없습니까?
나는 항상 C가 임베디드 시스템에 사용 되는 언어 또는 최대 속도로 실행 해야하는 언어 라고 들었습니다 . 나는 포인터 산술을 좋아하지 않고 언어가 어셈블러보다 약간 렁이기 때문에 C에 대한 애정을 개발하지 못했습니다. 반면에 ML 언어는 기능적이고 가비지 수집 언어이며 OCaml도 객체 모델을 가지고 있지만 C만큼 빠른 것으로 유명합니다. 코드는 고성능 …
86 c  ocaml 

22
자연스럽지 않기 때문에 OOP가 어렵습니까?
OOP는 사람들이 세상에 대해 생각하는 방식과 자연스럽게 일치한다는 것을 종종들을 수 있습니다. 그러나 나는이 진술에 강력히 동의하지 않을 것이다. 우리 (또는 적어도 나는) 는 우리가 만나는 것들 사이 의 관계 측면에서 세계를 개념화 하지만, OOP의 초점은 개별 클래스와 계층을 설계하는 것이다. 일상 생활에서 관계와 행동은 대부분 OOP에서 관련없는 클래스의 인스턴스였던 …

3
Web SQL 데이터베이스가 더 이상 사용되지 않는 이유는 무엇입니까?
하이브리드 Android 앱을 만들고 있습니다. 처음에 localStorage를 사용하기로 결정했습니다 .2 일을 보낸 후에는 그것이 매우 이상하다는 것을 깨달았습니다. 그런 다음 오늘 하루 종일 보내고 실제로 Chrome으로 출력을 얻은 후 indexedDB를 선택했는데 Android 앱의 WebView 내에서 실행되지 않습니다. 그리고 더 이상 사용되지 않기 때문에 Web SQL 데이터베이스를 전혀 사용하지 않았습니다. 어쨌든 …

4
TypeScript와 Dart의 차이점 [닫기]
Microsoft는 최근 JavaScript와 같은 새로운 프로그래밍 언어 인 Typescript를 발표했습니다. 얼마 전에 저는 성능, 확장 성 등과 같은 Javascript 관련 문제를 해결하기 위해 Google에서 만든 새로운 프로그래밍 언어 인 Dart에 대해 들었습니다. 두 가지 새로운 언어의 목적은 나에게 동일하게 보입니다. 어떻게 생각하십니까? 언어의 목적이 동일합니까? 그들에 대한 실제 차이점은 무엇입니까?
85 dart  typescript 

10
게터와 세터를 어떻게 피합니까?
나는 클래스를 디자인하는 데 어려움을 겪고 있습니다. 객체가 데이터가 아니라 동작을 노출한다는 것을 읽었습니다. 따라서 getter / setter를 사용하여 데이터를 수정하는 대신 지정된 클래스의 메소드는 "동사"또는 오브젝트에서 작동하는 조치 여야합니다. 예를 들어, '계정'객체에, 우리는 방법이있을 것입니다 Withdraw()및 Deposit()보다는 setAmount()등을 참조하십시오 : getter와 setter 메소드가 악 이유 . 예를 들어, Name, …

20
코드에서 줄 수를 줄이는 것이 얼마나 중요합니까?
J2SE (core java)에서 작업하는 소프트웨어 개발자입니다. 코드를 검토하는 동안 코드의 줄 수를 줄여야하는 경우가 종종 있습니다. 중복 코드를 제거하는 것이 아니라 코드에서 줄 수를 줄이면서 동일한 작업을 수행하는 데 중점을 둔 스타일을 따르는 것이지만 줄 수를 늘리는 것을 의미하더라도 코드를 명확하게 믿습니다. 올바른 일을하는 방법은 무엇이라고 생각하십니까? LOC (코드 줄)가 …

4
명령형, 절차 형 및 구조화 된 프로그래밍의 차이점은 무엇입니까?
주변에서 연구 (도서, Wikipedia, SE에 대한 비슷한 질문 등)를 통해 나는 명령 프로그래밍이 컴퓨터가 실행할 명령 (또는 문장)을 설명하는 주요 프로그래밍 패러다임 중 하나라는 것을 알게되었습니다. 특정 조치를 취하기 위해 많은 주문을하므로 이름은 "제국"입니다. 여태까지는 그런대로 잘됐다. 반면 절차 적 프로그래밍은 명령형 프로그래밍의 특정 유형 (또는 하위 집합)으로, 컴퓨터에서 수행해야하는 …

17
나의 부정적인 인턴십 경험이 실제 세계를 대표합니까? [닫은]
인턴으로서의 현재 경험이 실제 산업을 대표하는지 궁금합니다. 배경으로 저는 전공 대학의 두 전공과 수학 전공의 더 나은 부분을 겪고 있습니다. 나는 모든 수업을 밟고 모든 것을 숭배 했으므로 프로그래밍에 끔찍하지 않다고 생각하고 싶습니다. 저는 주요 소프트웨어 회사 중 한 곳과 인턴십을했으며 지금은 절반 정도의 낮은 품질의 코드에 충격을 받았습니다. 주석은 …

6
파일 이름의 일부로 타임 스탬프를 사용하기위한 "표준"형식 [닫힘]
파일 이름의 일부로 날짜 / 시간을 사용하기위한 표준 형식을 검색했지만 아무것도 만들 수 없었습니다. 내 질문은 두 부분입니다. 타임 스탬프를 사용하고 있습니다 독특하게 파일 이름이 좋지 않은 연습? 생성 날짜에서 시간을 가져 와서 파일 이름 (file0001.bak, file0002.bak 등)을 직렬화 할 수 있지만 타임 스탬프를 포함하면과 같은 파일 작업을 수행 할 …

15
소프트웨어 산업의 규제
몇 년마다 누군가 소프트웨어 산업에 대한 엄격한 규제를 제안합니다. 이 IEEE 기사 는 최근에이 주제에 대해 주목을 받고 있습니다. 대중을 물리적 또는 재정적 위험에 노출시키는 시스템 용 프로그램을 작성하는 소프트웨어 엔지니어가 자신의 역량에 대해 테스트를 받는다는 것을 알고 있다면, 사고는 계속 될 것이며, 코드의 결함과 실패를 줄일 수 있으며, 거래의 …
85 legal  profession 

16
팀에서 느리고 헌신적 인 동료를 어떻게 처리합니까? [닫은]
나는 새로운 프로젝트를 진행하고 있습니다. 프로젝트는 다음과 같이 작동합니다. 최종 사용자는 링크를 사용하여 웹 애플리케이션에 액세스 할 수 있으며 네트워크에 여러 시스템을 추가하고 특정 시스템 세부 사항을 관리 할 수 ​​있습니다. 내 부분은 파이썬으로 수행되는 프론트 엔드와 웹 서버와 관련이 있습니다. 내 파이썬은 실제로 c & c ++에서 완전히 수행되는 …
85 teamwork 

17
직장을 집으로 가져 오지 못하게하려면 어떻게해야합니까? [닫은]
프로그래밍은 대뇌적인 일이며, 제가 가진 가장 큰 문제 중 하나는 저의 업무를 집으로 가져 오는 것입니다. 생각하는 기회가 생길 때마다 내 마음은 자연스럽게 업무 관련 문제로 방황합니다. 나는 하루 하루에 정신적으로 자극을주지 않는 다른 많은 것들을 발견하고 자연이 진공 상태를 싫어한다고 말합니다. 불행히도, 일에 대한 끊임없는 생각은 나를 압박하고 하루가 …

11
정적은 단위 테스트를 위해 보편적으로“악”입니까? 그렇다면 Resharper가 권장하는 이유는 무엇입니까? [닫은]
C # .NET에서 정적 인 단위 테스트 (모의 / 스텁) 종속성을 3 가지 방법으로 만 발견했습니다. 두더지 TypeMock 저스트 모크 이 중 두 가지가 무료가 아니며 하나가 릴리스 1.0에 도달하지 않았으므로 정적 항목을 조롱하는 것은 쉽지 않습니다. 정적 메소드와 "악한"(단위 테스트 의미)을합니까? 그렇다면 왜 resharper가 정적, 정적 일 수있는 것을 …

30
새로운 회사를 위해 일할 것인지를 결정할 때, 당신의 거래 담당자는 무엇입니까? [닫은]
회사에서 일하기 전에 회사에 대해 어떤 질문을 해야하는지 잘 알고 있습니다 . 그러나 당신은 답변으로 무엇을합니까? 다시 말해, 거래자를 어떻게 생각하십니까? 즉, 다른 모든 것이 훌륭하더라도 회사에서 일하지 않을 회사에 대해 당신을 두려워하는 것은 무엇입니까? 예를 들어, 버전 관리를 사용하지 않는다고 말하면 거기서 작동하지 않습니다. 이야기의 끝.

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