Windows 프로그래밍 철학이 있습니까? [닫은]


30

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

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

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

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

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

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


15
알고 있어야합니까? "것들은 빨라지고, 나빠질 것이다."
Orbling

3
철학이 없다는 단 하나의 철학. ;)
Mudassir 2018

6
실제로 Powershell은 Unix 철학의 일부를 Windows로 가져 왔습니다. 특히 한 가지 작업 만 수행하는 작은 프로그램 (실제로는 Powershell의 cmdlet)을 작성하고 다른 작업을 수행하는 다른 cmdlet과 결합합니다. 물론 대부분의 일반 사용자는 여전히 Powershell 사용 방법을 모르지만 이러한 종류의 소프트웨어는 작성중인 소프트웨어의 종류에 따라 다릅니다.
JohnL

4
우리는 세 번째로 올바르게 얻을 것입니다.
aufather

7
Windows의 철학은 Microsoft에 수익을 가져 오는 것입니다.
dan04

답변:


28

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

그 의미는:

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

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

이문화

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


7
이 글 머리 기호 중 어느 것도 Windows에 특히 잘 적용되지 않는다고 생각합니다.
Tom Hawtin-tackline

4
@Tom : 그것은 철학입니다. 아무것도 적용 할 필요가 없습니다. 그럼에도 불구하고, 나는 그것이 Windows 세계의 대부분의 것들에 아주 잘 적용된다고 생각합니다.
Allon Guralnek

@Tom 나는 OP의 질문이 더 많은 콘솔 대 GUI 프로그래밍 인 것처럼 보이기 때문에 @Allon에 더 동의합니다.
기드온

6
뭐?!? 오래된 BSD와 AT & T 소스를 살펴보십시오. 깨끗하고 간단하며 우아합니다. 그리고 나는 전형적인 bloated MFC 코드보다 더 난독 화 된 것을 본 적이 없습니다.
SK-logic

단 하나의 정답은 없지만 터무니없는 것이 좋습니다. Joel의 블로그 게시물은 훌륭했습니다.
Maglob

8

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

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

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

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

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

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


7
사용자 문서? 성공적인 프로그램 사용자는 문서를 만질 필요가 없습니다.

@Developer Art-이것은 사실이지만, 다양한 국적의 사람들이 이해해야 할 입자 물리학을위한 소프트웨어를 작성할 때 "데이터를 어떻게 처리하는지에 대한 설명을 보려면 여기를 클릭하십시오" ""텔레파시 컴퓨터를 작성하는 것보다 쉬운 경우에는 사용자의 생각을 마음에서 추출 할 수 있습니다.
TZHX

3
"쓰레기로 사용자를 오염시키지 마십시오." -상당히 아이러니합니다.
ocodo

1
어떻게합니까, Slomojo?
TZHX 2019


4

타협 및 사용자 정의

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

사용자가 시작하기에 충분

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

로그 지원 테일 예상

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

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

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



2

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


1

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

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

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