02. Python Advanced - Python Nâng Cao

Mục Tiêu Module

Nắm vững các khái niệm Python nâng cao để phát triển ứng dụng chuyên nghiệp với bất kỳ framework hay thư viện nào (Django, FastAPI, Flask, data science, automation, v.v.).

Danh Sách Bài Học

1. Advanced OOP

  • Property decorators (@property, @setter, @deleter)
  • Class methods (@classmethod) và static methods (@staticmethod)
  • Magic methods (dunder methods)
  • Operator overloading
  • Abstract classes và interfaces
  • Multiple inheritance và MRO

2. Decorators

  • Function decorators
  • Decorator với parameters
  • Class decorators
  • functools.wraps
  • Common decorators (@staticmethod, @classmethod, @property)
  • Chaining decorators

3. Generators và Iterators

  • Iterator protocol (iter, next)
  • Generator functions (yield)
  • Generator expressions
  • yield from
  • itertools module

4. Context Managers

  • with statement
  • enterexit methods
  • contextlib module
  • Creating custom context managers
  • Use cases thực tế (file handling, database connections, resource management)

5. Advanced Functions

  • First-class functions
  • Closures
  • Partial functions
  • functools module (reduce, partial, lru_cache)
  • Function annotations

6. Comprehensions

  • List comprehensions (deep dive)
  • Dictionary comprehensions
  • Set comprehensions
  • Generator expressions
  • Nested comprehensions

7. Regular Expressions

  • re module
  • Pattern matching
  • Groups và capturing
  • Flags (IGNORECASE, MULTILINE, etc.)
  • Common regex patterns
  • Use cases thực tế (validation, parsing, text processing)

8. Working với JSON

  • json module
  • Serialization và deserialization
  • Custom JSON encoders/decoders
  • Working với APIs
  • JSON trong web frameworks và data processing

9. Working với Dates và Times

  • datetime module
  • timedelta
  • Timezone handling (pytz, zoneinfo)
  • Formatting dates
  • Date arithmetic
  • Best practices cho timezone-aware applications

10. Collections Module

  • namedtuple
  • defaultdict
  • Counter
  • OrderedDict
  • deque
  • ChainMap

11. Async Programming Basics

  • Synchronous vs Asynchronous
  • async/await keywords
  • asyncio basics
  • Creating async functions
  • Running async code
  • Use cases thực tế (web scraping, API calls, I/O operations)

12. Type Hints và Annotations

  • Type hints syntax
  • typing module (List, Dict, Optional, Union, etc.)
  • Function annotations
  • mypy static type checker
  • Protocol và TypedDict
  • Best practices

13. Testing

  • unittest module
  • pytest framework
  • Writing test cases
  • Fixtures và mocking
  • Test coverage
  • TDD basics

14. Virtual Environments Deep Dive

  • venv vs virtualenv vs conda
  • pyenv cho multiple Python versions
  • pipenv và Pipfile
  • poetry dependency management
  • Docker containers

15. Python Package Structure

  • init.py
  • Relative vs absolute imports
  • Creating packages
  • setup.py và pyproject.toml
  • Distribution
  • Best practices

16. Working với Databases

  • sqlite3 module
  • Database connectors (psycopg2 cho PostgreSQL, mysql-connector, etc.)
  • SQL queries trong Python
  • Connection pooling
  • ORM concepts overview
  • Best practices cho database operations

17. Logging

  • logging module
  • Log levels (DEBUG, INFO, WARNING, ERROR, CRITICAL)
  • Handlers và formatters
  • Configuration (file, console, rotating logs)
  • Best practices
  • Structured logging và log aggregation

18. Performance Optimization

  • Profiling code (cProfile, line_profiler)
  • Memory profiling
  • List comprehensions vs loops
  • Generator vs list
  • Caching strategies
  • Common bottlenecks

19. Python Best Practices

  • PEP 8 style guide
  • Code organization
  • Documentation (docstrings)
  • Comments best practices
  • SOLID principles trong Python
  • Design patterns

20. Working với APIs

  • requests library
  • HTTP methods (GET, POST, PUT, DELETE)
  • Headers và authentication
  • Handling responses
  • Error handling
  • Rate limiting

Prerequisites

  • ✅ Hoàn thành Module 01: Python Basic
  • Python 3.11+ đã cài đặt
  • Hiểu cơ bản về OOP

Thời Gian Học

  • Ước tính: 3-4 tuần
  • Thời lượng mỗi bài: 45-90 phút
  • Thực hành: 2-3 giờ/ngày

Tài Nguyên Tham Khảo

Projects

Mini Projects

  1. CLI Tool: Command-line application với argparse
  2. Web Scraper: Scraping với requests và BeautifulSoup
  3. API Client: Client cho public API với caching

Final Project

Task Manager API Client:

  • Async requests
  • JSON handling
  • Error handling
  • Logging
  • Unit tests
  • Type hints

Bài Tập

Mỗi bài học sẽ có:

  • ✍️ Coding Exercises: 5-7 bài tập
  • 🔬 Labs: Hands-on practice
  • 📝 Quiz: Kiểm tra nâng cao

Module Tiếp Theo

03-django-basic - Bắt đầu học Django framework từ cơ bản để áp dụng kiến thức Python vào web development.