Web Development

Modern web teknolojileri ile profesyonel web siteleri ve uygulamalar geliştirin

console.log("Hello, Web Developer!");

Web Development Nedir?

Web Development, web siteleri ve web uygulamalarının tasarımı, geliştirilmesi ve bakımı sürecidir. Modern web development, kullanıcı deneyimini ön planda tutan, responsive ve performanslı web çözümleri üretmeyi hedefler.

HTML
Web sayfalarının yapısını oluşturan işaretleme dili. İçerik ve anlam sağlar.
CSS
Web sayfalarının görsel tasarımını ve stilini kontrol eden stil sayfası dili.
JavaScript
Web sayfalarına interaktiflik ve dinamik özellikler kazandıran programlama dili.
Node.js
JavaScript'i sunucu tarafında çalıştırmaya olanak tanıyan runtime ortamı.
💡 Kariyer Fırsatları: Web development alanında frontend developer, backend developer, full-stack developer, DevOps engineer gibi çeşitli roller bulunmaktadır.

HTML (HyperText Markup Language)

HTML, web sayfalarının temel yapı taşıdır. Semantic (anlamsal) etiketler kullanarak içeriği organize eder ve web tarayıcılarına ne gösterileceğini söyler.

<!DOCTYPE html>
<html lang="tr">
<head>
    <meta charset="UTF-8">
    <title>İlk Web Sayfam</title>
</head>
<body>
    <h1>Merhaba Dünya</h1>
    <p>Bu benim ilk HTML sayfam.</p>
</body>
</html>
HTML5 Semantic Etiketler:
  • <header> - Sayfa başlığı
  • <nav> - Navigasyon menüsü
  • <main> - Ana içerik
  • <section> - Bölüm
  • <article> - Makale
  • <aside> - Yan içerik
  • <footer> - Sayfa altbilgisi
Erişilebilirlik
HTML yazarken alt attribute'ları, semantic etiketler ve proper heading hierarchy kullanarak erişilebilirliği artırın.
Yaygın Hatalar: DIV soup (gereksiz div kullanımı), semantic olmayan etiketler, eksik alt attribute'ları ve yanlış heading sırası.

CSS (Cascading Style Sheets)

CSS, HTML elementlerinin görünümünü kontrol eden stil dilidir. Modern CSS ile responsive tasarımlar, animasyonlar ve karmaşık layoutlar oluşturabilirsiniz.

/* CSS Reset */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* Flexbox Layout */
.container {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    background: linear-gradient(45deg, #667eea, #764ba2);
}
Modern CSS Özellikleri: CSS Grid, Flexbox, Custom Properties (--variables), CSS animations ve transforms ile güçlü tasarımlar oluşturun.

CSS Grid vs Flexbox:

/* CSS Grid - 2D Layout */
.grid-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

/* Flexbox - 1D Layout */
.flex-container {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}
Responsive Design
@media (max-width: 768px) { ... } - Media queries ile farklı ekran boyutlarına uyum sağlayın. Mobile-first yaklaşımı benimseyin.

JavaScript

JavaScript, web sayfalarına dinamik özellikler ve interaktiflik kazandıran programlama dilidir. Modern JavaScript (ES6+) ile güçlü web uygulamaları geliştirebilirsiniz.

// Modern JavaScript (ES6+)
const fetchData = async (url) => {
    try {
        const response = await fetch(url);
        const data = await response.json();
        return data;
    } catch (error) {
        console.error('Hata:', error);
    }
};

// DOM Manipulation
const button = document.querySelector('.btn');
button.addEventListener('click', () => {
    document.querySelector('.content').innerHTML = 'Tıklandı!';
});
JavaScript Temel Konular:
  • Variables: let, const, var
  • Functions: Arrow functions, async/await
  • Objects: Destructuring, spread operator
  • Arrays: map, filter, reduce
  • Promises: Asynchronous programming
  • DOM: Element selection ve manipulation

Popular JavaScript Frameworks:

// React Component
import React, { useState } from 'react';

function Counter() {
    const [count, setCount] = useState(0);
    
    return (
        <div>
            <p>Sayaç: {count}</p>
            <button onClick={() => setCount(count + 1)}>
                Artır
            </button>
        </div>
    );
}
Framework Seçimi: React, Vue.js ve Angular en popüler frontend framework'leridir. Projenizin ihtiyaçlarına göre seçim yapın.

Node.js

Node.js, JavaScript'i sunucu tarafında çalıştırmaya olanak tanıyan runtime ortamıdır. V8 JavaScript engine üzerine kurulu olup, yüksek performanslı web sunucuları ve API'ler geliştirmenizi sağlar.

// Express.js ile basit web sunucusu
const express = require('express');
const app = express();

// Middleware
app.use(express.json());

// Routes
app.get('/', (req, res) => {
    res.json({ message: 'Merhaba Node.js!' });
});

app.post('/users', (req, res) => {
    const { name, email } = req.body;
    // Veritabanı işlemleri...
    res.status(201).json({ id: 1, name, email });
});

const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
    console.log(`Sunucu ${PORT} portunda çalışıyor`);
});
Node.js Kurulumu: node --version ve npm --version komutlarıyla kurulumunuzu kontrol edin. NVM kullanarak multiple Node.js versiyonları yönetin.

