Node.js uygulamaları için Kodlama Stili Kılavuzu? [kapalı]


130

Node.js için bir (veya birkaç) kodlama stili kılavuzu var mı? Değilse, en iyi açık kaynaklı düğüm projeleri tarafından kullanılan yeni stiller nelerdir?

Python için kanonik Kodlama Stili Kılavuzu olan PEP 8'in çizgileri boyunca bir kılavuz (veya birkaç kılavuz) arıyorum . Buraya bağlanmaya değmeyen çeşitli JavaScript kılavuzları gördüm (çoğunlukla eski ve istemci tarafı JavaScript'i hedefliyordu). İlginç bir node.js stil kılavuzu buldum .

Bir kodlama stili kılavuzu veya kodlama kuralları şunları içermelidir (ancak bunlarla sınırlı değildir):

  • Kod düzeni: girinti (2 boşluk, 4 boşluk, sekme, ...), yeni satırlar, satır sonları vb.
  • Boşluk, ör. "İşlev (arg)" ve "işlev (arg)"
  • Noktalı virgül veya noktalı virgül yok, var bildirimi, ...
  • Adlandırma, ör. Do_this () ile doThis (), var_name ve varName, ...
  • node.js ve JavaScript deyimleri, örneğin == vs. ===, geri çağrının ilk argümanı bir hata nesnesidir, ...
  • Yorumlar ve belgeler
  • Tiftik denetleyicisi, birim testi çerçevesi gibi eşlik eden araçlar ...

Bu konu açıkça oldukça özneldir, ancak olgunlaşma sürecinde ortak ve yaygın olarak kabul gören bir kodlama stili oluşturmanın bir topluluğun önemli bir adımı olduğunu düşünüyorum. Ayrıca, hepsi sadece zevkle ilgili değil. Özellikle, == yerine === gibi kuralların kod kalitesi üzerinde doğrudan etkisi vardır.


Bunun gerçekten kullandığınız "çerçeveye" bağlı olduğunu tahmin ediyorum (varsa), örneğin spludo.com/source/coding-standards adresini kontrol edebilirsiniz ancak diğerleri biraz farklı yaklaşımlar
düşünebilir

4
"Herkesin iyi bir stil kılavuzları seti var mı" öznel olabilir veya olmayabilir, ancak "Ortaya çıkan tarzlar nelerdir" kesinlikle. Felix'in rehberini zaten buldunuz, elbette ki bazı yönlerine katılmıyorum (bazı durumlarda kesinlikle) ve diğer yönlerine katılıyorum. Sorun da bu. Çok, çok hızlı bir şekilde "Hayır, gördüğüm stil sekmeleri kullanır!" "Hayır, ortaya çıktığını gördüğüm tarz dört boşluk kullanıyor!" "Hayır, ortaya çıktığını gördüğüm tarz iki boşluk kullanıyor !" Tabii ki, insanların gerçekten kastettiği şey "tercih ettiğim tarz" olduğunda, "gördüğüm tarz ortaya çıkıyor" değil.
TJ Crowder

2
@TJ Croweder tarzı ben değilim görme kullandýnýz boşluk ortaya!
Raynos

+1 Harika soru. Keşke bu bağlantılara yıllar önce sahip olsaydım.
Bryan Downing

Öznel soru.
Niels Abildgaard

Yanıtlar:


120

JSLint tarafından kontrol edilen kodlama standartlarını gözden geçirirdim veya NPM (Isaac Shlueter'ın) kodlama standartlarının yazarına bakardım .

Ayrıca önemli Node.JS kodlayıcıları tarafından kullanılan stile de bakabilirsiniz:

Ben edeceğiz mayın atmak orada iyi ölçmek için;)

Düzenleme: @alienhard'dan öneriler

