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
- enter và exit 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
- Python Official Documentation - Advanced
- Real Python - Advanced Tutorials
- Fluent Python (Book)
- Effective Python (Book)
Projects
Mini Projects
- CLI Tool: Command-line application với argparse
- Web Scraper: Scraping với requests và BeautifulSoup
- 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.