Giter Site home page Giter Site logo

jofaval / frontend-fitness-functions Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 17 KB

Fitness Functions oriented for Frontend Development

TypeScript 100.00%
architecture-governance cli fitness-function fitness-functions frontend typescript frontend-architecture

frontend-fitness-functions's Introduction

Frontend Fitness Functions

Fitness Functions oriented for Frontend Development

Inspiration

I read them on Fundamentals of Software Architecture: An Engineering Approach. But they're greatly expanded upon in Building Evolutionary Architectures: Automated Software Governance.

Definition

Fitness functions are functions that track the evolution of the software architecture and help maintain governance through automation.

Why using a CLI?

Command Line Interfaces are a great way to offer automation, they can be connected to a CI/CD pipeline, are generally easy to use and can be abstracted to simplify groups of parameters. They have the potential to be great.

They're developed using TypeScript simply because this functions will be used on a frontend development environment, where JavaScript, and hopefully TypeScript, is the language of use, and the one already installed. Go, Rust, Python could also be used if agreed upon your team, I'd rather stick with TypeScript for this decisions.

Why no ADRs?

No Architecture Decision Record is provided simply because these are decisions I've seen in different frontend projects, ones I've seen no linter for (file structure linters are not as great as one could wish in JavaScript).

They all shared the idea of standardizing the codebase and allowing for an easier file search experience.

Validators and terraformers

I would group fitness functions, oriented to frontend, between validators and terraformers.

The most common use case will probably be validators, which will determine if the current codebase is up to the decision it validates, such as: all files should indicate the topology (.type, .helper, .utils, .component, .layout, etc...).

In my personal opinion, validators detect inconsistency in the codebase but we (engineers in charge of the architecture governance) should provide tools to fix what's wrong, that's where terraformers come into play. Following the previous example, it would rename the filename so that it adheres to the architecture decision.

Validators will run on the CI pipeline, terraformers should only run on the local development environment, a CI/CD pipeline should NOT modify the codebase and/or commit changes, and will help make the codebase valid.

frontend-fitness-functions's People

Contributors

jofaval avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.