Ardan Labs
Let's Talk
  • GO TRAINING
  • CONSULTING
  • DATA SCIENCE (AI/ML)
  • DESIGN
  • CAREERS
  • BLOG
  • Let's Talk
All Posts
Go Programing

Interface Values Are Valueless

Author image

William Kennedy

March 23, 2018
  • @goinggodotnet

Categories : go-programing Tags : Training  , go  , golang

Introduction I’ve been seeing a lot of question about interfaces lately on Slack. Most of the time the answers are technical and focus on implementation details. Implementation is important to help with debugging, but implementation doesn’t help with design. When it comes to designing code with interfaces, behavior has to be the main focus. In this post, I hope to provide a different way to think about interfaces and how to design code with them.
Continue reading

Focus On Being Precise

Author image

William Kennedy

February 20, 2018
  • @goinggodotnet

Categories : go-programing Tags : Training  , go  , golang

Introduction I was guided for many years to write functions that are generalized and to create layers upon layers of abstraction so things don’t break as business requirements change. That the cost of breaking a function signature, for example, is expensive and something that should be avoided. Therefore, write functions that take more generic parameters or hide things in a receiver or context to be less prone to breakage.
Continue reading

Escape-Analysis Flaws

Author image

William Kennedy

January 22, 2018
  • @goinggodotnet

Categories : go-programing Tags : Training  , go  , golang

Prelude It will be helpful to read this four-part series first on escape analysis and data semantics. Details on how to read an escape analysis report and pprof output have been outlined here. https://www.ardanlabs.com/blog/2017/05/language-mechanics-on-stacks-and-pointers.html Introduction Even after working with Go for 4 years, I am continually amazed by the language. Thanks to the static code analysis the compiler performs, the compiler can apply interesting optimizations to the code it produces.
Continue reading

The Behavior Of Channels

Author image

William Kennedy

October 24, 2017
  • @goinggodotnet

Categories : go-programing Tags : Training  , go  , golang

Introduction When I started to work with Go’s channels for the first time, I made the mistake of thinking about channels as a data structure. I saw channels as a queue that provided automatic synchronized access between goroutines. This structural understanding caused me to write a lot of bad and complicated concurrent code. I learned over time that it’s best to forget about how channels are structured and focus on how they behave.
Continue reading

Interface Semantics

Author image

William Kennedy

July 15, 2017
  • @goinggodotnet

Categories : go-programing Tags : Training  , go  , golang

Prelude If you want to put this post in some better context, I suggest reading the following series of posts, which lay out some other fundamental and relevant design principles: 1) Language Mechanics On Stacks And Pointers 2) Language Mechanics On Escape Analysis 3) Language Mechanics On Memory Profiling 4) Design Philosophy On Data And Semantics In particular, the idea of value and pointer semantics is everywhere in the Go programming language.
Continue reading

For Range Semantics

Author image

William Kennedy

June 27, 2017
  • @goinggodotnet

Categories : go-programing Tags : Training  , go  , golang

Prelude These are good posts to read first to better understand the material presented in this post: Index of the four part series: 1) Language Mechanics On Stacks And Pointers 2) Language Mechanics On Escape Analysis 3) Language Mechanics On Memory Profiling 4) Design Philosophy On Data And Semantics The idea of value and pointer semantics are everywhere in the Go programming language. As stated before in those earlier posts, semantic consistency is critical for integrity and readability.
Continue reading

Design Philosophy On Data And Semantics

Author image

William Kennedy

June 8, 2017
  • @goinggodotnet

Categories : go-programing Tags : Training  , go  , golang

Prelude This is the final post in a four part series discussing the mechanics and design behind pointers, stacks, heaps, escape analysis and value/pointer semantics in Go. This post focuses on data and the design philosophies of applying value/pointer semantics in your code. Index of the four part series: 1) Language Mechanics On Stacks And Pointers 2) Language Mechanics On Escape Analysis 3) Language Mechanics On Memory Profiling 4) Design Philosophy On Data And Semantics
Continue reading

Language Mechanics On Memory Profiling

Author image

William Kennedy

June 1, 2017
  • @goinggodotnet

Categories : go-programing Tags : Training  , go  , golang

Prelude This is the third post in a four part series that will provide an understanding of the mechanics and design behind pointers, stacks, heaps, escape analysis and value/pointer semantics in Go. This post focuses on heaps and escape analysis. Index of the four part series: 1) Language Mechanics On Stacks And Pointers 2) Language Mechanics On Escape Analysis 3) Language Mechanics On Memory Profiling 4) Design Philosophy On Data And Semantics
Continue reading

Language Mechanics On Escape Analysis

Author image

William Kennedy

May 26, 2017
  • @goinggodotnet

Categories : go-programing Tags : Training  , go  , golang

Prelude This is the second post in a four part series that will provide an understanding of the mechanics and design behind pointers, stacks, heaps, escape analysis and value/pointer semantics in Go. This post focuses on heaps and escape analysis. Index of the four part series: 1) Language Mechanics On Stacks And Pointers 2) Language Mechanics On Escape Analysis 3) Language Mechanics On Memory Profiling 4) Design Philosophy On Data And Semantics
Continue reading

Language Mechanics On Stacks And Pointers

Author image

William Kennedy

May 18, 2017
  • @goinggodotnet

Categories : go-programing Tags : Training  , go  , golang

Prelude This is the first post in a four part series that will provide an understanding of the mechanics and design behind pointers, stacks, heaps, escape analysis and value/pointer semantics in Go. This post focuses on stacks and pointers. Index of the four part series: 1) Language Mechanics On Stacks And Pointers 2) Language Mechanics On Escape Analysis 3) Language Mechanics On Memory Profiling 4) Design Philosophy On Data And Semantics
Continue reading
Next

Our Clients

These are some of the companies that we are currently working with or have closely helped in the past.

Ardan Labs

12973 SW 112 ST, Suite 153, Miami FL 33186

E-mail : info@ardanlabs.com

GO TRAINING
  • Ultimate Go
  • Go Fundamentals
  • Web Apps with Go
  • Go Training Events
GENERAL
  • Consulting
  • Data Science (AI/ML)
  • Design
  • Careers
  • Blog
  • Terms / Privacy
Social
  • Instagram
  • Twitter
  • Facebook
  • Github

Ardan labs Copyrights © 2018