소프트웨어 엔지니어링 좋은 인용문

때로는 짧은 생각이 놀라운 아이디어를 가져올 수 있습니다.

제가 수집 한 훌륭한 인용문이 있습니다.

나는 그것들을 일부 기사의 영감이나 모토로 사용합니다.

Unsplash에 Zac Durant의 사진

소프트웨어 디자인

컴퓨터 과학에는 캐시 무효화와 이름 지정이라는 두 가지 어려운 것이 있습니다.

필 칼튼

이름이 정확히 무엇입니까? — 파트 I : 탐구

불법 국가를 대표 할 수 없게 만드십시오.

야론 민스키

먼저 쉽게 변경 한 다음 (경고 : 어려울 수 있음) 쉽게 변경하십시오.

켄트 벡

단순한 것은 단순해야하고 복잡한 것은 가능해야합니다.

앨런 케이

코드 냄새 31 — 비즈니스 객체에 대한 우발적 방법

소프트웨어를 재사용하려면 먼저 사용할 수 있어야합니다.

랄프 존슨

단순성은 신뢰성의 전제 조건입니다.

Edsger W. Dijkstra

냄새는 코드에서 리팩토링 가능성을 제안하는 (때로는 비명을 지르는) 특정 구조입니다.

마틴 P. 파울러

코드에서 냄새 나는 부분을 찾는 방법

객체 사고는 솔루션 공간이 아닌 문제 공간에 우리의주의를 집중시킵니다.

데이비드 웨스트

오늘날 대부분의 소프트웨어는 구조적 무결성없이 수백만 개의 벽돌이 쌓여있는 이집트 피라미드와 매우 유사하지만 무차별 대입과 수천 명의 노예에 의해 수행됩니다.

앨런 케이

우리는 고객이 자신이 필요하다고 말한 것에 만족했다면 디자인은 괜찮 았을 것이라는 믿음으로 자신을 위로합니다. 우리의 요구 사항을 변경하는 것은 고객의 잘못입니다.

로버트 마틴

초보자는 하향식 프로그래밍을 가르 칠 수 없습니다. 왜냐하면 어느 쪽이 끝났는지 모르기 때문입니다.

토니 호어

요령은 원하는 문제가 아닌 문제를 해결하는 것입니다.

브람 코헨

객체 지향 프로그래밍 언어는 캡슐화를 지원하므로 소프트웨어의 재사용, 정제, 테스트, 유지 관리 및 확장 기능이 향상됩니다. 이 지원의 모든 이점은 디자인 프로세스 중에 캡슐화가 최대화 된 경우에만 실현 될 수 있습니다.

레베카 워프 스-브록

코드 냄새 28 — 세터

소프트웨어 팀의 가장 큰 문제는 모든 사람이 다른 사람이하는 일을 이해하도록하는 것입니다. -

마틴 P. 파울러

컴퓨팅의 목적은 숫자가 아니라 통찰력입니다.

리처드 해밍

과학은 우리가 컴퓨터에 설명 할만큼 충분히 이해하는 것입니다. 예술은 우리가하는 모든 것입니다.

도널드 크 누스

구현이 너무 쉽기 때문에 null 참조를 입력하려는 유혹에 저항 할 수 없었습니다. 이로 인해 수많은 오류, 취약성 및 시스템 충돌이 발생하여 지난 40 년 동안 수십억 달러의 고통과 피해를 입혔을 것입니다.

토니 호어

코드 냄새 12-Null

계약없이 클래스를 작성하는 것은 사양없이 엔지니어링 구성 요소 (전기 회로, VLSI (Very Large Scale Integration) 칩, 브리지, 엔진…)를 생성하는 것과 유사합니다. 어떤 전문 엔지니어도이 아이디어를 고려하지 않습니다.

버트 랜드 마이어

프로그래밍은 타이핑에 관한 것이 아니라 생각에 관한 것입니다.

리치 히키

임시 해킹보다 더 영구적 인 것은 없습니다.

카일 심슨

코드 냄새 27 — 연관 배열

아키텍처는 결합과 응집 사이의 긴장입니다.

닐 포드

코드 냄새 16 — 파급 효과

검사해야 할 곳을 아는 기술과 실수를했을 때 프로그램이 빨리 실패하는지 확인하는 기술이 있습니다. 그런 종류의 선택은 단순화 기술의 일부입니다.