IMO'ya uymanız gereken birkaç altın kural vardır:

  • Asla kullanma withveyaeval
  • ===Üzerinde kullan==
  • Değişkenlerinizi daima varuygun kapsamda tanımlayın - genel kapsama geri dönmeyin
  • Bir kapatma uygulamanızı sarın (function(){})()Sunucu tarafında çalışan kod bırakmadan yanı sıra tarayıcıda planlıyorsanız
  • Geri erraramaları ilk argüman olarak almalı ve eğer kendileri bir geri aramayı argüman olarak alırlarsa, bu son olmalıdır, örn.callback(err, param1, param2, callback)

Girinti, kaşlı ayraçlar ve anahtar sözcükler arasındaki boşluk ve noktalı virgül yerleştirme, hepsi tercih meselesidir.


2
Cevap için teşekkürler. Ryan'dan neden bahsetmediğini merak ediyordum;). Ancak resmi düğüm repo wiki'sinden Google'ın JavaScript stil kılavuzunu takip ettiklerini anladım . Bunu daha önce
bilmiyordum

15

Kasabada yeni bir standart var.

Standart Stili kullanın .

js standardı tarzı


1
Bunun neden sadece 3 olumlu oyu olduğuna dair hiçbir fikrim yok ...
Luc

4
@Luc belki "noktalı virgül yok" kuralı yüzünden. "Standart" stil denen bir şey için garip bir seçim gibi görünüyor.
Daniel Yankowsky

Noktalı virgül kullanmak iyi bir fikir değildir. Biraz küçültmeyi kıracak.
denov

Bu standardpaket noktalı virgülden hoşlanmaz. Noktalı virgül gibi olan var ise semistandard
yesnik

10

İstemci tarafına yönelik JavaScript kılavuzlarından birçok iyi kodlama stili uygulaması öğrenebilirsiniz (bunların çoğu genel olarak node.js için de geçerlidir çünkü istemci ve sunucu tarafı arasındaki fark çoğunlukla kitaplıklardadır ve dilin kendisinde değildir). Örneğin JavaScript Modelleri kitabı bu konuya Bölüm 2'nin bazı kısımlarını ayırmaktadır . Ayrıca Douglas Crockford'un web sitesi , kitabı ve videoları JavaScript'e özgü kodlama stillerini ve en iyi uygulamaları benimsemek için mutlaka görülmesi gereken malzemelerdir.


3
Douglas Crockford'un "JavaScript: The Good Parts" kitabına +1. Özlü / küçük bir kitapta çok fazla bilgi var - çok okunmuş, ama okuduğum en iyi kitaplardan biri.
Alex KeySmith

7

Terminalden düğüm kullanırken, kaynak kodunuzun girinti için boşluklar kullanması yararlıdır. Aksi takdirde, "burada hata" imleci sıralanmaz.

Sekmelerle:

        var preps = files.map(function(f) { 
            ^
TypeError: Cannot call method 'map' of null

Boşluklarla:

        var preps = files.map(function(f) { 
                          ^
TypeError: Cannot call method 'map' of null

Bu yalnızca Mac'te bir sorun olabilir, ancak şüphelenmem.


OP bir stil rehberi istedi. Belirli bir ipucu değil.
mightyiam

@mightyiam Doğru, ancak girinti kuralları neredeyse her stil kılavuzunun bir parçasıdır. Belki benim açımdan, OP'nin başkalarının bağlayacağı stil kılavuzlarından bazılarını değerlendirmesine yardımcı olabilir veya kendi stil kılavuzunu geliştirmesine yardımcı olabilirim.
Daniel Yankowsky



2

Coffee-Script için, kötü girintilerin derleme hataları anlamına geldiği

kullanım

:set tabstop=2
:set shiftwidth=2
:set expandtab

popüler kahve projeleri, zombie, brunchçentikler için bu düzenleme kullanılmıştır.

Düzenle:

Aslında, bunu kullan! https://github.com/paulmillr/code-style-guides (ana katkıda bulunanlardan biri brunch)

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.