Ana içeriğe atla

Great Expectations Eğitimi: Python ile Verileri Doğrulama

Bu uçtan uca eğitimle Python'da Great Expectations kullanarak verilerinizi nasıl doğrulayacağınızı öğrenin!
Güncel 22 Tem 2026  · 8 dk. oku

Yapay Zekâyla Keşfet

ChatGPT'de açClaude'da açPerplexity'de aç

Veri kalitesi ve tutarlılık bir evin temeli gibidir—sağlam bir temel olmadan, üzerine inşa edilen her şeyin çökme riski vardır. İşte burada veri doğrulama önemli bir rol oynar. Veri doğrulama, verilerinizin doğru, tutarlı ve güvenilir olmasını sağlamanıza yardımcı olur.

Great Expectations, veri sorunlarını erken aşamada belirlemenizi sağlayan ve verilerinizin gerekli kalite standartlarını karşıladığından emin olan, açık kaynaklı bir veri doğrulama aracıdır.

Bu rehberde, Great Expectations'ı veri doğrulama için nasıl kullanacağınızı adım adım ele alacağız ve başlamanıza yardımcı olacak pratik bir uçtan uca örnek sunacağız!

Great Expectations nedir?

Great Expectations (GX), modern veri hatlarında veri doğrulamayı yönetmek ve otomatikleştirmek için popüler hale gelmiş açık kaynaklı bir çerçevedir.

Python tabanlı bu çerçeve, veri ekiplerinin verilerinin kalitesini ve tutarlılığını güvence altına almasına yardımcı olacak şekilde tasarlanmıştır. Kullanıcılar, geçerli verilerin nasıl görünmesi gerektiğini tanımlayan kurallar veya testler olan "beklentiler" tanımlayabilir ve bu kurallar, verilerin bu standartları karşılayıp karşılamadığını otomatik olarak doğrular.

Great Expectations'ın bazı faydaları şunlardır:

  • Otomatik veri doğrulama – Great Expectations, veri doğrulama sürecini otomatikleştirerek manuel çabayı azaltır ve hata riskini en aza indirir. Verilerin önceden tanımlanmış standartları tutarlı şekilde karşılamasını sağlar.
  • Veri hatlarıyla entegrasyon – Çeşitli veri kaynakları ve platformlarla, SQL veritabanlarıs, bulut depolama ve ETL araçları ile kolayca entegre olur; bu da veri doğrulamanın hattınızın farklı aşamalarında yapılmasına olanak tanır.
  • Açık ve eyleme dönük doğrulama sonuçları – Araç, veri kalitesi sorunlarını kolayca fark edip hızlıca ele almanızı sağlayan şeffaf doğrulama sonuçları sunar.
  • Veri dokümantasyonu – Great Expectations, veri doğrulama süreçlerinizin ayrıntılı ve erişilebilir dokümantasyonunu üretebilir; bu da ekiplerin kalite standartlarında hizalanmasına yardımcı olur ve gelecekte başvurulacak bir referans sağlar.
  • Ölçeklenebilirlik ve esneklik – Açık kaynaklı bir araç olarak Great Expectations yüksek derecede özelleştirilebilir ve veri doğrulama ihtiyaçlarınızla birlikte ölçeklenebilir; yüksek maliyetler olmadan çeşitli kullanım senaryolarına uyum sağlama esnekliği sunar.

Şimdi uçtan uca bir örneğe bakalım!

Great Expectations'ın Kurulumu

Bu eğitimde, bir Pandas DataFrame'ini doğrulamak için Great Expectations'ın açık kaynak sürümü olan GX Core'u nasıl kullanacağınızı öğreneceksiniz. Bir bağlam kurmayı, bir Pandas veri kaynağı kaydetmeyi, beklentiler tanımlamayı ve veri yığınlarını doğrulamayı adım adım inceleyeceğiz.

Not: DataLab not defteri ile birlikte ilerlemenizi öneririz; ancak kendi Python betiğinizi de oluşturabilirsiniz.

Önkoşullar

  • Python 3.9 ile 3.12 arasında kurulu olmalı.
  • Çakışmaları önlemek için, Great Expectations'ı bir sanal ortam içinde kurmanız şiddetle tavsiye edilir (uyarı: sanal ortamların kurulumu bu makalenin kapsamı dışındadır).
  • Örnek bir veri kümesi.

