소프트웨어 공학

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

9
이론적으로 만 TDD
약 1 년 전에 나는 9 개월의 휴식을 취할 수있을만큼 운이 좋았다. 나는 그 시간에 C # 기술을 연마하기로 결정했습니다. 나는 많은 프로젝트를 시작했고 TDD를 따르도록 강요했다. 상당히 깨달은 과정이었습니다. 처음에는 힘들었지 만 시간이 지남에 따라 더 테스트 가능한 코드를 작성하는 방법을 알게되었고 (이것은 더 많은 SOLID 코드 인 경향이 …

5
자바 스크립트, HTML 및 CSS 간의 긴밀한 결합 :보다 현대적인 접근 방식?
Javascript가 특정 선택기에 바인딩되어 요소를 찾고 데이터를 저장하며 이벤트를 수신하는 것이 일반적입니다. 스타일링에 이와 동일한 선택기가 사용되는 것도 일반적입니다. jQuery (및 선택기 엔진 Sizzle)는 CSS 유형 구문으로 요소를 참조하여이를 지원하고 승격시킵니다. 따라서이 기술은 프로젝트를 구축 할 때 '학습'(또는 리팩토링)하기가 특히 어렵습니다. 나는 이것이 HTML 및 Javascript 개발의 역사의 결과이며 브라우저가 …
29 javascript  html  css  jquery 

7
내가 만든 첫 번째 사람이되도록 웹의 모든 콘텐츠를 보호하는 알고리즘 패턴이 있습니까?
몇 년 전에 주어진 시스템에서 취약점을 완전히 밝혀낸이 해커 (그가 누구인지 기억하지 못함)가 있었지만 아무도 그 신용을 얻지 못하도록하기 위해 일종의 PGP 키를 만들었습니다. 당시 내가 이해 한 바는 그가 자신을 발견 한 사람인지 확인하기 위해 열쇠를 만들었지 만 실제로 자신을 공개하지 않았으며 공개를 한 사람임을 증명할 수있는 메커니즘을 만들었습니다. …

6
“인터페이스 프로그래밍”이해
"구현 대신 인터페이스 프로그래밍"이라는 용어를 많이 접하게되었으며 그 의미를 이해하고 있다고 생각합니다. 그러나 그것이 이점과 가능한 구현인지 이해하고 싶습니다. "인터페이스 프로그래밍"이란 가능한 경우 구체적인 구현을 참조하는 대신보다 추상적 인 수준의 클래스 (인터페이스, 추상 클래스 또는 때로는 일종의 수퍼 클래스)를 참조해야 함을 의미합니다. Java의 일반적인 예는 다음을 사용하는 것입니다. List myList …

