This is a reference for my main languages (Python, Go and Rust). Here I explore TDD development with them, and also reference advanced topics and uses for the tools provided in each language, with special atention to fluency and idiomatic coding
- Parte 1
- TDD
- Caps 0 - 3 (3)
- The money problem
- Multicurrency model
- Portfolio
- Fluent Python
- Python data model + An array of sequences
- Dictionaries and sets + Unicode text vs bytes
- Data class builders + Object references, mutability and recycling
- Go
- Basic types, values and pointers + Operations and conversions + Flow control
- Using arrays, slices and maps
- Defining and using functions + Using function types + (anteriores avanzado)
- Rust
- ? Getting started + Programming a guessing game
- Common programming concepts
- Understanding ownership
- TDD
- Parte 2
- TDD
- Separation of concerns
- ! Modules and packages
- OOP Python
- Libro (sin patrones de diseño)
- Go
- Defining structs
- ! Go modules and packages
- Rust
- ? NOTAS PROPIAS SOBRE OWNERSHIP
- ? ALGUN EJERCICIO DE CODEWARS O CLI BASICO
- TDD
- Parte 2
- TDD
- Evaluating a portfolio
- Currencies, currencies, everywhere
- Error handling
- Banking on redesign
- Fluent Python
- Functions as first class objects
- Type hints in functions
- Decorators and closures
- Design patterns with first class functions + Asyncio (en OOP Python)
- Go
- Using methods and interfaces
- Type and interface composition
- Using goroutines and channels
- Error handling
- Rust
- Using structs to structure related data
- Enums and pattern matching
- ! Managing growing projects with packages, crates and modules
- Error handling
- TDD
- Parte 3
- TDD
- Test order
- Continuous integration
- Retrospective
- Fluent Python
- A pythonic object + Special methods for sequences
- Interfaces, protocols and ABC + Inheritance: For better or worse
- More about type hints + Operator overloading
- Go
- String processing and regex
- Formatting and scanning strings
- Math functions and data sorting
- Rust
- Common collections
- Generic types, traits and lifetimes
- ? Writing automated tests + (avanzado) DE TODO LO ANTERIOR
- TDD
- Obey the testing goat! (basic)
- Obey the testing Goat!
- Testing en Django y FastAPI 1/2
- Fluent Python
- Iterators, generators and coroutines
- With, match and else blocks
- Concurrency models in Python
- Concurrent executors
- Asynchronous programming
- Go
- Dates, times and durations
- Reading and writing data
- Working with JSON data
- Working with files
- Using HTML and Text templates
- Rust
- An I/O project: Building a CLI
- Functional language features: Iterators and closures
- ? More about cargo and crates.io
- Smart pointers
- Fearless concurrency
- Obey the testing Goat!
- Obey the testing goat! (advanced)
- Obey the testing Goat!
- Testing en Django y FastAPI 2/2
- Fluent Python
- Dynamic attributes and properties
- Attribute descriptors
- Class metaprogramming
- Go
- Creating HTTP servers
- Creating HTTP clients
- Working with databases
- Coordinating Goroutines
- Obey the testing Goat!
* Using reflection
* Unit testing, benchmarking and logging
* ...
- Rust
- Object-oriented programming features
- Patterns and matching
- Advanced features
- Building a multithreaded web server