«immutability» 태그된 질문

23
불변 객체가 좋은 경우 왜 사람들이 가변 객체를 계속 생성합니까? [닫은]
불변의 객체 ¹가 좋고 간단하고 동시 프로그래밍에서 이점을 제공하는 경우 프로그래머가 왜 가변적 인 객체를 계속 만드는가? Java 프로그래밍에 4 년의 경험이 있으며 클래스를 만든 후 사람들이 IDE에서 getter 및 setter를 생성하는 것이 가장 중요합니다 (따라서 변경 가능). 인식이 부족하거나 대부분의 시나리오에서 가변 객체를 사용하여 벗어날 수 있습니까? ¹ 불변 …

6
Java 8에 불변의 컬렉션이없는 이유는 무엇입니까?
Java 팀은 ​​Java 8의 기능적 프로그래밍에 대한 장벽을 제거하면서 엄청난 노력을 기울였습니다. 특히, java.util Collections의 변경은 변환을 매우 빠른 스트리밍 작업으로 체인화하는 데 큰 도움이됩니다. 컬렉션에 퍼스트 클래스 함수와 함수 메소드를 추가하는 일이 얼마나 좋은지 고려할 때 왜 불변 컬렉션이나 불변 컬렉션 인터페이스를 제공하지 못한 것일까 요? 기존 코드를 변경하지 …

6
불변성이 JavaScript의 성능을 저하 시킵니까?
JavaScript에서 데이터 구조를 불변으로 취급하는 경향이 최근에 보입니다. 예를 들어 객체의 단일 속성을 변경해야하는 경우 새 속성을 사용하여 완전히 새로운 객체를 만들고 기존 객체의 다른 모든 속성을 복사하여 기존 객체를 가비지 수집하는 것이 좋습니다. (어쨌든 내 이해입니다.) 내 초기 반응은 성능에 좋지 않은 것 같습니다. 그러나 Immutable.js 및 Redux.js 와 …

11
Java에서 문자열을 변경할 수없는 이유는 무엇입니까?
나는 그 이유를 이해할 수 없었다. 항상 다른 개발자와 마찬가지로 String 클래스를 사용하지만 그 값을 수정하면 새로운 String 인스턴스가 만들어집니다. Java에서 String 클래스가 불변 인 이유는 무엇입니까? StringBuffer 또는 StringBuilder와 같은 대안이 있다는 것을 알고 있습니다. 호기심 일뿐입니다.

4
인터페이스에서 "선택적 메소드"로 Java 콜렉션이 구현 된 이유는 무엇입니까?
Java 콜렉션 프레임 워크를 확장 한 첫 번째 구현 중에 콜렉션 인터페이스에 선택적으로 선언 된 메소드가 포함되어 있다는 사실에 놀랐습니다. 구현되지 않은 경우 구현자는 UnsupportedOperationExceptions를 발생시킵니다. 이것은 즉시 API 디자인 선택이 좋지 않은 것으로 나타났습니다. Joshua Bloch의 뛰어난 "Effective Java"책을 많이 읽은 후 나중에 이러한 결정에 대한 책임을진다는 사실을 알게 …

5
akka / erlang에서 액터를 사용하는 것이 좋지 않은 경우는 언제입니까?
나는 지금 매일 7-8 개월 동안 akka와 일하고있다. 시작했을 때 응용 프로그램을 작업하고 액터가 기본적으로 액터 시스템 내부에서 기본적으로 한 번만 사용되어 대부분의 객체 사이에서 통신한다는 것을 알았습니다. 그래서 나는 똑같이했습니다-x / y / z에 대한 다른 액터를 회전시킵니다. 나에게는 이것이 너무 무차별 적 일 수 있으며 필요하지 않은 곳에 …