NPM ve Package Management:

// package.json oluşturma
npm init -y

// Bağımlılık yükleme
npm install express mongoose bcryptjs jsonwebtoken

// Development bağımlılığı
npm install --save-dev nodemon jest

// Global paket yükleme
npm install -g pm2
Popüler Node.js Modülleri:
  • Express.js: Web framework
  • Mongoose: MongoDB ODM
  • Socket.io: Real-time communication
  • Passport.js: Authentication
  • Joi: Data validation
  • Lodash: Utility library
Veritabanı Entegrasyonu
Node.js ile MongoDB, PostgreSQL, MySQL gibi veritabanlarını kullanabilirsiniz. ORM/ODM araçları: Mongoose, Sequelize, Prisma.

Frontend vs Backend

Web development iki ana alana ayrılır: Frontend (kullanıcının gördüğü kısım) ve Backend (sunucu tarafındaki logic ve veri yönetimi).

Frontend Development
Teknolojiler: HTML, CSS, JavaScript, React, Vue.js, Angular
Sorumluluklar: UI/UX, responsive design, performans optimizasyonu
Backend Development
Teknolojiler: Node.js, Python, Java, PHP, databases
Sorumluluklar: API geliştirme, veritabanı yönetimi, güvenlik
Full-Stack Developer: Hem frontend hem backend teknolojilerinde uzman olan geliştiricilerdir. MEAN, MERN, LAMP gibi stack'leri kullanırlar.
API Communication
Frontend ve backend arasında veri alışverişi REST API'ler veya GraphQL ile yapılır. JSON formatı yaygın olarak kullanılır.

Araçlar ve Editörler

Web development sürecinde kullanılan temel araçlar ve editörler üretkenliğinizi artıracak ve geliştirme deneyiminizi iyileştirecektir.

Code Editörleri:

  • Visual Studio Code: En popüler, ücretsiz, extension desteği
  • WebStorm: JetBrains'in güçlü IDE'si
  • Sublime Text: Hızlı ve hafif
  • Atom: GitHub tarafından geliştirilen

Version Control:

# Git temel komutlar
git init
git add .
git commit -m "İlk commit"
git push origin main

# Branch işlemleri
git checkout -b feature/yeni-ozellik
git merge feature/yeni-ozellik
GitHub/GitLab
Git repository'lerini host etmek, collaborative development ve CI/CD için GitHub, GitLab veya Bitbucket kullanın.

Build Tools ve Task Runners:

  • Webpack: Module bundler
  • Vite: Fast build tool
  • Parcel: Zero-config bundler
  • Gulp: Task automation

Deployment ve Hosting

Geliştirdiğiniz web uygulamalarını canlıya almak için çeşitli hosting ve deployment seçenekleri mevcuttur.

Static Hosting
Platformlar: Netlify, Vercel, GitHub Pages
Uygun: Static siteler, SPA'ler, JAMStack uygulamaları
Full-Stack Hosting
Platformlar: Heroku, DigitalOcean, AWS, Google Cloud
Uygun: Node.js apps, databases, complex backends
// Heroku deployment için package.json script
{
  "scripts": {
    "start": "node server.js",
    "dev": "nodemon server.js"
  },
  "engines": {
    "node": "16.x"
  }
}
CI/CD Pipeline: GitHub Actions, GitLab CI veya Jenkins kullanarak otomatik deployment süreçleri oluşturun.
Domain ve SSL
Custom domain adı ve SSL sertifikası ile profesyonel bir görünüm kazandırın. Let's Encrypt ile ücretsiz SSL alabilirsiniz.

En İyi Uygulamalar

Kaliteli ve sürdürülebilir web uygulamaları geliştirmek için takip etmeniz gereken en iyi uygulamalar:

Code Quality:
  • Clean, readable kod yazın
  • Meaningful variable ve function isimleri kullanın
  • Code comments ekleyin
  • DRY (Don't Repeat Yourself) prensibini uygulayın
  • ESLint ve Prettier kullanın
Güvenlik: Input validation, SQL injection koruması, XSS prevention, HTTPS kullanımı, secure headers ve authentication/authorization sistemleri hayati önem taşır.
Performance: Image optimization, minification, caching, lazy loading ve CDN kullanımı ile sayfalarınızın hızını artırın.
Responsive Design
Mobile-first yaklaşımı benimseyin. Flexbox ve CSS Grid kullanın. Touch-friendly interface tasarlayın.
User Experience
Intuitive navigation, fast loading times, error handling ve accessibility standards ile kullanıcı deneyimini optimize edin.