태그 보관물: unix

unix

Windows 프로그래밍 철학이 있습니까? [닫은] 작성하십시오. 범용 인터페이스이므로 텍스트 스트림을 처리하는 프로그램을

유닉스 환경과 Windows 환경 모두에서 프로그래밍했습니다. 대부분 내가 배운 유닉스에서 근무했습니다 유닉스 철학을 요약하면,

  • 한 가지 일을 잘 수행하는 프로그램을 작성하십시오.
  • 함께 일할 프로그램을 작성하십시오.
  • 범용 인터페이스이므로 텍스트 스트림을 처리하는 프로그램을 작성하십시오.

예를 들어 Unix와 Windows 환경 사이의 프로그래밍 문화에는 분명한 차이가있는 것 같습니다.

  • GUI 대 CLI
  • 레지스트리 대 구성 파일
  • 특정 요구에 특화된 많은 도구와 결합 할 수있는 일반 직교 도구 그룹

Windows 세계에서 “Unix 철학”에 해당합니까? Windows에서 프로그래밍 할 수 있거나 Windows에서 프로그래밍으로 이동할 때 알아야 할 Unix 프로그래머는 무엇입니까?

Windows 프로그래밍의 모범 사례에 초점을 맞추고 Windows와 Unix 간의 싸움이 아닌 답변을 원합니다.



답변

실제로 “Windows 철학”과 같은 것이 있습니다. 대부분 컴포지션 개념과 사용자 인터페이스 부분-다른 프로그래머가 아닌 사용자를위한 디자인 프로그램에 관한 것입니다.

그 의미는:

  • 간단하고 직관적 인 사용자 인터페이스
  • 자연스러운 워크 플로우
  • 상자 밖으로 작동해야합니다
  • 필요하지 않은 곳에서는 기술 지식이 필요하지 않습니다.

다음은 좋은 읽을 거리입니다 :

이문화

Windows가 확산되면서 코딩에 대한 해커의 접근 방식이 바람직하지 않게되었습니다. 먼저 C / C ++ 프로그램을 가장 복잡하고 난독 한 방식으로 작성하여 가장 어려운 두뇌 만 통과 의례로 이해할 수있었습니다. Windows에서 상황이 바뀌기 시작했고 이제 “코드 스타일”이 크게 바람직하지 않습니다. 직접적인 Windows가 코드 품질에 대한 새로운 수준의 이해에 영향을 미치는지 확실하지 않지만 적어도 적시에 일치합니다.


답변

귀하의 질문에서 당신이 좋아하는 차이점은 개발자의 프로그래밍 스타일보다 이러한 시스템의 사용자에 관한 것입니다. * nix는 오랫동안 프로그래머 나 컴퓨팅 애호가의 분야였습니다. “캐주얼”사용 방식은 거의 없었습니다. Windows가 [홈] 사용자 수를 더 크게 차지하는 곳.

일반 사용자는 프로그램을 실행하기 위해 수십 가지 명령 줄 플래그를 기억하고 싶지 않습니다. 그들은 버튼을 클릭하고 싶습니다.

일반 사용자는 시스템 구성 파일이나 Fluffy Kitties가 자신이 좋아하는 고양이 품종을 기억하는 방식에 대해 걱정하고 싶지 않습니다.

일반 사용자는 일반적으로 “더 나은”제품을 사용할 수 있더라도 원하는대로 원하는 것을 사용합니다.

내 주요 요점은 다음과 같습니다. Windows는 제작자가 아닌 사용자 를위한 것 입니다. Windows 개발에 존재하는 오랜 패러다임에 대항하지 마십시오. 사용자에게 내 문서를 쓰레기로 오염 시키거나 이유없이 자신을 시작에 삽입하지 마십시오.

아마도 비슷한 중요성이있을 수도 있습니다 : 사용자 문서 작성.


답변

Raymond Chen의 블로그 인 The Old New Thing같은 이름의 책 은 기본 Windows 프로그래밍의 철학, 역사 및 모범 사례에 대한 훌륭한 통찰력을 제공합니다.


답변

타협 및 사용자 정의

그것은 최선의 방법은 아니지만, 시간을내어 어떤 곳에서 타당한 결정을 내릴 수 없다면 할 수없는 일이 거의 없습니다. 현재하고있는 작업이 마음에 들지 않으면 변경할 수 있습니다. 편도 또는 항상 최선의 방법이있는 곳은 거의 없습니다.

사용자가 시작하기에 충분

기본적으로 놀라운 것은 거의 없지만 대부분 사용할 수 있습니다. 유닉스는 구성 할 때까지 아무것도 작동하지 않는 경향이 있으며 Apple은 모든 것을 정교하게 만들지 만 약간의 구성 / 유연성을 희생합니다.

로그 지원 테일 예상

최신 버전이 있기 때문에 Windows 사용자는 업그레이드하지 않습니다. 취약점이나 버그 수정으로 인해 항상 업그레이드되는 것은 아닙니다. Windows 사용자는 종종 업그레이드를 강요해야하지만 빠르게 업그레이드하도록 강요하면 대체 제품을 찾습니다.

사용자는 광범위한 기술 수준을 가지고 있습니다

유닉스는 일반 가정 사용자의 관점에서 기술 수준에서 진입하는 데있어 높은 장벽을 가지고있다. 애플은 요구되는 기술 수준이 매우 낮았지만, 일반 사용자가 OS를 커스터마이징하는 방식으로 많은 일을하도록 권장하지는 않습니다. 창문 사이에 있습니다. Apple 제품보다 사용을 시작하는 것이 약간 어렵지만, 설치 자체에서 일부 심도 깊은 시스템 구성을 변경하는 방법에 대한 간단한 정보가 많이 있습니다. 이것은 사용자의 중간 단계에서 다소 임의의 기술 수준으로 이어집니다. 왜냐하면 그들이 무언가를 시도하기에 충분히 자신감이 있다면 그것을 수행하는 방법을 알아낼 수있는 좋은 기회가 있기 때문입니다. 또한 어떤 경우에는 경험이 없어도 더 소심한 사용자를 남겨두고 내 일이 잘못되었다는 경고에주의를 기울입니다.


답변

Windows는 애플리케이션 개발을 안내 하기 위해 IBM의 공통 사용자 액세스 (CUA) 표준 을 명시 적으로 지원하도록 구축되었습니다 .

물론 이것은 사용자를 위해 Mac과 같은 경험을 만들려는 시도였습니다.


답변

오래전의 유닉스는 프로그래머와 그런 사람들을위한 것이었고 창은 항상 bash 스크립트를 작성하는 방법을 모르는 사용자를위한 것이 었습니다. 따라서 Windows에서는 사용자를 염두에 두어야합니다. 즉, 사용자가 함께 작동하도록 몇 개의 프로그램을 구성 할 것인지 걱정할 필요가없는 모든 작업에 대해 하나의 도구를 만듭니다.


답변

이것이 철학인지는 확실하지 않지만 IMHO는 Windows 프로그래밍과 관련하여 일종의 생각의 밀도가 있습니다. 일이 때때로 어떻게 작동하는지에 대한 놀라움도 있습니다.

Windows 개발을 수용하고 가정에 약간 더주의를 기울이는 경우 인내심을 권장합니다.