워드 커닝햄

다이어그램은 모델이 아닙니다. 모델은 다이어그램이 아닙니다. 그것은 추상화, 개념 및 그들 사이의 관계 집합입니다.

에릭 에반스

누군가가 완벽한 프로그래밍 언어를 가지고 있다고 주장한다면 그는 바보이거나 세일즈맨이거나 둘 다입니다.

비얀 스트 로스트 럽

소프트웨어 엔티티 (클래스, 모듈, 함수 등)는 확장을 위해 열려 있어야하지만 수정을 위해 닫혀 있어야합니다.

버트 랜드 마이어

조기 최적화는 모든 악의 근원입니다

도널드 크 누스

코드 냄새 20 — 조기 최적화

객체 지향 프로그래밍은 이러한 복잡성을 관리하여 이러한 메트릭의 가치를 높입니다. 복잡성을 처리하는 데 사용할 수있는 가장 효과적인 도구는 추상화입니다. 여러 유형의 추상화를 사용할 수 있지만 캡슐화는 객체 지향 프로그래밍에서 복잡성을 관리하는 주요 추상화 형식입니다.

레베카 워프 스-브록

코드 냄새 21 — 익명 함수 남용자

유형은 본질적으로 프로그램에 대한 주장입니다. 그리고 유형이 무엇인지 말하지 않는 것을 포함하여 가능한 한 절대적으로 단순하게하는 것이 중요하다고 생각합니다.

다니엘 잉걸스

저는 훌륭한 프로그래머가 아닙니다. 나는 단지 좋은 습관을 가진 좋은 프로그래머입니다.

켄트 벡

컴퓨터 과학의 모든 문제는 다른 수준의 간접적 인 방법으로 해결할 수 있습니다.

데이비드 휠러

나는 생물학에 대해 할 수있는 것처럼 컴퓨터 과학에 대해 확신 할 수 없습니다. 생물학은 500 년의 흥미로운 문제를 쉽게 해결할 수 있습니다. 그 수준입니다

도널드 크 누스

최상의 성능 향상은 비 작동 상태에서 작동 상태로의 전환입니다.

J. Osterhout

나는 생물학에 대해 할 수있는 것처럼 컴퓨터 과학에 대해 확신 할 수 없습니다. 생물학은 500 년의 흥미로운 문제를 쉽게 해결할 수 있습니다. 그 수준입니다

도널드 크 누스

개발자는 나방과 같은 복잡성에 끌 리며 종종 동일한 결과를 얻습니다.

닐 포드

코드의 처음 90 %는 개발 시간의 처음 90 %를 차지합니다. 코드의 나머지 10 %는 개발 시간의 나머지 90 %를 차지합니다.

톰 카길

컴퓨터 과학은 천문학이 망원경이 아닌 것처럼 기계에 관한 것이 아닙니다. 수학과 컴퓨터 과학의 본질적인 통일성이 있습니다

Michael R. Fellows

컴퓨터를 사용하면 권총과 테킬라를 제외하고는 다른 발명품보다 더 많은 실수를 할 수 있습니다.

미치 래트 클리프

Unsplash에 Shahadat Rahman의 사진

프로그래밍 언어들

많은 사람들이 프로그래밍 스타일과 종교와 같은 언어를 보는 경향이 있습니다. 하나에 속하면 다른 사람에게 속할 수 없습니다. 그러나이 비유는 또 다른 오류입니다.

니클라우스 워스

“멋지다”고 선포 된 언어보다“나쁘다”고 비난하는 언어로 더 좋은 코드가 작성되었습니다.

비얀 스트 로스트 럽

썬 마이크로 시스템즈는 자바를 일류 언어로 만들 수있는 적임자들을 가지고 있었고, 그것이 나오기 전에 서두르는 것은 썬 마케팅 사람들이라고 믿습니다.

앨런 케이

사람들이 불평하는 언어와 아무도 사용하지 않는 언어라는 두 종류의 언어 만 있습니다.

비얀 스트 로스트 럽

Unsplash에서 You X Ventures의 사진

기획 / 관리

기능을 추가하는 데 드는 비용은 단순히 코딩하는 데 걸리는 시간이 아닙니다. 비용에는 향후 확장에 대한 장애물 추가도 포함됩니다. 비결은 서로 싸우지 않는 기능을 선택하는 것입니다.

