0Pricing
Go Academy · Ders

Varsayılanlar ve Doğrulama

Makul varsayılanlar belirleyin

Varsayılanlar ve Doğrulama, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Go Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Go Academy kursu toplamda 4 dersten oluşur.

Makul Varsayılanlar Belirleme

Sağlam bir oluşturucu iyi varsayılanlarla başlar, ardından seçeneklerin bunları geçersiz kılmasına izin verir. Böylece sıfır değeri tuzağından tamamen kaçınılır.

Uygulamadan Önce Başlatma

Yapılandırmayı önce varsayılanlarla oluşturun, ardından seçenekleri bunun üzerine uygulayın.

package main

import "fmt"

type Server struct {
	Port    int
	Timeout int
}
type Option func(*Server)

func WithPort(p int) Option { return func(s *Server) { s.Port = p } }

func NewServer(opts ...Option) *Server {
	s := &Server{Port: 8080, Timeout: 30}
	for _, o := range opts { o(s) }
	return s
}

func main() {
	fmt.Printf("%+v\n", *NewServer())
	fmt.Printf("%+v\n", *NewServer(WithPort(9000)))
}

Geçersiz Kılınana Kadar Varsayılanlar Kazanır

Seçenek olmadan çağırmak varsayılanları verir; bir seçenek yalnızca dokunduğu alanı değiştirir. Her iki yaklaşımın da en iyi yönleri.

Uygulama Sonrası Doğrulama

Seçenekleri uyguladıktan sonra son yapılandırmayı doğrulayın ve geçersizse bir hata döndürün. Oluşturucunun (*T, error) döndürmesini sağlayın.

package main

import (
	"errors"
	"fmt"
)

type Server struct{ Port int }
type Option func(*Server)

func WithPort(p int) Option { return func(s *Server) { s.Port = p } }

func NewServer(opts ...Option) (*Server, error) {
	s := &Server{Port: 8080}
	for _, o := range opts { o(s) }
	if s.Port < 1 || s.Port > 65535 {
		return nil, errors.New("invalid port")
	}
	return s, nil
}

func main() {
	_, err := NewServer(WithPort(99999))
	fmt.Println(err)
}

Seçeneklerin İçinde Doğrulama

Alternatif olarak seçeneklerin kendisi bir hata döndürebilir. Option türü func(*Config) error hâline gelir.

package main

import (
	"errors"
	"fmt"
)

type Server struct{ Port int }
type Option func(*Server) error

func WithPort(p int) Option {
	return func(s *Server) error {
		if p < 1 {
			return errors.New("port must be positive")
		}
		s.Port = p
		return nil
	}
}

func NewServer(opts ...Option) (*Server, error) {
	s := &Server{Port: 8080}
	for _, o := range opts {
		if err := o(s); err != nil {
			return nil, err
		}
	}
	return s, nil
}

func main() {
	_, err := NewServer(WithPort(-1))
	fmt.Println(err)
}

Hangi Doğrulama Tarzı

Ayar başına denetimler için seçeneklerin içinde doğrulama yapın; alanlar arası kurallar için uygulamadan sonra doğrulayın (örneğin TLS bir sertifika yolu gerektirir). Çoğu zaman ikisini de kullanırsınız.

Varsayılanları Belgeleme

Kullanıcıların bir seçeneği atladıklarında ne elde edeceklerini bilmeleri için her varsayılanı her zaman oluşturucunun belge açıklamasında belirtin.

Gerekli ve İsteğe Bağlı Değerler

Gerçekten gerekli değerleri konumsal parametreler olarak tutun; seçenekleri gerçekten isteğe bağlı değerler için ayırın. Gerekli verileri bir seçeneğin arkasına gizlemeyin.

package main

import "fmt"

type Client struct {
	BaseURL string
	Retries int
}
type Option func(*Client)

func WithRetries(n int) Option { return func(c *Client) { c.Retries = n } }

func NewClient(baseURL string, opts ...Option) *Client {
	c := &Client{BaseURL: baseURL, Retries: 3}
	for _, o := range opts { o(c) }
	return c
}

func main() {
	fmt.Printf("%+v\n", *NewClient("https://api"))
}

Seçenekleri Birleştirme

Yaygın yapılandırmalar için birkaç seçeneği tek bir hazır ayarda birleştirebilirsiniz.

package main

import "fmt"

type Server struct{ Port, Timeout int }
type Option func(*Server)

func WithPort(p int) Option    { return func(s *Server) { s.Port = p } }
func WithTimeout(t int) Option { return func(s *Server) { s.Timeout = t } }

func Production() Option {
	return func(s *Server) {
		WithPort(443)(s)
		WithTimeout(60)(s)
	}
}

func NewServer(opts ...Option) *Server {
	s := &Server{Port: 8080, Timeout: 30}
	for _, o := range opts { o(s) }
	return s
}

func main() {
	fmt.Printf("%+v\n", *NewServer(Production()))
}

En İyi Uygulamalar

  • Varsayılanlarla başlayın, ardından seçenekleri uygulayın
  • Alanlar arası kurallar için uygulamadan sonra doğrulayın
  • Gerekli değerleri konumsal tutun
  • Her varsayılanı belgeleyin

Eksiksiz ve Sağlam Bir API

Varsayılanları, seçenekleri ve doğrulamayı birleştirmek; esnek, güvenli, kendini açıklayan ve genişletilmesi kolay bir oluşturucu sağlar.

Hızlı Denetim

Varsayılanlar ve doğrulama bilginizi sınayın.

Özet

İşlevsel seçenekler kalıbını tamamladınız.

  • Seçenekleri uygulamadan önce varsayılanları belirleyin
  • Uygulamadan sonra veya alan başına denetimler için seçeneklerin içinde doğrulayın
  • Gerekli değerleri konumsal tutun
  • Seçenekleri hazır ayarlarda birleştirin ve varsayılanları belgeleyin

Sıkça Sorulan Sorular

“Varsayılanlar ve Doğrulama” dersi ücretsiz mi?

Evet — “Varsayılanlar ve Doğrulama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Go Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Go Academy kursu toplamda 4 dersten oluşur.

“Varsayılanlar ve Doğrulama” dersinde ne öğreneceğim?

Makul varsayılanlar belirleyin Go Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Go Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Go Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“Varsayılanlar ve Doğrulama” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Go Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Go Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Çok Sayıda Parametrenin Sorunu
  2. Seçenek İşlevleri
  3. Esnek API Oluşturma
  4. Varsayılanlar ve Doğrulama
← Go Academy Sayfasına Dön