Skip to content

Instantly share code, notes, and snippets.

View zeroidentidad's full-sized avatar
:shipit:
00:00 ᴢᴇʀᴏ:/~ go run js.go

フ乇丂ひ丂 zeroidentidad

:shipit:
00:00 ᴢᴇʀᴏ:/~ go run js.go
View GitHub Profile
@zeroidentidad
zeroidentidad / LSP-gopls.sublime-settings
Last active June 30, 2024 23:40
SublimeText + LSP-gopls
{
"gopls.env": {"GOMODCACHE":"/home/{user}/go/pkg/mod"}
}
@zeroidentidad
zeroidentidad / middleware.go
Created May 28, 2024 01:06
ejemplos basicos web middlewares
package http
import (
"context"
"log"
"net/http"
"time"
)
func JsonMiddleware(next http.Handler) http.Handler {
@zeroidentidad
zeroidentidad / GO_SOLID.md
Last active May 27, 2024 18:37
SOLID en Go guia basica

1. Single Responsibility Principle (SRP)

Cada módulo o clase debe tener una única responsabilidad o motivo para cambiar. En Go, esto se traduce en mantener las funciones y métodos enfocados en una tarea específica.

Ejemplo:

package main

import "fmt"
@zeroidentidad
zeroidentidad / GOOOP.md
Last active May 27, 2024 19:27
GO OOP idiomatico

Aunque Go no es un lenguaje de programación orientado a objetos (OOP) en el sentido tradicional (como Java o C++), proporciona formas idiomáticas de manejar conceptos comunes de OOP como encapsulación, herencia y polimorfismo. Esta es una guía básica para aplicar principios de OOP en Go de manera idiomática:

1. Encapsulación

En Go, la encapsulación se logra utilizando la visibilidad basada en el caso de la primera letra. Los identificadores que comienzan con una letra mayúscula son exportados (públicos), mientras que los que comienzan con una letra minúscula son no exportados (privados).

Ejemplo:

package main
@zeroidentidad
zeroidentidad / bash-colors.md
Created March 13, 2024 02:13 — forked from JBlond/bash-colors.md
The entire table of ANSI color codes.

Regular Colors

Value Color
\e[0;30m Black
\e[0;31m Red
\e[0;32m Green
\e[0;33m Yellow
\e[0;34m Blue
\e[0;35m Purple
@zeroidentidad
zeroidentidad / expenses.go
Created January 23, 2024 00:46
First class functions example
package expenses
import (
"fmt"
)
// Record represents an expense record.
type Record struct {
Day int
Amount float64
@zeroidentidad
zeroidentidad / diskusage.go
Created September 26, 2023 04:14
get the disk usage of a directory.
package main
import (
"fmt"
"os"
"path/filepath"
)
func main() {
path, _ := os.Getwd()
@zeroidentidad
zeroidentidad / sql1992.txt
Created September 14, 2023 02:52
SQL Standard
This file has been truncated, but you can view the full file.
(This is stale and you may wish to find a more up-to-date copy, but it is preserved here for posterity. Enjoy -- Daria 24 Nov 2017)
@zeroidentidad
zeroidentidad / Dockerfile
Created July 9, 2023 17:11
alpine with go
FROM alpine:latest
RUN apk add --no-cache git make musl-dev go
# Configure Go
ENV GOROOT /usr/lib/go
ENV GOPATH /go
ENV PATH /go/bin:$PATH
RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin

Go Stdlib Interfaces (Selected)

This is not an exhaustive list of all interfaces in Go's standard library. I only list those I think are important. Interfaces defined in frequently used packages (like io, fmt) are included. Interfaces that have significant importance are also included.

All of the following information is based on go version go1.8.3 darwin/amd64.