Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Continúa con el Curso de Go Avanzado

30/30
Recursos

Aportes 11

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

El proyecto es muy interesante, pero necesita mas contexto y tal vez algún diagrama para entender exactamente qué está pasando

Que gran curso, trabajo con Go, los test y POO son cosa de todos los dias, pero el modulo de concurrencia me impresiono y me mostro lo mucho que me falta.

Que buen curso!! Esto de la concurrencia me gusto mucho y mas como lo explico el profesor.

Excelente el curso, me aclaro muchas dudas que me habían quedado del curso básico de GO.

Muy buen curso, Go te da una amplia visión al momento de construir software…

Buen curso, y sobre si es un lenguaje o no orientado a objeto… Desde mi opinión creo que no lo es, puede simular ciertos aspectos pero seria todo.

¡Gracias! Muy buen curso, yo creo que Go si es OO porque funciona igual que otros lenguajes OO pero se implementa de forma diferente. 🐹

Me gusto el curso, quiza más desarrollo al final en el proyecto, pero en general aprendí mucho, le estoy agarrando cariño a GO y me gusto el proyecto final. Sin duda recomendado. La librería estandar viene potente y me doy cuenta que se puede explotar más las capacidades del sistema con este lenguaje que es compilado y que te permite aprovechar los recursos de manera relativamente fácil.

Buen Curso Nestor !
Dio una visión amplia del lenguaje y sus características propias que no comparten otros lenguajes. Me confundo un poco con la concurrencia y considero que con un diagrama puede ayudar a entender la idea principal o sugiriendo algo para practicar la concurrencia.

Lo de los test buenisimos!!

https://gist.github.com/solrac97gr/f08ec5e2cbb805a1ccb4b49e2b51ae2f

func TestGetOneRule(t *testing.T) {
	tests := map[string]struct {
		testSetup      func(m *mocks.MockRuleRepository)
		assertionSetup func(subtest *testing.T, r domain.Rule, e error)
	}{
		"Success get rule": {
			testSetup: func(m *mocks.MockRuleRepository) {
				m.
					EXPECT().
					Get(gomock.Any()).
					Return(domain.Rule{
						ID: "test",
					}, nil)
			},
			assertionSetup: func(subtest *testing.T, r domain.Rule, e error) {
				assert.NotNil(subtest, r, "")
				assert.Nil(subtest, e, "")
			},
		},
		"Error in the repository to get rule": {
			testSetup: func(m *mocks.MockRuleRepository) {
				m.
					EXPECT().
					Get(gomock.Any()).
					Return(domain.Rule{}, errors.New("get rule bla bla"))
			},
			assertionSetup: func(subtest *testing.T, r domain.Rule, e error) {
				assert.Equal(subtest, domain.Rule{}, r, "")
				assert.NotNil(subtest, e, "")
				assert.Contains(subtest, e.Error(), "get rule", "")
			},
		},
	}
	for name, test := range tests {
		t.Run(name, func(subtest *testing.T) {
			ctrl := gomock.NewController(t)
			defer ctrl.Finish()

			ruleRepositoryMock := mocks.NewMockRuleRepository(ctrl)
			clientRepositoryMock := mocks.NewMockClientRepository(ctrl)

			if test.testSetup != nil {
				test.testSetup(ruleRepositoryMock)
			}

			srv := rulessrv.New(ruleRepositoryMock, clientRepositoryMock)
			rule, err := srv.Get("")

			if test.assertionSetup != nil {
				test.assertionSetup(subtest, rule, err)
			}
		})
	}
}

Excelente curso, gracias por una explicación clara y concisa. En mi opinión, Go puede comportarse parcialmente como un lenguaje OO, pero estructuralmente no lo considero OO.