sec0uth / brick-abode-project-interview

The final project of interviewing process
0 stars 0 forks source link

Report about the methodology, approach, and steps to reproduce results #24

Open sec0uth opened 3 years ago

sec0uth commented 3 years ago

Description

Write a report showing detailed information about

It uses the PyDoc local server on the links, so ensure the server is up and running

Juniper

The methodology used is a mix of object-oriented with functional programming.

Object-oriented

You can share functionality and behavior using inheritance. Task python package contain the classes for some entity task. This entities, or classes, inherits from AbstractTask.

Issue #15 show a detailed explanation of the expectations of a taskentity.

Now, the management of tasks execution uses functional programming.

Functional programming

Small independent units represents a functional pattern. Cli module solves the problem of receiving a configuration file and starting the tasks. Some functions receives a configuration argument and they can modify it as they wish, and that way sharing that object although this is not done. These functions require a configuration to work, yet sharing is optional.

There is a collaborative relationship between classes and functions.

Approach

Different methodologies can lead to different approaches.

Bottom-Up

The first issues to solve are the fundamentals one. The main function at juniper.cli module solves the problem of:

The basic is to have a configuration that tasks requires. Parsing a yaml file begins the development process, as on commit https://github.com/sec0uth/brick-abode-project-interview/commit/bd92500db48aebe34984187e0e89acc2fdf6e7d3 .

Then the holes were filled until the implementation of the main function, on commit https://github.com/sec0uth/brick-abode-project-interview/commit/720afd3b9e4d08f36593f3b0be013f85e1c5b171 .

Ansible

The framework exposes much fundamental utilities, and can enforce a methodology where each task is solves one issue, and all tasks put together solves the whole problem.

Tests

https://github.com/sec0uth/brick-abode-project-interview/issues/14