Skip to content
View nottolivc's full-sized avatar
Block or Report

Block or report nottolivc

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
nottolivc/README.md

About Andrew

Full Stack Software Engineer 💻


Current Tech:

Frontend

React Bootstrap CSS3 HTML5 JavaScript Redux TypeScript

Backend

JavaScript MongoDB Node.js Express.js 
                                                                                                                    greSQL TypeScript

Other Tech

Python Linux Git

Experienced in (and currently working with) the following:

  • TypeScript, JavaScript, Python, Go
  • React.js, Node.js, RESTful & GraphQL, MVCs, Express.js, Next.js
  • AWS, Cloud Architecture & Computing
  • PostgreSQL, SQL, NoSQL, ORMs
  • Machine Learning & Neural Networks

Always up for learning/working with new teams and technologies
Certified Credentals for Software Engineering by Triplebyte:


Credential

SOLID Design in React

const Data = {
  value: "SOLID in React",
  color: "blue",
  format: (value) => value.toUpperCase(),
  validate: (value) => value.length > 0
};

// S - Single Responsibility Principle
// Component with a single responsibility: Display the value.
const DisplayData = ({ value }) => <div>{value}</div>;

// O - Open/Closed Principle
// Component that can display data in a color without changing its internal structure.
const ColorfulData = ({ value, color }) => <div style={{ color }}>{value}</div>;

// L - Liskov Substitution Principle
// Base and derived functions to demonstrate substitutability.
function baseFormat(value) {
  return value;
}

function extendedFormat(value) {
  return value.toLowerCase();
}

// I - Interface Segregation Principle
// Seperate out functionalities into different methods.
const formatData = (value, formatter) => formatter(value);
const validateData = (value, validator) => validator(value);

// D - Dependency Inversion Principle
// Components depending on abstractions (props) rather than concrete implementations.
const DataWrapper = ({ value, formatter, validator }) => {
  const formattedValue = formatData(value, formatter);
  const isValid = validateData(value, validator);

  return (
    <div>
      {isValid ? formattedValue : "Invalid Data"}
    </div>
  );
};

const SOLIDComponent = () => {
  return (
    <div>
      <DisplayData value={Data.value} />
      <ColorfulData value={Data.value} color={Data.color} />
      <DataWrapper 
        value={Data.value} 
        formatter={extendedFormat} 
        validator={Data.validate} 
      />
    </div>
  );
};

export default SOLIDComponent;

Pinned Loading

  1. blockchain-ts blockchain-ts Public

    A blockchain example written in node.js that makes a cryptographic transaction between two users

    TypeScript

  2. netflix-clone netflix-clone Public

    A Netflix clone built in React hooks with auth and seeded w/ JSON for testing

    JavaScript 1