Giter VIP home page Giter VIP logo

Welcome to Genocs - GitHub pages

This repo is intended to recap the main steps required to convert an idea into a software product.

This process it is not straightforward ever. There are a lot of variables and these variables, often, are not clear at the beginning. Besides that, aims and targets could change during the ‘path’. Often this happens without evaluating the impact of the changes on the entire ecosystem.

To design a product and correctly implement it as software project it is necessary to have a clear and deeply knowledge of different areas, technologies, tools, and foremost, the right mindset.

Golden Rules

Before starting to do anything, do not forget to apply these general golden rules!

  • DRY (Don't repeat yourself)
  • KISS (Keep It Simple Stupid)

Don't Repeat Yourself (DRY) is a software development principle that states that software developers should avoid repeating the same code or data in multiple places. This principle encourages developers to create abstractions and modularize their code, making it easier to maintain and update. By following the DRY principle, developers can reduce the amount of time spent on debugging and refactoring code, as well as improve the overall quality of their software.

The Keep It Simple Stupid (KISS) pattern is a software development principle that encourages developers to keep their code and designs as simple as possible. This helps to reduce complexity, improve readability, and make the code easier to maintain. The KISS principle also promotes the use of fewer lines of code, which can help to reduce development time and cost.

and remember:

  • The best and fastest way to do something is don't.
  • So before start doing something, ask yourself: it is really needed?

Setup the Idea

In this stage, the stakeholders should describe the idea behind the product.

The market analysis like competitors’ evaluation, MVP (Minimum Viable Product) and the KPI (Key Product Indicators) identification should be defined upfront and deeply evaluated.

Terms like what and why are not enough. The how is very important as well.

  • What we are going to build
  • Why we are doing that
  • How we are building the solution

Miss one of these key points and the solution will fail miserably.

MPV

Defining the MVP target is needed to be fast delivery something to the market. This is important to have a feedback as well as to keep in mind what are the core concept that canno be disattendend.

KPI

The KPI definition allow to have a monitor, the compass to estimate where the business is, and to apply the right corrections on the original plan.

NOTE

  • During this stage the technical team is not involved (unless to warm-up the tech community)

Project Management

There are a lot of different tools out there.

Some of them that I used, and I was comfortable with. A short list below:

Product Architecture

Design the architecture is not a simple task.

Different companies have different constraints.

For most of them be on the cloud is a must. It couldn’t be otherwise. But there are contexts where On-Prem is an unassailable requirement.

An enterprise level software solution is

  • Clean Architecture patterns
  • Microservice Architecture

DevOps

Source code Versioning

The source code versioning is the repository where different developers store the result of their work. This tool could and should be used even when the development team is composed by few members even only one.

These repositories allow to store projects both in a public and private fashion. The most important one are:

CI/CD (Continuous Integration / Continuous Deploy) (How to build tests and run)

Package manager (How store the artifacts)

The platforms (Where the solution is executed)

The external services (What kind of infrastructure the services are needs)

Software development

  • Backend services
  • Frontend Services
  • Mobile and Embedded
  • Machine learning
  • Data analysis and processing

Backend services

Programming languages

  • C/C++
  • .NET C#
  • html/css
  • kotlin
  • GO
  • Python
  • nodejs
  • Java

Genocs

This is the Genocs entrypoint repo

picoservices

This folder contains the template to build webApi with different languages.

Supported languages are:

  • golang
  • .NET
  • python
  • nodejs

Microservice Patterns

Item .NET Github
devmentors devmentors devmentorssnatch-dev

Clean Architecture

Item .NET Github
devmentors devmentors devmentorssnatch-dev
paulovich paulovich mangacaju

IA and Machine Learning

Item .NET Github
aforgenet aforgenet aforgenet
accord-framework accord-framework accord-framework

Genocs Services's Projects

enterprise-containers icon enterprise-containers

End to end setup containers application using Docker Containers, Kuberneters orcherstrators

face-comparison icon face-comparison

Web Api service with Azure blob storage and Cognitive Services for face comparison

genocs-basket icon genocs-basket

A general-purpose basket handling products based on Masstransit

genocs-form-etl icon genocs-form-etl

An Extract, Transform, Load (ETL) to upload form, process by means of Cognitive services and store on CosmosDB

geo icon geo

This repo contains geographical data

iot-balena icon iot-balena

Hello world reposity for Balena IOT based on Raspberry Pi

langchain-integration icon langchain-integration

This is a walkthrough on using langchain, langlit, integration with Masstransit RabbitMQ and a lot of other stuff.

masstransit-course icon masstransit-course

A step by step example on using the awesome MassTransit Service Bus Library with .NET6

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.