Bir Windows programlama felsefesi var mı? [kapalı]


30

Hem Unix hem de Windows ortamlarında programlama yapıyorum. Çoğunlukla ben öğrendim Unix, içinde çalıştık Unix Felsefesi olarak özetlenebilir,

  • Bir şey yapan programları yaz ve iyi yap.
  • Birlikte çalışmak için programlar yazın.
  • Metin akışlarını işlemek için programlar yazın, çünkü bu evrensel bir arayüzdür.

Programlama kültürlerinde Unix ve Windows dünyaları arasında belirgin bir fark olduğu görülüyor, örneğin:

  • GUI vs CLI
  • Registry vs config dosyaları
  • Herhangi bir ihtiyaç için uzmanlaşmış birçok araçla bir araya getirilen genel ortogonal araçlarla birlikte

Windows dünyasında "Unix felsefesi" ne eşdeğer var mı? Hangi Unix programcısı Windows'tan öğrenebilir veya Windows'ta programlamaya geçerken nelere dikkat etmeli?

Cevapları Windows programlamanın en iyi uygulamalarına odaklanmak isterim (Windows ile Unix arasında bir kavga değil).


15
Ya karşı dikkatli olunmalı? "İşler berbat olacak, kötü emecek."
Orbling

3
Sadece bir felsefe, hiçbir felsefe yoktur. ;)
Mudassir

6
Aslında Powershell, Unix felsefesinin bazılarını Windows'a getirdi, özellikle sadece bir şeyi yapan küçük programlar (Powershell'deki cmdlet'ler) yazdı ve başka şeyler yapan diğer cmdlet'lerle birleştirdi. Tabii ki, çoğu sıradan kullanıcı Powershell'i nasıl kullanacağını hala bilmiyor ama bu ne tür bir yazılım yazdığınıza bağlı.
JohnL

4
Üçüncü sefer doğru yapacağız.
aufather

7
Windows'un felsefesi, Microsoft'a gelir getirmektir.
dan04

Yanıtlar:


28

Aslında "Windows felsefesi" gibi bir şey var. Çoğunlukla kompozisyon kavramı ve kullanıcı arayüzü bölümü ile ilgilidir - diğer programcılar için değil kullanıcılar için tasarım programları.

Bunun anlamı:

  • Basit ve sezgisel kullanıcı arayüzleri
  • Doğal iş akışı
  • Kutunun dışında çalışmalı
  • Gerekli olmayan yerlerde teknik bilgi gerekli değildir

İşte güzel bir okuma:

çiftkültürlülük

Windows’un yayılmasıyla birlikte, hacker kodlama yaklaşımı keşfedilmemiş hale gelmeye başladı. Öncelikle C / C ++ programlarını en karmaşık ve karışık şekilde yazıyordu, böylece sadece en zor beyinler onları bir çeşit geçit töreni olarak anlayabiliyordu. Windows altında işler değişmeye başladı ve bu "kod stili" şimdi çok beğenildi. Doğrudan Windows etkilediğinden ya da kod kalitesini anlama konusundaki yeni anlayış düzeyinden emin değil, ancak en azından zamanında çakışıyorlar.


7
Bu mermi noktalarından hiçbirisinin Windows için özellikle iyi olduğunu sanmıyorum.
Tom Hawtin -

4
@ Tom: Bu bir felsefe; hiçbir şey için geçerli olması gerekmez. Bununla birlikte, bunun Windows dünyasındaki birçok şey için çok iyi uygulandığına inanıyorum.
Allon Guralnek

@Tom @Allon ile aynı fikirdeyim çünkü bana göre OP'nin sorusu daha fazla Konsol ve GUI programlaması gibi görünüyor.
gideon

6
Ne?!? Eski BSD ve AT&T kaynaklarına bakın. Temiz, sade, şık. Ve tipik bir şişirilmiş MFC kodundan daha karışık bir şey görmedim.
SK-mantık

Tek bir doğru cevap olmasa da, bunu en çok sevdim. Joel'in blog yazısı harikaydı.
Maglob

8

Bence sorunuza eklediğiniz farklar, bu sistemlerin kullanıcıları hakkında geliştiricilerin programlama stillerinden daha fazla. Uzun süredir, * nix, programcının ya da bilgi işlem meraklılarının alanı olmuştur. "Günlük" kullanım biçiminde çok az şey vardı. Windows'un [home] kullanıcısı olduğu yerde, kullanıcı sayıları büyüklük dereceleri daha fazladır.

Sıradan kullanıcılar, bir program çalıştırmak için bir düzine farklı komut satırı bayrağını hatırlamak istemiyor. Bir düğmeye tıklamak istiyorlar.

