Skip to content

Instantly share code, notes, and snippets.

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

フ乇丂ひ丂 zeroidentidad

:shipit:
00:00 [ᴢᴇʀᴏ]~ go run .
View GitHub Profile
@zeroidentidad
zeroidentidad / go.SliceTricks.md
Last active January 18, 2023 03:06
Go Slice Tricks Cheat Sheet

Since the introduction of the append built-in, most of the functionality of the container/vector package, which was removed in Go 1, can be replicated using append and copy.

Here are the vector methods and their slice-manipulation analogues:

AppendVector

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.

@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
@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 / 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 / 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 / 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 / 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 / GO_SOLID.md
Last active September 17, 2025 20:46
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 / 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 {