İçerik
Yazı Dizileri
Haftalık C++ Yazı Dizisi:
- Haftalık C++ 1 – “Erase-remove idiom”
- Haftalık C++ 2 – Konteynerler ve sıralı tutma
- Haftalık C++ 3 – if/switch ilklendirme ifadeleri
- Haftalık C++ 4 – Yapısal Bağlama
- Haftalık C++ 5 – std::invoke
- Haftalık C++ 6 – Dosya Sistemi Kütüphanesi
- Haftalık C++ 7 – std::thread (I)
- Haftalık C++ 8- std::thread (II)
- Haftalık C++ 9 – Map Ekleme Kontrolü Kodu
- Haftalık C++ 10 – std::thread (III)
- Haftalık C++ 11- std::initializer_list’ın parametre olarak geçirilmesi
- Haftalık C++ 12 – Multithread programlamada karşılaşılan bazı sıkıntılar
- Haftalık C++ 13 – std::find_if ve auto code Örnek Kod Parçası
- Haftalık C++ 14 – std::optional
- Haftalık C++ 15 – Girdi/Çıktı Manipülatörleri
- Haftalık C++ 16 – std::variant
- Haftalık C++ 17 – Satır arası değişkenler kod parçası ve tek tanımlama kuralı
- Haftalık C++ 18 – std::any
- Haftalık C++ 19 – std::from_chars/to_chars
- Haftalık C++ 20 – Ortaya Karışık Sayılar
- Haftalık C++ 21 – Uzay gemisi operatörü “<=>”, std::source_location ve template<std::basic_fixed_string T>
- Haftalık C++ 22 – Qt Kod Parçaları – I
- Haftalık C++ 23 – std::string_view
- Haftalık C++ 24 – Qt Kod Parçaları – Color Comparison
- Haftalık C++ 25 – QML/C++ Entegrasyonu
- Haftalık C++ 26 – printf
- Haftalık C++ 27 – Dönüştürücü Yapıcılar
- Haftalık C++ 28 – Onaltılı kayan noktalı sayı sabitleri (Floating point literals)
- Haftalık C++ 29 – QML/C++ Plugin’leri
- Haftalık C++ 30 – Nitelikler (“attributes”)
- Haftalık C++ 31 – std::array
- Haftalık C++ 32 – Kullanıcı Tanımlı Dönüştürme Fonksiyonları
- Haftalık C++ 33 – Zaman Bilgisi/Etiketi
- Haftalık C++ 34 – Kullanıcı Tanımlı Değişmezler (“User-defined literals”)
- Haftalık C++ 35 – Basit bir “Checksum” kod parçası
- Haftalık C++ 36 – decltype, std::is_same, std::declval
- Haftalık C++ 37 – Değişken Şablonlar (“Variadic Templates”)
- Haftalık C++ 38 – Daha da Modern C++
- Haftalık C++ 39 – std::chrono – 1 (duration)
- Haftalık C++ 40 – std::chrono (clocks, time_point)
- Haftalık C++ 41 – Endianness
- Haftalık C++ 42 – VxWorks için saat güncelleme
- Haftalık C++ 43 – {fmt} Kütüphanesi
- Haftalık C++ 44 – Aktif Nesne Tasarım Örüntüsü
- Haftalık C++ 45 – Variable Templates
- Haftalık C++ 46 – constexpr fonksiyonlar ve fonskiyonlar için dönüş tipi çıkarımı
- Haftalık C++ 47 – C++ Serialization/Deserialization
- Haftalık C++ 48 – “Function Tracker” Basit bir Mock kütüphanesi
- Haftalık C++ 49 “Generic Lambda” ve “Lambda Capture Initializers”
- Haftalık C++ 50 – Rakam ayıraçlar, std::exchange, std::integer_sequence, std::quoted
- Haftalık C++ 51 – u8′ ‘ karakter tanımlamaları
- Haftalık C++ 52 – İç içe isim uzayları, mesajsız static_assert, __has_include
- Haftalık C++ 53 – Yeni Öznitelik,”Uniform Initialization”, Enumerasyon Özellikleri ve Çıkarılan Özellikler
- Haftalık C++ 54 – Boost.Asio I – Giriş
- Haftalık C++ 55 – Boost Asio II – Temeller ve Mimari
- Haftalık C++ 56 – Boost Asio III – boost::bind, boost::io_context
- Haftalık C++ 57 – Üç/Beş Kuralı, Nesne Oluşturma
- Haftalık C++ 58 – std::vector İpuçları
- Haftalık C++ 59 – Linux C/C++ Uygulamalarında Yığın (“Stack”) Boyutu Ayarlama
- Haftalık C++ 60- “Big Four”
Modern C++ Yazı Dizisi:
- C++ Compiler Compatibility Matrix
- Modern C++ (1): nullptr, enum sınıfları, range-based döngüler, auto
- Modern C++ (2): C++ 11 Yenilikleri
- Modern C++ (3): Uniform Initialization, override/final, default/delete, constexpr, vb.
- Modern C++ (4) : Smart Pointers-I
- Modern C++ (4) : Smart Pointers-II
- Modern C++ (5) : Move semantics
- Modern C++ (6) : Lambda İfadeleri
Yazılım Mühendisliği Yazıları:
- SOLID 1 – Tek Sorumluluk Prensibi (SRP)
- SOLID 2 – Açık/Kapalı Prensibi (OCP)
- SOLID 3 – Liskov’un Yerine Geçme Prensibi (LSP)
- SOLID 4 – Arayüz Ayrıştırma Prensibi (ISP)
- SOLID 5 – Bağımlılıkların Ters Çevrilmesi Prensibi (DIP)
- Yazılımperver Kavramlar – Geçerleme, Doğrulama
- Birim Test Tavsiyeleri
- DRY – Do not Repeat Yourself
- Açık Kaynak Lisanslar
- Vakitsiz/Erken Optimizasyon (“Premature Optimization”) Karşıt Örüntüsü
uEngine4 Yazıları:
- Duyuru – uEngine 4
- uEngine4 – Matrix, Düşen Harf Uygulaması – Güncelleme
- uEngine4 Serüveni – Giriş (Painter Sınıfları)
- uEngine4 Serüveni – BasicGLPainter – I
- uEngine4 Serüveni – BasicGLPainter – II
- uEngine4 Serüveni – Zamanlayıcılar
Haftalık Videolar:
- Haftalık Videolar – 10 (Birim testler, takvim, tarih, zaman, araçlar)
- Haftalık Videolar 9 – Visual Studio Code + Aktif Nesne Örüntüsü
- Haftalık Videolar 8 – Visual Studio 2022 Duyurusu
- Haftalık Videolar 7 – Modular Monolith + Know your hardware!
- Haftalık Videolar 6 – When to use Microservices (and when not to)
- Haftalık C++ Videoları – 5 (“Klaus Iglberger, The SOLID Principles”)
- Haftalık C++ Videoları – 4 (Bjarne Stroustrup “C++20: C++ at 40”)
- Haftalık C++ Videoları – 3 (“Back To Basics: The Best Parts of C++”)
- Haftalık C++ Videoları – 2 (Modern Software Needs Embedded Modern C++ Programming)
- Haftalık C++ Videoları (Applied Best Practices -What C++ developers should know about globals (and the linker)
Uygulama İzleme Yazılımı ve CMake Yazıları:
- Merhaba CMake
- CMake – II
- C++ CMake Şablon Repository’si – Yazılımperver’in Dünyası (yazilimperver.com)
- Uygulama İzleme Yazılımı
- Uygulama İzleme Yazılımı 2 – Başlangıç
- Uygulama İzleme Yazılımı 3 – Utility, Birim Testler, Sürekli Entegrasyon
- Uygulama İzleme Yazılımı 4 – Qt Ayarlamaları
- Uygulama İzleme Yazılımı 5 – AMT v1.0
QT Yazıları:
- Haftalık C++ 25 – QML/C++ Entegrasyonu
- Haftalık C++ 24 – Qt Kod Parçaları – Color Comparison
- QT ve QML Kullanımına Dair Bir Kaç İpucu
- Haftalık C++ 22 – Qt Kod Parçaları – I
- QT Uygulamalarının Konuşlandırılması
- QT (BÇOM Serisi – 2)
- QT TCP İstemci Uygulaması (BÇOM Serisi – 3)
- QT TCP Sunucu Uygulaması (BÇOM Serisi – 4)
Oyun Geliştirme Yazı Dizisi:
- Basit Çoklu Oyuncu Motoru – Snake v2.0 – Giriş
- QT (BÇOM Serisi – 2)
- QT TCP İstemci Uygulaması (BÇOM Serisi – 3)
- QT TCP Sunucu Uygulaması (BÇOM Serisi – 4)
- Oyun geliştirme yazıları – Giriş
- Oyun Geliştirme – Oyun Döngüleri
- Quadtrees
- Oyun Döngüleri – Örnek Kod
- Tetris – v1.0
- Tetris – v2.0
- Snake – v1.0
Uygulama ve Araçlar
- Chocolatey: Windows işletim sistemi için komut satırı tabanlı paket yönetici yazılımı.
- Bin2C: Binary/ASCII dosyaları C dizisi haline getiren araç,
- OBS Studio: Video kayıt ve canlı yayın uygulaması,
- CMAKE: Platformdan bağımsız, uygulama oluşturma betikleri hazırlama aracı,
- VCPKG: Microsoft tarafından sunulan komut tabanlı ve çok platform desteği sunan paket yönetim aracı,
- Visual Studio Code: Modern web ve bulut uygulamalarını geliştirmek ve hata ayıklamak için kullanılabilecek bir kod editörü,
- Pencil: Tüm platformlar için kullanılabilen açık kaynaklı bir GUI prototipleme aracı,
- Sublime : Çok amaçlı ve kabiliyetli metin editörü,
- DDU Uninstaller: AMD / NVIDIA ekran kartı sürücülerini ve paketlerini sisteminizden tamamen kaldırmanıza yardımcı olacak bir sürücü temizleme programı,
- ClipX: Windows için bir pano geçmişi yöneticisi.
Kodlar
Çeşitli yazılarımda atıfta bulunduğum, kendimin geliştirdiği ya da farklı kaynaklardan bularak sizlerle paylaştığım kodlara, aşağıdaki bağlantılardan ulaşabilirsiniz.
- Snake V1.0
- Visual Studio 2017 SDL 2.0.8 Android proje ve kaynak kodları.
- Örnek C++ Veri Yapıları
- Tetris V1.0
- Tetris V2.0
- CMake Örnekleri
- Konsol Yılan Oyunu
- SFML Android Şablonu
- Örnek Oyun Döngüleri
- uEngine4 – Matrix, Düşen Harf Uygulaması
- uEngine4 Serüveni Giriş (Painter Sınıfları)
Olası Konular
- Modern C++ ve STL Özellikleri, Örnek Kodlar ve Kütüphaneler,
- Örnek Oyunlar ve Çoklu Oyunculu Oyun Geliştirme ,
- Çoklu Platform için Yazılım Geliştirme,
- Android NDK Yazılım Geliştirme ve Araçlar,
- Önemli Yazılım Mühendisliği Kavramları (SOLID, Algoritmik Karmaşıklık, Yazılım Ürün Hatları, Entity Component Systems, Tasarım Kalıpları),
- OpenGL, 2B/3B Programlama ve Coğrafi Bilgi Sistemleri,
- Geliştirme, Verimlilik ve Benzeri Araçlar.