Not: Sağlanan DataLab not defterini kullanıyorsanız, bu önkoşullar zaten sağlanmıştır. Bu adımları atlayabilirsiniz.

GX'i pip ile yüklemek için aşağıdaki komutu kullanın:

pip install great_expectations

Bu komut çekirdek paketi ve gerekli tüm bağımlılıkları kurar.

Great Expectations, yapılandırmaları yönetmek için bir veri bağlamı gerektirir. Yapılandırmaların kalıcı hale gelmemesi için geçici bir veri bağlamı kullanıyoruz.

import great_expectations as gx

# Get the Ephemeral Data Context
context = gx.get_context()
assert type(context).__name__ == "EphemeralDataContext"

İlk Veri Doğrulama Paketinizi Oluşturma

Artık GX kurulduğuna göre, bir veri doğrulama paketi oluşturalım.

Bir veri kaynağı, Great Expectations'ı verilerinize bağlar; bir veri varlığı ise belirli bir veri alt kümesini (ör. bir tablo, DataFrame veya dosya) temsil eder.

Bu örnekte, inventory_parts_df adlı bir DataFrame'e bağlanmak için her şeyi hazırlayacağız. Örnek veri kümesi sağlanan DataLab'de mevcuttur ve SQL bloğunu çalıştırdığımızda oluşturulur:

DataLab kullanmıyorsanız, örnek verilerle kendi DataFrame'inizi oluşturun.

Şimdi veri kaynağınızı ve varlığınızı oluşturun:

# Add a Pandas Data Source
data_source = context.data_sources.add_pandas(name="inventory_parts")
# Add a Data Asset to the Data Source
data_asset = data_source.add_dataframe_asset(name="inventory_parts_asset")

Bir yığın tanımı, verilerinizi doğrulama için tanımlar ve düzenler. Burada, tüm DataFrame'i kapsayan bir yığın tanımı ekliyoruz:

# Define the Batch Definition name
batch_definition_name = "inventory_parts_batch"
# Add the Batch Definition
batch_definition = data_asset.add_batch_definition_whole_dataframe(batch_definition_name)
assert batch_definition.name == batch_definition_name

Bir yığın, bir yığın tanımına bağlı bir veri koleksiyonudur. Verileri doğrulamak için yığını alıp DataFrame'inize bağlamanız gerekir; bu örnekte inventory_parts_df:

# Define the Batch Parameters
batch_parameters = {"dataframe": inventory_parts_df}
# Retrieve the Batch
batch = batch_definition.get_batch(batch_parameters=batch_parameters)

Beklentiler, verileri doğrulamak için kullanılan kurallardır. Bu örnekte şu basit beklentileri tanımlayacağız:

  1. inventory_id değerlerinin boş olmamasını sağlayın.
  2. part_num değerlerinin benzersiz olmasını sağlayın.
# Create an Expectation Suite
expectation_suite_name = "inventory_parts_suite"
suite = gx.ExpectationSuite(name=expectation_suite_name)
# Add Expectations
suite.add_expectation(
    gx.expectations.ExpectColumnValuesToNotBeNull(column="inventory_id")
)
suite.add_expectation(
    gx.expectations.ExpectColumnValuesToBeUnique(column="part_num")
)
# Add the Expectation Suite to the Context
context.suites.add(suite)

Mevcut tüm beklentileri Expectation Gallery'de keşfedebilirsiniz. Birkaç tane daha eklemenizi öneririz!

Beklentileri tanımladıktan sonra GX, beklenti paketi yapılandırmasını çıktılar:

{
  "name": "inventory_parts_suite",
  "id": "b2de0b69-0869-4163-8dde-6c09884483f7",
  "expectations": [
    {
      "type": "expect_column_values_to_not_be_null",
      "kwargs": {
        "column": "inventory_id"
      },
      "meta": {},
      "id": "53d6c42a-d190-412f-a113-783b706531f4"
    },
    {
      "type": "expect_column_values_to_be_unique",
      "kwargs": {
        "column": "part_num"
      },
      "meta": {},
      "id": "362a2bdc-616d-4b3a-b7f0-c73808caee78"
    }
  ],
  "meta": {
    "great_expectations_version": "1.2.4"
  },
  "notes": null
}

