Yeni Başlayan Kılavuz: İlk Kristal Projenizi Oluşturma


Kristal yüklemek ve ilk projenizi parçaları kullanarak oluşturmak, çalıştırmak, test etmek ve oluşturmak için adım adım bir eğitim.

Birkaç basit adım izlerseniz kristalle başlamak hızlıdır. Bu kılavuzda, Crystal’i kuracak, yeni bir proje iskele, küçük bir program yazacak, testler çalıştıracak ve bir serbest bırakma yapısı üreteceksiniz.

Hızlı üretken olabilmeniz için minimal ve pratik tutacağım.

1) Crystal’i kurun

brew install crystal
  • Linux

    • Distro-spesifik talimatlar için resmi kurulum sayfasını kontrol edin: https://crystal-lang.org/install/
  • Doğrulamak

crystal --version
shards --version

Muhtemelen yakında isteyeceğiniz isteğe bağlı araçlar:

  • VS Kod Uzantısı (Crystal + LSP): https://marketplace.visualstudio.com/items?itemname=crystal-lang-tools.crystal-lang
  • Linter (Amoeba): https://marketplace.visualstudio.com/items?itemname=veelenga.crstal-ameba

2) Yeni bir proje oluşturun

Kristal Kullanımlar shards (Ruby’s Bundler gibi) Bağımlılık yönetimi ve proje iskele için.

  • Uygulama Şablonu (CLI uygulamaları ve hizmetleri için önerilir):
mkdir hello_crystal && cd hello_crystal
shards init app hello_crystal
  • Kütüphane şablonu (Shard/Gem benzeri bir paket inşa ediyorsanız):
mkdir my_lib && cd my_lib
shards init lib my_lib

Bu temel bir yapı oluşturur (bir uygulama için):

hello_crystal/
├─ shard.yml
└─ src/
   └─ hello_crystal.cr

3) İlk programınızı yazın

Açık src/hello_crystal.cr ve bir selamlama yazdırın:

# src/hello_crystal.cr
puts "Hello, Crystal!"

Çalıştır:

crystal run src/hello_crystal.cr

4) Bağımlılıkları yönetin (bunlara ihtiyacınız olduğunda)

Bağımlılık eklerseniz shard.ymlbunları şunlarla yükleyin:

shards install

İlk “merhaba dünya” için genellikle buna ihtiyacınız olmayacaktır, ancak HTTP istemcileri veya web çerçeveleri gibi kütüphaneleri çektiğinizde çok önemlidir.

5) Kodunuzu biçimlendirin

Crystal bir şekillendirme:

crystal tool format

Tüm kaynakları biçimlendirmek için proje kökünden çalıştırın.

6) Basit bir test ekleyin (Spec)

Spesifik bir dosya oluşturun:

# spec/hello_crystal_spec.cr
require "spec"
require "../src/hello_crystal"

describe "hello_crystal" do
  it "runs without raising" do
    expect { Crystal.main }.not_to raise_error
  end
end

Uygulamanız tanımlamazsa Crystal.mainbunun yerine yazdığınız bir işlevi test edebilirsiniz. Başlangıç ​​dostu bir desen için, uygulama kodunuzu bir modüle sarın:

# src/hello_crystal.cr
module HelloCrystal
  def self.greet(name : String = "Crystal")
    "Hello, #{name}!"
  end
end

puts HelloCrystal.greet

Ve test edin:

# spec/hello_crystal_spec.cr
require "spec"
require "../src/hello_crystal"

describe HelloCrystal do
  it "greets with default name" do
    HelloCrystal.greet.should eq "Hello, Crystal!"
  end

  it "greets a custom name" do
    HelloCrystal.greet("World").should eq "Hello, World!"
  end
end

Testler çalıştırın:

crystal spec
# or verbose:
crystal spec -v

7) Bir ikili oluşturun

İnşa etmenin iki ortak yolu:

crystal build --no-debug --release src/hello_crystal.cr -o bin/hello_crystal
  • Parçaları kullanmak (ne zaman çalışır shard.yml hedefleri tanımlar):
shards build --no-debug --release

İkili çalıştırın:

./bin/hello_crystal

Üretim benzeri yapılar için (katı bağımlılıklar ve geliştiriciler yok):

shards build --release --no-debug --production
crystal tool dependencies ./src/hello_crystal.cr

9) İsteğe bağlı: AMEBA ile Tüy Ticaret

Ameba, Crystal’in kod tarzı linter (Rubocop’a benzer).

brew tap crystal-ameba/ameba
brew install ameba
ameba
ameba --fix

Görsel Genel Bakış

İşte ilk projenizin basit bir akışı:

 flowchart LR
  A[Install Crystal] --> B[shards init app hello_crystal]
  B --> C[Edit src/hello_crystal.cr]
  C --> D[crystal run]
  D --> E[crystal spec]
  E --> F[crystal tool format]
  F --> G[shards build --release]
  G --> H[Run ./bin/hello_crystal]

Sırada ne var?

  • Popüler parçaları keşfedin:
    • Web çerçeveleri: Kemal (Sinatra benzeri), Lucky ve Amber (Rails benzeri)
    • LINTRE: AMEBA
    • HTTP İstemcisi: Crest
  • Bir CLI aracı, bir web hizmeti veya küçük bir kütüphane oluşturun ve bir parça olarak yayınlayın.

İlk kristal projenizi yeni oluşturdunuz, test ettiniz ve oluşturdunuz. Küçük tutun, hızlı bir şekilde yineleyin ve kristalin hızının ve ifadelerinin tadını çıkarın.



Source link