Posts tagged "refactoring"

Found 4 posts tagged refactoring
2020-11-06
This is a short summary of my experience while writing a simple HackerNews scraper. As a pure exercise or kata if you want, I tried to apply Clean code, Refactoring and Testing priciples for this small npm module. The task is simple: Get the posts on the front page of https://news.ycombinator.com and parse them.
2020-05-20

Iā€™m going to outline an example to make the concept clearer:

You need to send a recurring email to some users (a newsletter for example), based on some business logic.

The business logic / user story could say:

"As a user

I want to receive an email every week

So that I can stay up to date with the latest news."

This is intentionally a contrived example to reduce the scope of the exercise.

Topics, Approaches and Tools

Concepts discussed below are

  • SOLID principles
    • Single Responsibility Principle
    • Open-Closed Principle
    • Dependency Inversion Principle
  • Reason for a software component to change
  • Test doubles like Spies and Stubs
  • Collaborators in tests
  • User Acceptance tests
  • Unit tests

On the technical side, I am going to use the following tools

  • sinon for easy Test Doubles
  • ava for running the tests
  • MongoDB as an example, but of course the persistence can be changed at your liking
  • no real email API service, to keep it simple
2020-04-19
devblog is yet another lightweight static site generator. Although there are widely used SSG like 11ty (which this blog was previously based on), Jekyll (also previously used), GatsbyJS and many others, I wanted to get my hands dirty and understand how to make the process of building a static blog even simpler, if possible. Even simpler in the sense of "it does just what I need and nothing more". Install via npm i -g devblog or create a blog with a one-liner npx devblog init my-new-blog, cd my-new-blog and serve with npx http-server _site 8080. It's that easy. Rebuild the blog by running npx devblog (or npm i -g devblog and then just run devblog in the main directory) Continue reading my story of building devblog.
2020-04-05