Paket aşağıdaki ayrıntıları içerir:

  1. Paket adı ve kimliği: Paketi izlemek ve yönetmek için benzersiz bir ad (inventory_parts_suite) ve tanımlayıcı.
  2. Beklentiler: Her kural şunları belirtir:
    • Yapılacak kontrolün türü (ör. bir sütunda boş değer olmamasını veya benzersiz girişler olmasını sağlama).
    • Doğrulanan sütun gibi parametreler.
    • Takibi ve özelleştirmeyi kolaylaştıran, her beklenti için meta veriler ve benzersiz bir kimlik.
  3. Meta veriler: Aracın uyumluluğunu sağlamak için Great Expectations sürüm bilgisi.
  4. Notlar: Paket hakkında açıklayıcı yorumlar eklemek için bir yer tutucu (isteğe bağlı).

Bu yapılandırılmış çıktı, veri kümenizi doğrulamak için hem dokümantasyon hem de yeniden kullanılabilir bir yapılandırma işlevi görür; böylece beklentileriniz açıkça tanımlanmış, izlenebilir ve gelecekte kullanıma hazır olur.

5. Veriyi doğrulama

Son olarak, yığını tanımlanan beklentilere göre doğrulayın ve sonuçları değerlendirin.

# Validate the Data Against the Suite
validation_results = batch.validate(suite)
# Evaluate the Results
print(validation_results)

Doğrulamayı çalıştırdıktan sonra Great Expectations, veri kümesinin tanımlanan beklentileri karşılayıp karşılamadığına ilişkin ayrıntılı bir rapor sunar:

{
  "success": false,
  "results": [
    {
      "success": true,
      "expectation_config": {
        "type": "expect_column_values_to_not_be_null",
        "kwargs": {
          "batch_id": "inventory_parts-inventory_parts_asset",
          "column": "inventory_id"
        },
        "meta": {},
        "id": "53d6c42a-d190-412f-a113-783b706531f4"
      },
      "result": {
        "element_count": 580069,
        "unexpected_count": 0,
        "unexpected_percent": 0.0,
        "partial_unexpected_list": [],
        "partial_unexpected_counts": [],
        "partial_unexpected_index_list": []
      },
      "meta": {},
      "exception_info": {
        "raised_exception": false,
        "exception_traceback": null,
        "exception_message": null
      }
    },
    {
      "success": false,
      "expectation_config": {
        "type": "expect_column_values_to_be_unique",
        "kwargs": {
          "batch_id": "inventory_parts-inventory_parts_asset",
          "column": "part_num"
        },
        "meta": {},
        "id": "362a2bdc-616d-4b3a-b7f0-c73808caee78"
      },
      "result": {
        "element_count": 580069,
        "unexpected_count": 568352,
        "unexpected_percent": 97.98006788847535,
        "partial_unexpected_list": [
          "48379c01",
          "paddle",
          "11816pr0005",
          "2343",
          "3003",
          "30176",
          "3020",
          "3022",
          "3023",
          "30357",
          "3039",
          "3062b",
          "3068b",
          "3069b",
          "3069b",
          "33291",
          "33291",
          "3795",
          "3941",
          "3960"
        ],
        "missing_count": 0,
        "missing_percent": 0.0,
        "unexpected_percent_total": 97.98006788847535,
        "unexpected_percent_nonmissing": 97.98006788847535,
        "partial_unexpected_counts": [
          {
            "value": "3069b",
            "count": 2
          },
          {
            "value": "33291",
            "count": 2
          },
          {
            "value": "11816pr0005",
            "count": 1
          },
          {
            "value": "2343",
            "count": 1
          },
          {
            "value": "3003",
            "count": 1
          },
          {
            "value": "30176",
            "count": 1
          },
          {
            "value": "3020",
            "count": 1
          },
          {
            "value": "3022",
            "count": 1
          },
          {
            "value": "3023",
            "count": 1
          },
          {
            "value": "30357",
            "count": 1
          },
          {
            "value": "3039",
            "count": 1
          },
          {
            "value": "3062b",
            "count": 1
          },
          {
            "value": "3068b",
            "count": 1
          },
          {
            "value": "3795",
            "count": 1
          },
          {
            "value": "3941",
            "count": 1
          },
          {
            "value": "3960",
            "count": 1
          },
          {
            "value": "48379c01",
            "count": 1
          },
          {
            "value": "paddle",
            "count": 1
          }
        ],
        "partial_unexpected_index_list": [
          0,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          20,
          21
        ]
      },
      "meta": {},
      "exception_info": {
        "raised_exception": false,
        "exception_traceback": null,
        "exception_message": null
      }
    }
  ],
  "suite_name": "inventory_parts_suite",
  "suite_parameters": {},
  "statistics": {
    "evaluated_expectations": 2,
    "successful_expectations": 1,
    "unsuccessful_expectations": 1,
    "success_percent": 50.0
  },
  "meta": {
    "great_expectations_version": "1.2.4",
    "batch_spec": {
      "batch_data": "PandasDataFrame"
    },
    "batch_markers": {
      "ge_load_time": "20241129T122532.416424Z",
      "pandas_data_fingerprint": "84a1e1939091fcf54324910def3b89cd"
    },
    "active_batch_definition": {
      "datasource_name": "inventory_parts",
      "data_connector_name": "fluent",
      "data_asset_name": "inventory_parts_asset",
      "batch_identifiers": {
        "dataframe": "<DATAFRAME>"
      }
    }
  },
  "id": null
}