존 카맥

아인슈타인은 하나님이 변덕 스럽거나 자의적이지 않기 때문에 자연에 대한 간단한 설명이 있어야한다고 반복해서 주장했습니다. 그러한 믿음은 소프트웨어 엔지니어를 위로하지 않습니다.

프레드 브룩스

은색 총알 없음

하드웨어를 대량 생산할 수 있습니다. 소프트웨어를 대량 생산할 수 없습니다. 인간의 마음을 대량 생산할 수 없습니다.

미치오 카쿠

전혀하지 말아야 할 일을 효율적으로하는 것만 큼 쓸모없는 일은 없습니다.

피터 드러커

시스템을 설계하는 모든 조직 (광범위하게 정의 됨)은 조직의 커뮤니케이션 구조를 복사 한 구조를 가진 설계를 생성합니다.

멜빈 콘웨이

분리 된 스크럼 마스터에 대한 스크럼 아이디어는 스크럼에 적합하지만 대부분의 프로젝트에는 적합하지 않습니다. 좋은 개발에는 화자뿐만 아니라 행동자가 필요합니다.

버트 랜드 마이어

낙관주의는 프로그래밍의 직업적 위험입니다. 피드백은 치료입니다.

켄트 벡

Unsplash의 Bench Accounting 사진

깨끗한 코드

항상 코드를 유지하는 사람이 당신이 사는 곳을 아는 폭력적인 사이코 패스 인 것처럼 코딩하세요.

존 우즈

모든 바보는 컴퓨터가 이해할 수있는 코드를 작성할 수 있습니다. 좋은 프로그래머는 인간이 이해할 수있는 코드를 작성합니다.

마틴 파울러

코드를 수정 한 경험을 생각해 보면 새 코드를 작성하는 것보다 기존 코드를 읽는 데 훨씬 더 많은 시간을 소비하는 것을 알 수 있습니다. 따라서 코드를 저렴하게 만들고 싶다면 읽기 쉽게 만들어야합니다.

켄트 벡

프로그램은 사람이 읽을 수 있으며 컴퓨터가 실행될 수 있도록 우연히 만 읽을 수 있습니다.

도널드 크 누스

Code Smell 03 — 함수가 너무 깁니다

규칙에 대한 예외가 새로운 규칙을 만든다고 믿기 때문에 당신은 파멸에 빠질 것입니다.

피어스 브라운

코드 냄새 26 — 예외 오염

읽기 (코드)와 쓰기에 소요되는 시간의 비율은 10 대 1을 훨씬 넘습니다. (따라서) 읽기 쉽고 쓰기가 쉽습니다.

로버트 마틴

프로그래밍 언어는 프로그램이 관련없는 것에주의를 기울여야 할 때 낮은 수준입니다.

앨런 펄리스

삭제 된 코드는 디버그 된 코드입니다.

제프 시켈

우리가 이해할 수있는 유일한 사람인 것처럼 소프트웨어를 작성하는 것은 할 수있는 가장 큰 실수이자 잘못된 가정 중 하나입니다.

캐롤리나 슈 추르

단순함은 효율성의 핵심입니다.

오스틴 프리먼

코드 냄새 29 — 설정 / 구성

댓글을 쓸 때마다 얼굴을 찡그리고 표현 능력의 실패를 느껴야합니다.

로버트 마틴

프로토 타입의 가치는 코드 자체가 아니라 교육에 있습니다.

앨런 쿠퍼

어떤 사람들은 문제에 직면했을 때“알아요. 정규 표현식을 사용할 것입니다.”라고 생각합니다. 이제 두 가지 문제가 있습니다.

제이미 자윈 스키

프로그램을 단순하게 만드는 것은 언어가 아닙니다. 언어를 단순하게 보이게하는 것은 프로그래머입니다.

로버트 마틴

코드 조각을보고 그것이 무엇을하는지 알아 내기 위해 노력해야한다면, 그것을 함수로 추출하고 무엇을 따라 함수의 이름을 지정해야합니다.

마틴 파울러

디버깅은 처음에 코드를 작성하는 것보다 두 배 더 어렵습니다. 따라서 코드를 가능한 한 영리하게 작성하면 정의상 코드를 디버깅 할만큼 똑똑하지 않은 것입니다.

브라이언 케르 니간

