No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Continúa con el Curso de Go Avanzado

30/30
Recursos

Aportes 17

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

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.

Buen curso, mejoraría el apartado del proyecto, pero en general estuvo muy bien

En general creo que es buen curso, pero muchas veces no se entiende de manera sencilla que es lo que estamos solucionando me refiero a mayormente todo lo referente a concurrencia y canales, por lo menos yo que vengo desde nodejs a veces me pierdo …

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

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

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.

NO me gusto la explicacion, el profesor escribia las lineas de codigo, pero no explicaba porque se hacian de esa manera tampoco daba ejemplos suficientemente claros. : (, : (

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…

Muy buen curso! El único detalle sería que el profesor debe indicar lo que estamos solucionando, ser más específico de que harán ciertas variables antes de codificar. Un ejemplo visual podría ayudar. Logré entender el funcionamiento del código del proyecto después de analizarlo muy detalladamente. Los Workers tienen referencia al canal WorkerPool del Dispatcher para enviarle al Dispatcher su jobQueue (w.WorkerPool <- w.JobQueue // en la función Start), de forma que el Dispatcher reciba el jobQueue del Worker ( workerJobQueue := <-d.WorkerPool // en la función Dispatch) y le pueda asignar el job que recibió (case job := <-d.JobQueue: // en la función Dispatch) por medio de (workerJobQueue <- job // en la función Dispatch)
El curso esta muy bueno pero hay clases donde le falta mayor explicacion, como que solo esta explicando el codigo pero no el objetivo del codigo, las dos ultimas clases me parece que fue muy apuradas para algo tan esperado

Aprender sobre realizar tests en Go es excelente, me gustó mucho la forma de realizarlos, aunque espero que en los cursos de Go avanzado estén ejemplos de tests obteniendo datos de una base de datos, aunque está excelente la forma en que lo planteas, Néstor, de verdad, este es un curso totalmente recomendable

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.