Sıradan kullanıcılar, sistem yapılandırma dosyaları veya Fluffy Kitties'in en sevdikleri kedi cinsini nasıl hatırladıkları konusunda endişelenmek istemiyor.

Sıradan kullanıcılar genellikle "daha iyi" ürünler olsa bile istediklerini yaptıkları sürece bir şeyler kullanırlar.

Sanırım buradaki asıl amacım ... Windows, yaratıcı değil , kullanıcı için yaratma hakkında . Windows gelişiminde var olan uzun süredir devam eden paradigmalara karşı gelmeyin. Kullanıcıları Belgelerim'i zedelemeyle kirletmeyin ya da sebepsiz yere kendilerini başlangıçlarına sokmayın.

Belki de benzer bir öneme sahip: kullanıcı dokümanlarını yazınız.


7
Kullanıcı dokümantasyonu? Başarılı programların kullanıcıları hiçbir belgeye dokunmak zorunda kalmayacak.

@Geleloper Art - bu bir nokta için doğrudur, ancak sözde yazılım yazarken, çeşitli milletlerden insanlar tarafından anlaşılması gereken parçacık fiziği, “verilerinizle yaptığımızın açıklaması için buraya tıklayın” burada "kullanıcıların beklentilerini akıllarından çıkarabilecek bir telepatik bilgisayar yazmaktan daha kolay".
TZHX

3
"Kullanıcıyı pislikle kirletme." - oldukça ironik.
ocodo

1
nasıl yani Slomojo?
TZHX


4

Uzlaşma ve Özelleştirme

Hiçbir şeyde en iyisi değil, ancak zaman ayırmaya ve bazı yerlerde hoş olmayan kararlar almaya istekliyseniz, yapabileceğiniz çok az şey var. Şu anda yaptığı şeyi beğenmiyorsanız, muhtemelen değiştirebilirsiniz. Sadece tek bir yolun olduğu, hatta her zaman en iyisi olan bir yolun olduğu birkaç yer var.

Kullanıcının başlaması için yeterince iyi

Çok az şey kutunun dışında olağanüstü, ancak çoğu şey kullanılabilir. Unix, yapılandırana kadar hiçbir şeyin çalışmadığı yöne gitme eğilimindedir ve Apple her şeyi oldukça parlatır, ancak bazı yapılandırılabilirlik / esneklik pahasına.

Bir günlük desteği kuyruk bekliyoruz

Windows kullanıcıları daha yeni bir sürüm olduğu için yükseltme yapmazlar. Güvenlik açığı veya hata düzeltmesi nedeniyle her zaman yükseltme yapmazlar. Windows kullanıcılarının sık sık yükseltme yapmak zorunda kalmaları gerekir, ancak hızlı bir şekilde yükseltmeleri için zorlarsanız alternatif ürünler ararlar

Kullanıcılar çok çeşitli beceri seviyelerine sahiptir.

Unix, sıradan bir ev kullanıcısı açısından teknik bir seviyeden girmeye karşı yüksek oranda algılanan bir engeldir. Apple, algılanan bir beceri seviyesine göre çok düşük bir seviyeye sahipti, ancak sıradan kullanıcıları işletim sistemlerini kişiselleştirme yolunda pek bir şey yapmaya teşvik etmiyor. Windows arasında. Kullanmaya başlamak Apple ürünlerinden biraz daha zordur, ancak bazı kurulumlarda, oldukça ayrıntılı bir sistem konfigürasyonunun nasıl değiştirileceğine dair birçok basit bilgi mevcuttur. Bu, kullanıcıların orta kademesinde oldukça rastgele bir beceri seviyesine yol açar, çünkü bir şeyi denemek için yeterince güvenirlerse, nasıl yapılacağını çözmeleri için iyi bir şans vardır. Ayrıca, bazı durumlarda hiçbir zaman tecrübe sahibi olmayan daha çekingen kullanıcıları da terk ediyor, çünkü benim yanlış yaptığım şeylere dikkat ediyorlar.



2

UNIX uzun zaman önce programcılar ve böyle insanlar içindi ve pencereler hep bash betiği yazmayı bilmeyen kullanıcılar içindi. Bu nedenle, pencerelerde kullanıcıları önemsemelisiniz, bu, kullanıcının birlikte çalışacak birkaç programı yapılandırması için endişelenmesi gerekmeyen tüm görevler için tek bir araç yapmak anlamına gelir.


1

Bir felsefe olup olmadığından emin değilim, ancak IMHO, Windows programcılığına uygun bir tür düşünce yoğunluğu var. İşlerin bazen nasıl yürüdüğüne dair bir sürpriz de var.

Windows geliştirmeyi kabul ediyorsanız ve varsayımlarınızla ilgili biraz daha dikkatli olursanız sabır öneririm.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.