9
동시성이 없을 때 불변성이 매우 가치가 있습니까?
스레드 안전성은 항상 불변 유형 및 특히 컬렉션을 사용하는 주요 이점으로 항상 언급되는 것처럼 보입니다. 메서드가 문자열 사전 (C #에서는 변경할 수 없음)을 수정하지 않도록하려는 상황이 있습니다. 가능한 한 많이 제한하고 싶습니다. 그러나 새 패키지 (Microsoft Immutable Collections)에 종속성을 추가하는 것이 가치가 있는지 확실하지 않습니다. 성능도 큰 문제가 아닙니다. 따라서 …

2
앨런 케이는 스몰 토크 초기 역사에서“할당”이란 무엇을 의미 했는가?
나는 스몰 토크의 초기 역사를 읽었 으며 그 의미에 대한 나의 이해에 의문을 갖게하는 "할당"에 대한 몇 가지 언급이있다. OOP는 많은 동기에서 비롯되었지만 두 가지가 중심이었습니다. 대규모는 세부 사항 숨기기와 관련된 복잡한 시스템을위한 더 나은 모듈 체계를 찾고 소규모는보다 유연한 할당 버전을 찾은 다음이를 완전히 제거하려고했습니다. ( 1960-66 년 ~ …

7
불변성과 객체 지향 프로그래밍
대부분의 OOP 언어에서 객체는 일반적으로 제한된 예외 세트 (예 : 파이썬의 튜플 및 문자열)로 변경 가능합니다. 대부분의 기능적 언어에서 데이터는 변경할 수 없습니다. 변경 가능한 객체와 변경 불가능한 객체는 모두 장점과 단점의 전체 목록을 제공합니다. 예를 들어 변경 가능하고 변경 불가능한 데이터가있는 (명시 적으로 선언 된) 스칼라와 같은 두 개념을 …

5
불변성이 다중 프로세서 프로그래밍에서 잠금의 필요성을 완전히 제거합니까?
1 부 분명히 불변성 은 다중 프로세서 프로그래밍에서 잠금의 필요성을 최소화 하지만 불필요 함만으로는 불충분 한 경우가 있습니까? 대부분의 프로그램이 실제로 무언가를해야하기 (데이터 저장소 업데이트, 보고서 생성, 예외 발생 등)하기 전에 처리를 지연하고 상태를 캡슐화 할 수있는 것 같습니다. 이러한 조치를 항상 잠금없이 수행 할 수 있습니까? 원본을 변경하는 대신 …

7
불변과 const의 차이점
나는 종종 용어를 본 적이 immutable과 const같은 의미로 사용. 그러나 내 (작은) 경험에서 두 가지는 코드에서 만드는 '계약'에서 크게 다릅니다. 불변은이 객체 가 변경 되지 않을 것이라는 계약을합니다 (예 : Python 튜플, Java 문자열). Const는이 변수 의 범위에서 수정되지 않을 것이라고 계약을 맺습니다 (예 : C / C ++ 키워드와 …

5
불변 객체에 대한 인터페이스를 선언하지 마십시오
불변 객체에 대한 인터페이스를 선언하지 마십시오 [편집] 해당 객체가 DTO (Data Transfer Object) 또는 POD (Plain Old Data)를 나타내는 경우 합리적인 지침입니까? 지금까지 변경 불가능한 봉인 클래스에 대한 인터페이스를 만들었습니다 (데이터를 변경할 수 없음). 불변성에 관심이있는 곳에서는 인터페이스를 사용하지 않도록 조심하려고 노력했습니다. 불행히도, 인터페이스가 코드에 퍼지기 시작합니다 (그리고 내가 걱정하는 …
27 c#  immutability 

8
데이터베이스 디자인에서 불변성을 선호
Joshua Bloch의 Effective Java의 항목 중 하나는 클래스가 인스턴스를 가능한 한 적게, 바람직하게는 전혀 허용하지 않아야한다는 개념입니다. 종종 개체의 데이터는 어떤 형태의 데이터베이스에 유지됩니다. 이로 인해 데이터베이스 내에서 불변성의 아이디어, 특히 더 큰 시스템 내에서 단일 엔티티를 나타내는 테이블의 아이디어를 생각하게되었습니다. 내가 최근에 실험 한 것은 이러한 객체를 나타내는 행을 …

7
연결된 노드 구조를 변경할 수없는 실용적인 방법이 있습니까?
단독 연결 목록을 작성하기로 결정하고 내부 연결 노드 구조를 변경할 수 없도록 계획했습니다. 나는 걸림돌에 부딪쳤다. 이전 add작업 에서 다음과 같은 연결된 노드가 있다고 가정 해보십시오 . 1 -> 2 -> 3 -> 4 을 추가하고 싶다고 말하십시오 5. 이렇게하려면 노드 4가 변경 불가능하므로 새 복사본을 만들어야 4하지만 해당 next필드를를 …


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