프로그램을 단순하게 만드는 것은 언어가 아닙니다. 언어를 간단하게 보이게하는 것은 프로그래머입니다!

로버트 마틴

코드 냄새 24 — 부울 강제

프로그래밍은 재미있을 수 있으므로 암호화도 할 수 있습니다. 그러나 그들은 결합되어서는 안됩니다.

Kreitzberg & Shneiderman.

Code Smell 06 — 너무 영리한 프로그래머

6 개월 이상 보지 않은 자신의 코드는 다른 사람이 작성한 것일 수도 있습니다.

이글 슨의 법칙

잘못된 코드를 주석 처리하지 말고 다시 작성하십시오.

브라이언 케르 니간

코드는 유머와 같습니다. 설명해야 할 때는 나쁘다.

코리 하우스

소프트웨어의 복잡성은 한 가지를 두 가지로 만들려고 할 때 발생합니다.

라이언 싱어

코드 냄새 34 — 너무 많은 속성

어느 날 내 딸이 들어 와서 내 어깨 너머로 Perl 4 코드를 보더니“그게 뭐야, 맹세하니?”

래리 월

설명이 포함 된 긴 이름이 짧은 수수께끼 같은 이름보다 낫습니다. 설명이 포함 된 긴 이름이 설명이 포함 된 긴 주석보다 낫습니다. -

로버트 마틴

코드 냄새 33 — 약어

토크는 싸다. 코드를 보여주세요.

리누스 토발즈

Unsplash에 Raquel Martínez의 사진

소프트웨어 품질

레거시 코드는 테스트가없는 코드입니다.

마이클 페더스

레거시 시스템을 분리하는 방법

소프트웨어 테스트는 버그의 부재를 보장 할뿐만 아니라 가치의 존재를 보장합니다.

아 미트 칼란 트리

위 코드의 버그에주의하십시오. 나는 그것이 옳다는 것을 증명했을뿐 시도하지 않았습니다. ~

도널드 크 누스

누군가는 검증 된 프로그램이 있고 검증 자에 따라 사양을 충족했기 때문에 검증되었다고 말할 것입니다. 그러나 검증자는 버그가있을 수 있습니다. 사양에 버그가있을 수 있습니다.

도널드 크 누스

베타 테스트는 약한 테스트 관행과 고객과의 잘못된 의사 소통의 증상입니다.

켄트 벡

예상치 못한 것을 발견하는 것이 알려진 것을 확인하는 것보다 더 중요합니다.

조지 EP 박스

훌륭한 제품을 구축하는 열쇠는 먼저 훌륭한 팀을 구축하는 것입니다. 나에게 훌륭한 팀은 역할에 얽매이지 않고 앞으로 나아감에 따라 움직입니다.

앨런 페이지

살충제 역설. 버그를 예방하거나 찾기 위해 사용하는 모든 방법은 그 방법이 효과가없는 미묘한 버그의 잔재를 남깁니다.

보리스 베이 저

코드 냄새 30 — 비즈니스 조롱

나는 주로 전제 조건의 관점에서 생각하고 생성자와 함수의 시작 부분을 확인합니다.

브래드 피츠 패트릭

개발자 테스트는 책임을 향한 중요한 단계입니다. 개발자가 생산하는 소프트웨어의 품질을 입증 할 수있는 방법을 제공합니다.

켄트 벡

트레이너 또는 컨설턴트의 역할은 자신을 필수 불가결하게 만드는 것이 아니라 고객에게 권한을 부여하는 것입니다.

버트 랜드 마이어

정확성은 분명히 최고의 품질입니다. 시스템이해야 할 일을 수행하지 않으면 그 밖의 모든 것이 중요하지 않습니다.

버트 랜드 마이어

품질은 무료이지만 비용을 많이 지불하려는 사람들에게만 해당됩니다.

DeMarco 및 Lister

테스트 모음보다 시스템을 더 유연하게 만드는 것은 없습니다.

로버트 마틴

테스트를 통해 코드의 동작을 빠르고 검증 가능하게 변경할 수 있습니다.

그것들이 없으면 우리는 코드가 더 좋아지고 나빠지는지 정말 알 수 없습니다.”

마이클 페더스

레거시 시스템에서 테스트 주도 개발을 짜내는 방법

오류없는 프로그램을 작성하는 방법에는 두 가지가 있습니다. 세 번째 만 작동합니다.

