#golang design principles