6
형식 유추에 대한 장단점은 무엇입니까?
모든 새로운 프로그래밍 언어 또는 최소한 대중화 된 언어는 유형 유추를 사용하는 것으로 보입니다. Javascript조차도 다양한 구현 (Acscript, typescript 등)을 통해 유형과 유형 유추를 얻었습니다. 그것은 나에게 멋져 보이지만 어떤 절충점이 있는지 또는 왜 Java 또는 오래된 좋은 언어에 유형 유추가 없다고 말합니까? 유형을 지정하지 않고 (유형이나 : = 구문없이 …

3
좋은 제네릭 형식 시스템
Java 제네릭이 몇 가지 중요한 방식으로 실패한 것으로 일반적으로 인정됩니다. 와일드 카드와 바운드의 조합으로 인해 읽을 수없는 코드가 생겼습니다. 그러나 다른 언어를 볼 때 프로그래머가 만족하는 일반적인 유형 시스템을 찾지 못하는 것 같습니다. 이러한 유형 시스템의 설계 목표로 다음을 고려하면 : 항상 읽기 쉬운 타입 선언을 생성합니다 배우기 쉬움 (공분산, …

3
동적 언어에 실질적인 이점이 있습니까? [닫은]
먼저 Java가 내가 사용한 유일한 언어라고 말하고 싶습니다.이 주제에 대해 무지를 용서하십시오. 동적으로 입력 된 언어를 사용하면 변수에 값을 넣을 수 있습니다. 예를 들어 다음 함수 (psuedocode)를 작성할 수 있습니다. void makeItBark(dog){ dog.bark(); } 그리고 당신은 그 안에 어떤 가치를 전달할 수 있습니다. 값에 bark()메소드가있는 한 코드가 실행됩니다. 그렇지 않으면 …

10
Java의 템플릿 "메타 프로그래밍"이 좋은 생각입니까?
상당히 큰 프로젝트에는 성능에 매우 민감한 여러 기능을 가진 소스 파일이 있습니다 (초당 수백만 번이라고 함). 실제로, 이전 관리자는 하나의 함수에서 조건을 확인하는 데 소요되는 시간을 절약하기 위해 각각 약간 씩 다른 함수의 12 개 사본을 작성하기로 결정했습니다. 불행히도 이것은 코드가 유지해야 할 PITA라는 것을 의미합니다. 중복 코드를 모두 제거하고 …

7
오류를 조기에“잡을”도구로 예외를 사용하는 것이 괜찮습니까?
나는 예외를 사용하여 문제를 조기에 포착합니다. 예를 들면 다음과 같습니다. public int getAverageAge(Person p1, Person p2){ if(p1 == null || p2 == null) throw new IllegalArgumentException("One or more of input persons is null"). return (p1.getAge() + p2.getAge()) / 2; } 내 프로그램은 null이 기능을 전달해서는 안됩니다 . 나는 그것을 의도하지 …

3
C ++의 부울 유형이 ++를 지원하지만-를 지원하지 않는 이유는 무엇입니까?
왜 연산자 --는 bool에 존재 하지 않고 연산자 는 bool에 존재 ++합니까? C ++로 시도했지만 내 질문이 다른 언어에 적용되는지 알 수 없습니다. 나는 또한 알게되어 기쁘다. 나는++ bool과 함께 연산자 를 사용할 수 있다는 것을 알고있다 . 부울을 true로 만듭니다. bool b = false; b++; // Now b == …

5
C ++ 용 스타일 가이드 [닫기]
현재 C ++ 코드에서 Google C ++ 스타일 가이드 를 사용 하고 있으며 매우 만족했습니다. 최근에 나는이 안내서가 매우 나쁘다는 말을 들었습니다.이 안내서는 Google에서 내부적으로 사용하고 있으며 (구식이 다름) 구식이며 일부 나쁜 습관을 조장합니다. 다른 코딩 스타일을 사용하고 싶습니다. 어떤 C ++ 스타일 가이드가 잘 사용됩니까? gcc와 Visual Studio 모두에 …

2
오늘날 일반적인 리스프에 대한이 오래된 비판 중 어느 것이 오늘날에도 적용됩니까?
에 커먼 리스프의 비판 1984 년 로드니 A. 브룩스와 스탠포드에서 리처드 P. 가브리엘에 의해 작성, 커먼 리스프의 정규화위원회에 의해 유지 몇 가지 디자인 결정이 논의된다. 대부분의 논의는 유효하지만 현재 사용 가능한 기술을 언급하는 두 가지 진술이 있으며 오늘날에는 틀릴 수도 있습니다. 이 두 문장은 다음과 같습니다. '모든 좋은 컴파일러'가 처리 …

10
임시 코드를 버전 관리하에 두어야합니까?
다음은 임시 / 로컬 코드의 예입니다. 코드베이스로 작업하려면 필요하지만 그 일부가되는 것은 해 롭습니다. 프로젝트 파일. 현재 PC의 레이아웃을 반영하기 위해 경로를 편집해야 할 수도 있습니다. 메이크 파일. 예를 들어 디버깅 중에는 최적화를 해제해야하지만 CI 서버에는 최적화를 해제하지 않아도됩니다. 더러운 못생긴 해킹. 예를 들어 return 7, 함수의 중간에, 함수에 따라 …

2
유닉스 링커가 "ld"인 이유
웹을 검색하려고했는데 답을 찾지 못했습니다. "로드"와 관련이있을 수 있지만 그다지 의미가 없습니다. 분명히 "ln"은 이미 사용되었지만 "d"는 어디에서 왔습니까?
29 history 

1
민첩한 개발자로서“SMART”목표를 작성하는 방법은 무엇입니까?
많은 회사와 마찬가지로 제가 일하는 회사는 SMART 목표를 기반으로 성과 검토 시스템으로 전환하고 있습니다. 우리 팀은 Extreme Programming의 관행을 채택한 고도로 민첩한 개발 팀 입니다. 우리의 큰 이익을 위해 민첩한 관행의 고용은 즉각적이고 고위 경영진을 전적으로 지원합니다. 작업을 수행하기 위해 우리 팀은 3 주 반복을 사용합니다. 즉각적인 반복을 넘어서 우리는 …

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