Bu rapor, verilerinizin kalitesini ayrıntılarıyla ortaya koyar ve başarıları ile başarısızlıkları vurgular. İşte sonuçların basitleştirilmiş bir açıklaması:

Genel doğrulama: Doğrulama sonucu kısmen başarılı oldu: Beklentilerin %50'si geçti, %50'si başarısız oldu. Başarısız bir beklenti, dikkat edilmesi gereken bir veri kalitesi sorununa işaret eder. Bu durumda bir sütun tanımlanan kurala uymadı.

Beklenti 1: inventory_id sütununda eksik değer olmamalı

  • Sonuç: Geçti
  • Açıklama: inventory_id sütunundaki her değer mevcut; boş veya eksik giriş yok. Bu, bu sütun için iyi veri tamlığını gösterir.

Beklenti 2: part_num sütunundaki değerler benzersiz olmalı

  • Sonuç: Başarısız
  • Açıklama: part_num sütunu %97,98 oranında yinelenen değer içeriyor; bu da yalnızca az sayıda değerin benzersiz olduğu anlamına gelir.
  • Öne çıkanlar:
    • "3069b" ve "33291" gibi yinelenen değerlere örnekler.
    • Araç ayrıca bu yinelemelerin ne sıklıkta göründüğünü ve satır konumlarını gösterir; böylece sorunları bulmak ve düzeltmek kolaylaşır.

Elbette bu sadece bir örnek veri kümesidir ve her iki doğrulama sonucunu da görebilmeniz için bilerek bir geçen ve bir başarısız olan beklenti ekledik.

Hepsi bu! Uçtan uca veri doğrulamalarını başarıyla çalıştırdınız.

Great Expectations'ı Veri Hatlarına Entegre Etme

Canlı ortamlarda, doğrulamaların iş akışına doğrudan gömülmesi ve her aşamada veri kalitesinin sürekli izlenmesi gerekir. 

Bu bölümde, Great Expectations'ı veri hatlarınıza nasıl entegre edebileceğinizi tartışacağız.

Bunlar fikir vermek için örneklerdir ve burada yer almayan ek yapılandırmalar gerekebilir. Güncel sözdizimi için her aracın dokümantasyonuna göz atın!

ETL araçlarıyla entegrasyon

Great Expectations'ı Apache Airflow veya Prefect gibi popüler ETL araçlarıyla entegre etmek nispeten kolaydır. Doğrulama adımlarını doğrudan ETL süreçlerine yerleştirmek, aşağı akış analizini etkilemeden önce veri sorunlarını gerçek zamanlı olarak yakalamanıza ve ele almanıza olanak tanır.

Hadi, otomatik bir ETL iş akışının parçası olarak veri doğrulaması çalıştırmak için Great Expectations'ı Prefect ile entegre etmeye yönelik basit bir örneği inceleyelim:

from prefect import task, Flow
import great_expectations as ge
# Define a task to run Great Expectations validation
@task
def validate_data():
    context = ge.data_context.DataContext()
    batch_kwargs = {"path": "path/to/your/datafile.csv", "datasource": "your_datasource"}
    batch = context.get_batch(batch_kwargs, suite_name="your_expectation_suite")
    results = context.run_validation_operator("action_list_operator", assets_to_validate=[batch])
	    
    # Check validation results and raise an alert if validation fails
    if not results["success"]:
        raise ValueError("Data validation failed!")
# Define your ETL flow
with Flow("ETL_with_GE_Validation") as flow:
    validation = validate_data()
# Execute the flow
flow.run()

Bu örnekte, Great Expectations doğrulamasını çalıştırmak için bir görev içeren bir Prefect akışı tanımlıyoruz.

validate_data() görevi, Great Expectations bağlamını yükler, veri yığınını alır ve beklenti paketini uygular. 

Veriler doğrulama ölçütlerini karşılamazsa görev bir uyarı yükseltir, iş akışını durdurur ve aşağı akış hatalarını önler.

Sürekli veri doğrulama

Doğrulama işleri, Unix tabanlı sistemlerde cron işleri veya Apache Airflow gibi yönetilen hizmetler kullanılarak zamanlanabilir. Bu örnekte, veri hatlarını düzenlemek için uygun olan Airflow kullanarak doğrulama çalıştırmalarının nasıl zamanlanacağını göstereceğiz.

Great Expectations doğrulamalarını günlük olarak çalıştırmak için bir Airflow DAG'ini (Directed Acyclic Graph) şu şekilde kurabilirsiniz:

from airflow import DAG
from airflow.operators.python_operator import PythonOperator
from datetime import datetime
import great_expectations as ge
# Define the DAG and set the schedule to run daily
default_args = {
	  'owner': 'airflow',
	  'start_date': datetime(2024, 1, 1),
	  'retries': 1,
}
dag = DAG(
      'great_expectations_validation',
	default_args=default_args,
	schedule_interval='@daily',  # Runs once a day
)
# Define the function to run the validation
def run_validation():
    context = ge.data_context.DataContext()
    batch = context.get_batch(batch_kwargs, suite_name="your_expectation_suite")
    results = context.run_validation_operator("action_list_operator", assets_to_validate=[batch])
    return results
# Set up the task in Airflow
validation_task = PythonOperator(
      task_id='run_great_expectations_validation',
      python_callable=run_validation,
      dag=dag,
)
# Set the task in the DAG
validation_task

Bu örnekte, günde bir kez (@daily) bir doğrulama çalıştırmasını zamanlayan bir DAG tanımlıyoruz. 

run_validation() işlevi, Great Expectations bağlamını yükleyerek ve tanımlanan beklenti paketini veri üzerinde çalıştırarak doğrulamayı yürütür.

Great Expectations ile Veri Doğrulamada En İyi Uygulamalar

Ölçeklenebilirlik ve verimlilik için en iyi uygulamaları takip etmek her zaman tavsiye edilir; Great Expectations ile veri doğrulamada da durum farklı değildir.

Küçük başlayın ve yineleyin

Temel veri kalitesi kontrolleriyle başlayın ve kademeli olarak genişletin. Başlangıçta temel beklentilere odaklanmak daha iyidir; bu, süreci gereksiz yere karmaşıklaştırmaktan kaçınmaya yardımcı olur, daha sorunsuz bir entegrasyon ve daha kolay sorun giderme sağlar. Veri kümesine ilişkin anlayışınız arttıkça daha karmaşık doğrulamalar ekleyebilirsiniz.

Ekipler arası işbirliği yapın

Veri kalitesi yalnızca teknik bir endişe değildir. Beklentileri tanımlamak ve uygulanan doğrulamanın altta yatan iş mantığı ve hedeflerle uyumlu olmasını sağlamak için iş birimleriyle işbirliği yapın. Bu işlevler arası yaklaşım, verilerin amacına hizmet etmesini ve tüm paydaşların gereksinimlerini karşılamasını garanti eder.

Mümkün olduğunca otomatikleştirin

Veri doğrulamayı veri hatlarına entegre etmek için süreci mümkün olduğunca otomatikleştirin. Otomatik doğrulama kontrollerinin entegrasyonu, manuel müdahale olmadan veri kalitesinin sürekli izlenmesini sağlar ve verimliliği önemli ölçüde artırır.