앨런 J. 펄리스

일반적으로 소프트웨어 시스템은 실제 응용 프로그램에서 사용되고 반복적으로 실패 할 때까지 제대로 작동하지 않습니다.

데이비드 파르 나스

테스트가 더 구체적 일수록 코드는 더 일반화됩니다.

로버트 마틴

Unsplash에 Kelvyn Ornettte Sol Marte의 사진

리팩토링

코드가 무엇을하는지 이해하려고 생각할 때마다 코드를 리팩토링하여 이해가 더 명확해질 수 있는지 스스로에게 묻습니다.

마틴 파울러

Unsplash에 대한 국립 암 연구소의 사진

객체 지향

객체 지향 설계가 기존의 구조화 된 설계 접근 방식과 근본적으로 다르다는 것은 의심의 여지가 없습니다. 분해에 대해 다양한 사고 방식이 필요하며 구조화 된 설계 문화의 영역을 크게 벗어나는 소프트웨어 아키텍처를 생성합니다.

그 레이디 부치

저는 '객체 지향'이라는 용어를 발명했는데 C ++는 제가 염두에 둔 것이 아닙니다.

앨런 케이

이 기사 시리즈의 목적 중 일부는 소프트웨어 설계에 대한 토론과 토론을위한 공간을 만드는 것입니다.

개체 디자인 체크리스트

이 기사에 대한 의견과 제안을 기대합니다.

이 기사는 여기 에서 스페인어로도 볼 수 있습니다 .

Twitter의 원본 스레드

Suggested posts

N + 1 문제 선택

모든 것은 비용이 있습니다.

N + 1 문제 선택

개발자의 경우 ORM (Object-relational mapping)을 사용하면 삶을 상당히 단순화 할 수 있지만 알아야 할 자체 캐치 세트가 있습니다. 더 심각한 문제 중 하나는 Select N + 1 문제입니다.

Vue 3 및 JavaScript로 날씨 앱 만들기

Vue 3 및 JavaScript로 날씨 앱 만들기

Vue 3는 프런트 엔드 앱을 만들 수있는 사용하기 쉬운 Vue JavaScript 프레임 워크의 최신 버전입니다. 이 기사에서는 Vue 3 및 JavaScript로 날씨 앱을 만드는 방법을 살펴 보겠습니다.

Related posts

"실용적인 프로그래머"의 5 가지 필수 사항

역대 베스트셀러 코딩 북의 요점

"실용적인 프로그래머"의 5 가지 필수 사항

Pragmatic Programmer는 1999 년에 처음 출판되었으며 이후 역대 최고의 프로그래밍 책으로 선정되었습니다. 저자 Andy Hunt와 David Thomas는 Agile Manifesto의 원저자 중 하나였으며 몇 가지 심각한 자격을 가지고 있습니다.

대규모 GraphQL 쿼리 공격으로부터 보호

공격자가 공개적으로 사용 가능한 GraphQL 인터페이스를 사용하여 사이트를 스크랩하거나 서비스 거부 공격을 실행하는 방법에 대해 알아보십시오. 이들은 4 가지 방법 중 하나로이를 수행 할 수 있습니다. 단일 대형 쿼리를 신중하게 구성하여 실행하고, 관련 데이터를 가져올 수있는 병렬 쿼리를 많이 작성하고, 일괄 요청을 사용하여 많은 쿼리를 연속적으로 실행하고, 마지막으로 많은 요청을 보냅니다.

기술 인터뷰의 사회적 구성 요소

코딩 문제는 스트레스가 많지만 스트레스에 대한 당신의 반응은 당신의 기술적 능력보다 더 크게 말합니다.

기술 인터뷰의 사회적 구성 요소

기술 업계의 직책을 위해 인터뷰 할 때 일반적으로 제안을 고려하기 전에 최소한 3 차례의 인터뷰를 거치게됩니다. 라운드는 일반적으로 다음과 같습니다. 그렇게 생각하면 잘못된 것입니다.

훌륭한 개발자의 3 가지 행동 특성

훌륭한 개발자의 3 가지 행동 특성

훌륭한 개발자를 만드는 비 기술적 인 것들 나는이 기사를 작성하는 것을 한동안 미루고 있습니다. 나는 그것을 작성할 자격이 있다고 생각하지 못했습니다. 오늘은 쓸 때라고 생각했습니다.