Backend Development 5 min read

A Guide to Go Development Tools: golog, shardmap, redis, goconsumer, gobox-demo and Project Organization

This article presents a comprehensive overview of several Go utilities—including golog for logging, shardmap for high‑performance map sharding, a custom redis wrapper, goconsumer for asynchronous queue processing, and the gobox‑demo project template—along with practical advice on structuring controllers, services, and overall project organization for backend development.

360 Tech Engineering
360 Tech Engineering
360 Tech Engineering
A Guide to Go Development Tools: golog, shardmap, redis, goconsumer, gobox-demo and Project Organization

The final session of the Application Programming course shares a collection of Go tools and practical experiences, originally reposted from HULK's technical discussions.

1. golog – A logging library that provides various writers (FileWriter, FileWithSplitWriter, ConsoleWriter, buffer) and formatters (simpleFormater, webFormater, consoleFormater). It supports synchronous logging and an asyncLogger decorator that offloads writes to a dedicated goroutine for improved performance. Project: https://github.com/goinbox/golog

2. shardmap – A sharded map implementation that reduces lock contention by partitioning the map into multiple shards, offering better concurrency than the native Go map or sync.Map. Project: https://github.com/goinbox/shardmap

3. redis – A Redis client wrapper built on redigo, featuring lazy connection initialization, automatic reconnection, connection pooling, pipelining, and transaction support. Project: https://github.com/goinbox/redis

4. goconsumer – An asynchronous consumer framework supporting both ordered and unordered message consumption from various queues (e.g., Kafka, NSQ). It defines consumer, dispatcher (simpleDispatcher, specifyDispatcher), worker, and task components, with a visual architecture diagram. Project: https://github.com/goinbox/goconsumer

5. gobox‑demo – A generic project template that encapsulates the author's Go development insights, demonstrating clean project structure and naming conventions.

The author also discusses organizing controllers and actions into separate files, and structuring services (svc) to avoid overly large files, emphasizing clear naming, layered architecture, and eliminating ambiguous code locations.

In conclusion, the author encourages concise, well‑organized Go projects, inviting feedback on the shared tools and practices.

BackendRedisGologgingConsumerProject Structureshardmap
360 Tech Engineering
Written by

360 Tech Engineering

Official tech channel of 360, building the most professional technology aggregation platform for the brand.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.