Sonuç

Harika iş! Great Expectations'ta veri yapılandırmayı ve doğrulamayı öğrendiniz. Bu teknikler, iş akışlarınızda yüksek veri kalitesini ve şeffaflığı korumanıza yardımcı olacaktır.

Becerilerinizi geliştirmeye devam etmek için şu kaynaklara göz atın:

SSS

Great Expectations diğer veri doğrulama araçlarıyla karşılaştırıldığında nasıldır?

Great Expectations, açık kaynaklı, esnek ve modern veri hatlarıyla iyi entegre olur. Geniş beklenti kitaplığı ve güçlü dokümantasyonuyla öne çıkar.

Great Expectations'ı kullanmak için Python bilmem gerekir mi?

Temel Python bilgisi faydalı olsa da, Great Expectations kullanıcı dostu bir CLI ve kapsamlı dokümantasyon sunar; bu da programcı olmayanlar için erişilebilir olmasını sağlar.

Great Expectations hangi tür veri kaynaklarını destekler?

Great Expectations aşağıdakiler de dahil olmak üzere geniş bir veri kaynağı yelpazesini destekler:

  • PostgreSQL, MySQL ve SQL Server gibi ilişkisel veritabanları.
  • AWS S3, Google Cloud Storage ve Azure Blob Storage gibi bulut depolama çözümleri.
  • CSV, Parquet ve Excel gibi dosya formatları.
  • Apache Spark ve Databricks gibi büyük veri çerçeveleri. Great Expectations'ı bu kaynaklara, veri kaynağınız için uygun yapılandırmayı kullanarak kolayca bağlayabilirsiniz.

Great Expectations'ı akış verileriyle kullanabilir miyim?

Great Expectations öncelikle toplu veri doğrulaması için tasarlanmıştır. Doğal olarak akış veri hatlarını desteklemese de, periyodik olarak anlık görüntüleri veya mikro yığınları doğrulayarak Apache Kafka veya Spark Structured Streaming gibi çerçevelere entegre edebilirsiniz.

Beklentileri ve doğrulama sonuçlarını sürüm kontrolüne almak mümkün mü?

Evet, beklentileri ve yapılandırmaları bir Git deposunda YAML veya JSON dosyaları olarak saklayarak sürüm kontrolü yapabilirsiniz. Doğrulama sonuçları için ise zaman içinde sonuçları izlemek üzere bir veritabanı veya dosya tabanlı bir depo kurabilir ve sürekli izleme için CI/CD hatlarınıza entegre edebilirsiniz.

Great Expectations, veri kümelerindeki şema evrimini nasıl ele alır?

Great Expectations, esnek beklentiler çerçevesi aracılığıyla şema evrimini ele alır. Şemanız değişirse şunları yapabilirsiniz:

  • expect_table_columns_to_match_set veya benzeri beklentileri kullanarak sütun adlarını dinamik olarak doğrulayın.
  • Yeni şemaya uyum sağlamak için beklenti paketlerini değiştirin veya yenilerini oluşturun.
  • Yeni eklenen sütunlar için beklentileri otomatik olarak güncellemek üzere şema çıkarım araçlarından yararlanın.

Kurtis Pykes 's photo
Author
Kurtis Pykes
LinkedIn

Thalia Barrera's photo
Author
Thalia Barrera

Thalia Barrera, Bilgisayar Bilimleri alanında yüksek lisansa ve yazılım ile veri mühendisliğinde on yılı aşkın deneyime sahip, DataCamp'te Kıdemli Veri Bilimi Editörüdür. Thalia, blog yazıları, eğitimler ve video kursları aracılığıyla mühendisler ve veri bilimciler için teknik kavramları sadeleştirmekten keyif alır.

Konular

Bu kurslarla veri mühendisliği hakkında daha fazla öğrenin!

Program

Veri Mühendisi Python'da

40 sa
Verileri verimli bir şekilde almak, temizlemek, yönetmek, işlem hatlarını planlamak ve izlemek için talep edilen becerileri kazanın ve veri mühendisliği alanında fark yaratın.
Ayrıntıları GörRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

Devamını GörDevamını Gör