update readme
This commit is contained in:
41
README.md
41
README.md
@ -117,3 +117,44 @@ EXPOSE 3000
|
||||
CMD ["node", "dist/index.js"]
|
||||
|
||||
```
|
||||
|
||||
|
||||
### Scraper OOP
|
||||
|
||||
#### Entrypoint
|
||||
- `scraper.ts` - Application entry point that initializes the scraping system
|
||||
|
||||
#### Core Services
|
||||
- `ScrapingScheduler.ts` - Orchestrates scraping cycles and timing
|
||||
- `ContentScrapingService.ts` - Handles web content scraping logic
|
||||
- `FeedReaderService.ts` - Manages newspaper extraction
|
||||
- `ScrapingService.ts` - Base scraping functionality
|
||||
|
||||
#### Utilities
|
||||
- `WebScraper.ts` - HTML parsing and data extraction utility
|
||||
- `logger.ts` - Logging utility
|
||||
|
||||
#### Extractors
|
||||
- `BaseNewspaperExtractor.ts` - clase Abstract Base
|
||||
- `ElPaisExtractor.ts` - especificación / extractor para El País
|
||||
- `ElMundoExtractor.ts` - especificación / extractor para El Mundo
|
||||
- `NewspaperExtractorFactory.ts` - clase Factory para crear extractors
|
||||
|
||||
#### Types & Interfaces
|
||||
- `Feed.ts` - tipos y interfaces
|
||||
- `NewspaperTypes.ts` - configuración de las interfaces
|
||||
- `FeedRepository.ts` - abstracción interfaz de la base de datos
|
||||
|
||||
## Propiedades de OOP
|
||||
|
||||
- He intentado seguir las propiedades de OOP. Ejemplo:
|
||||
- separación de responsabilidades: con las capas de abstracción, y servicios dedicados
|
||||
- Factory de los extractors en NewspaperExtractorFactory, básicamente, patrón de diseño que nos ayuda a crear objetos de una clase específica, basados en ciertos parámetros, y así lo adaptamos a nuestros periodicos favoritos.
|
||||
- Herencia, desde BaseNewspaperExtractor a los extractors.
|
||||
- Utils, para tener DRY y poder usarlo desde diferentes classes.
|
||||
- He intentando poner tests donde sea necesario, y de forma que tenga sentido.
|
||||
|
||||
|
||||
Obviamente cualquier propuesta está siempre abierta a debate y a mejoras.
|
||||
En mi caso, y dentro de las limitaciones, he intentado seguir las instrucciones y ver como lo podemos adaptar.
|
||||
Seguramente con más tiempo se puede simplificar más sin perder funcionalidades.
|
Reference in New Issue
Block a user