EDICIóN GENERAL
415 meneos
17983 clics
La evolución de un Ingeniero de Software [ENG]

La evolución de un Ingeniero de Software [ENG]

La evolución de un ingeniero de software.

| etiquetas: evolución , ingeniero , software , código , desarrollo
Comentarios destacados:                                  
#10 #8 El problema es que haya ingenieros diciendo veinteavo en vez de vigésimo. Ese es el problema.
#8 El problema es que haya ingenieros diciendo veinteavo en vez de vigésimo. Ese es el problema.
#10 Bien dicho. Lo suyo sería referirnos al vigésimo año como anyo[19].
#14 O agno.
#14 #15 #35 Pues yo escribo year[19] ... Por aquello de darle un toque más internacional...
(Delirios de grandeza de pensar que tu código lo va a ver alguien más que tú mismo y puede que algún colega o jefe... si tal)
#15 El código escrito en cualquier idioma que no sea el Inglés hace llorar al Niño Jesús.
#65 ¿Y por qué no código en euskera? :-D
#65: Sino no compila.
Pero los nombres de variables en Español. 80 caracteres, ahí bien descriptivo para que no haya que comentar nada.
#15 Que usais, C?
#14 Yo escribo ano[19] y a tomar por culo... nunca mejor dicho
#14 ¿Utilizar caracteres españoles en el codigo puede dar problemas en java?
Estudio programación y nunca tuve ese problema con netbeans
#90 Java como tal lo soporta perfectamente. El problema está en que tu código siguen siendo ficheros de texto que, si abre alguien con un locale/codificación regionla distinto al de tu máquina, puede decodificarse de otra forma. Vamos, que si el código no sale de tu máquina puedes nombrar las variables en cirílico si quieres, pero si vas a compartir el código no es buena idea.

Si te interesa el tema -> stackoverflow.com/questions/2178348/should-source-code-be-saved-in-utf
#90 No lo hagas. Simplemente no lo hagas.
#90 JAVA debe morir
#90 Sí puede dar problemas, a mi en netbeans/eclipse no me ha dado más problemas que al compartir el código con otra persona el archivo lo abra mal y en vez de salir "más" salgan cosas como "m«as". Si solo era en los comentarios, es una molestía, si era en el código, hay que arreglarlo.

Además, ten en cuenta que cada vez más se usan frameworks, plugins u otro tipo de herramientas externas que tienen que escanear tu código ellos para añadir alguna funcionalidad extra, así que siempre puede fallar algo.

PS: Y como dicen, es un problema de la codificación del archivo de texto y qué codificación espera cada programa que lo lea.
#14 con ese sistema de nomenclatura no se que hay en la variable... Deberia ser iyear[] o syear[] o algo por el estilo
#7 > el año veinteavo

Cc #10  media
#75 UnexpectedTrollInception
#10 un ingeniero jamas se equivoca... Se referia al día 18 y pico
La verdad es que un ingeniero de software, cuanto mas vago, mejor codigo escribe... sin duda.
#2 La eficiencia no es más que una forma avanzada de vagancia.
#12 Java es de lo poco que ha conseguido poner de acuerdo a Richard Stallman y Linus Torvalds. xD
Puto Java...
#9 Amen, hermano.
#9 #11 Tiene sus cosas buenas...
#12 Aparte de que es posible que te funcione en sistemas distintos... no le veo ninguna ventaja, ni a la programación ni al producto final.

C
#28 El secreto está en el gigantesco ecosistema que se creó en su día, perfectamente documentado y mantenido.

Aunque la mayoría de ese ecosistema sea un mamotreto de proporciones astronómicas y su documentación más infumable que la Biblia en versos arameos, es justamente lo que hace que Java siga siendo ampliamente utilizado hoy en día.
#28 Ventajas de Java respecto a C hay unas cuantas: tienes orientación a objetos, contenedores genéricos, te despreocupas de punteros, hay una cantidad ingente de librerías modernas... no sé, en general es bastante más fácil de usar.

Respecto a C++ ya creo que sólo tiene que es algo más fácil de usar, pero más que nada porque tienes muchísimas menos opciones.
#56 Ahora me vas a decir que un programa en VM es mejor que compilado??
#58 No, te voy a decir que "mejor" depende del criterio de evaluación. Y la velocidad de ejecución o el consumo de recursos no son los únicos criterios posibles.
#105 100% de acuerdo. De lo contrario no habría dicho #64.
#58 en terminos de portabilidad, sin duda. En términos de eficiencia, no pero casi. Hace tiempo que java utiliza compilación just-in-time.
#76 ", no pero casi."

Nope. Ya quisiera acercarse, por ejemplo, Minecraft a Minetest con el segundo con el mod Carbone petado de módulos.

Que no, que se dejen de magufadas, que en la vida alcazarán a C++. En un i7 con un SSD no lo notas casi, pero un Core Duo maximiza la ventana del MC contra Minetest, anda, o mejor: En un P4. Ni lo intentes.

Todo el que dice que Java con JIT se acerca a C++ que baje de la nube e imagine un Unreal Engine 4 con "eso".

Todo dicho.
#99 si comparas dos cosas, deben de ser al menos en un campo comparable. Evidentemente C/C++ se come a Java con patatas cuando hace falta utilizar rutinas de bajo nivel optimizandolas para la cpu/gpu objetivo en tiempo de compilación. Pero te aseguro que en programación más generalista la diferencia es despreciable. Y te lo digo como alguien que hasta hace muy poco tiempo defendía tu postura hasta que me lo demostraron.
#58 Un ingeniero que dice que algo es "mejor" o "peor", no es un gran ingeniero.
#95 Amén. Nada es "mejor" ni "peor" sino que algo puede ser "más adecuado" según el caso.
#95 Amen. Empiezan hablando como pajilleros. Quienes eligen java no suele buscar eficiencia sino una velocidad de desarrollo aceptable "despreocupandose" de la portabilidad y viceversa.

Esto es como un arquitecto, para elegir materiales de construcción no siempre elegirá el mismo porque piense que sea "mejor", sino porque es el mas adecuado para las condiciones que va a soportar dentro del presupuesto en cada caso.
#56 Muchísimas menos opciones comparado con qué?
#68 Con C++ (es lo que dice la frase...). Para empezar en Java casi no puedes hacer gestión de memoria, como mucho decirle al GC cuando quieres que pase. Y luego más cosas, como poder marcar las funciones como inline, virtual o const, poder marcar las variables como register o volatile, tienes herencia múltiple, tienes move semantics, tienes el preprocesador (que a veces es útil)... en fin, unas cuantas cosas.
#79 los lenguajes son herramientas... Para algunas cosas es mejor java, para otras C++ y para otras qbasic.
#79 Joe, lo había entendido al reves ^_^U Debe ser cosa de que es viernes por la tarde...
#28 No se que sentido tiene usar C hoy en día. A no ser que estés haciendo software empotrado donde usar C++ no está permitido por temás de seguridad (Software on-board aeroespaciales, por ejemplo), C solo te lastra.

C++11 es una maravilla, el problema es que hay mucha gente que sigue anclada en el "C++ es C con clases", y no.
#12 Franco también hizo muchos pantanos y asfaltó muchas carreteras.
#9 ...y al séptimo día creó groovy:

println "Hello World"
#21 GOTO #9
#9 Pues PHP va por el mismo camino, se va a tardar más en crear la "carcasa" que la lógica de negocio.
#30 La carcasa? Te refieres la parte funcional? Porqué no usar una framework? (recién he descubierto Yii y me gusta un montonazo)
#38, Usar un framework tiene sus ventajas, pero Yii no, por favor... Busca otra cosa, cuanto más pequeña, mejor. De hecho, su creador se ha pasado a Synfony2, lo cual no dice nada bueno ni de Yii, ni de Synfony xD

Ahora en serio, cualquier cosa que te facilite la vida, está bien. Y si se usa ampliamente, mejor para ti, que te da más oportunidades laborales.

Pero una vez que comprendas cómo funciona el cotarro, trata de usar aquello que realmente te haga las cosas más fáciles, y sobre todo, que no te limite.
#54 Tranqui, que ya tengo un tiempo en esto y sé cómo funciona el cotarro. Ahora, lo del creador de Yii (Qiang Xue) no encuentro nada que diga que se ha pasado a Symfony2.
#80, Tienes razón, mi memoria de abuelo cebolleta, que se inventa los recuerdos. Era uno de los 'gurús' de Yii, con su explicación razonada:

weavora.com/blog/2013/03/26/why-we-prefer-symfony2-over-yii-framework/
#54 A mi jefe le dio una temporada por FuelPHP. Ya no es mi jefe y yo ya no programo en PHP.
:-D

Cc. #38
#30 Yo creo que es al reves, cada vez hay más frameworks que te dan ya toda la carcasa hecha y tu vas al grano olvidandote un poco de tareas tediosas como seguridad, gestión de usuarios, permisos, rutas, templates... .
#42 ORGIA DE NOTARIOS!!! :hug: :hug: :hug:
Para lo que me pagan...

Ahora en serio, existe una tendencia absurda a hacer código overengineered. Si necesitas medir tu ego, mejor juega a ver quien mea mas lejos, que luego hay gente que tiene que leer tu código...
#24 Amén.

La de salvajadas que se ven por ahí para hacer cualquier puta irrelevancia donde alguna estrellita del código ha gastado todas las opciones que le ofrecía el lenguaje. Y por supuesto, sin ni un puto test, claro. Las estrellitas del código no escriben tests porque no hacen falta. Ni documentación, que el código "se lee solo" y si no sabes lo que hacen todas esas variables monoletra y sus complicadas operaciones y llamadas a 3 funciones distintas dentro de esa función que se supone que simplemente devuelve un fichero abierto, es porque no eres tan estrellita como ellos.
#61 En el proyecto en el que estoy trabajando ahora he visto una de las mayors aberraciones de mi vida. Un broker (cojo mensaje, distribuyo a otros brokers y si la subscripción casa, se lo mando al subscriptor) implementado con maquinas de estado, runnables por todas partes, factorias y polladas varias. Es como coger el libro de gang of four y implementar X patrones entren o no. Terrible. Lo he tenido que rehacer solo por no ponerme a hacer modificaciones.
#69 {0x1f62d} {0x1f52b}

Lo he tenido que rehacer solo por no ponerme a hacer modificaciones.

Es que es lo que se debe hacer con la basura. Mi procedimiento habitual para tratar con ella es ese. No será la primera vez ni la última que heredo código y, tras echar un vistazo y ver que es una puta mierda, hago unos cuantos tests (que el menda de antes no ha hecho) para comprobar que cumple lo que promete y acto seguido todo fuera y a hacerlo como toca.
#77, no es por trolear, pero ¿ quién te asegura que los tests testan lo que tienen que testar ? ¿ No es acaso el test otro código que a su vez requeriría otro test, para cumplir con el mismo principio que promete ?

Ahí lo dejo.
#93 El test es un codigo extremadamente sencillo que simplemente llama al código a testear pasándole unos parámetros fijos y comprueba que se devuelven los valores esperados.

Claro que los tests podrían estar mal hechos, pero entonces te darías cuenta enseguida de que no estás testeando bien lo que quieres comprobar, porque entonces tendrías errores en vez de fallos. Los tests bien escritos tienen o éxitos o fallos, nunca errores. Por eso no es necesario hacer tests de tests, porque al ejecutarse "se testean solos": si dan error, están mal hechos.
#24 #61 #69, #81 ... etc.

No digo que muchas veces lo que decís no sea cierto pero muchas otras lo que te encuentras es otras cosas y es conveniente tener una actitud crítica con uno mismo.
- Que no es cuestión de ego, si no de formación. Hay gente que aprendió C y no salieron de "if", "for" y con suerte "while". En estos casos, utilizar cualquier herramienta/librería/paradigma diferente te convierte en alguien que escribe código que nadie entiende. La idea es…   » ver todo el comentario
#136 Una de las cosas que más me encuentro es que todo el mundo es "muy listo" y siempre recibe código de idiotas

Yo intento no pensarlo, por que la mayor parte de las ñapas, códigos ofuscados, con baja performance, etc, no suelen ser culpa del programador. Pienso que al pobre tipo quizá le asignarón un proyecto donde desconocia la técnologia, con arquitectura inexistente, los requisites cambiando como quien cambia de bragas, estaba al 30% en otro proyecto y mientras…   » ver todo el comentario
#61 Bueno. Si no entiendes un código es porque es una mierda, no porque no haya suficientes comentarios.

Por cierto, en general, un programador que escribe un código que sólo entienden programadores senior es un mal programador y le está haciendo una putada a su empresa.
#109, otra ventaja clara de los tests que se me ha olvidado mencionar, es que te suele forzar a diseñar código desacoplado. Eso sí es bueno, aunque hay otras maneras de conseguir el mismo objetivo.

Sobre el resto de lo que comentas en #61, chapó. Estoy aburrido de ver gente con un ego casi antinatural retorcer el lenguaje para utilizar siempre 'lo último de lo último', pasándose por el forro 500 buenos principios y el dictado de la experiencia, y luego darse de morros una y otra vez sin…   » ver todo el comentario
#7 Qué optimista. El año veinteavo un ingeniero no será el puto amo sino que estará despedido, porque cobra mucho y la empresa puede poner en su lugar al hijo/yerno del gerente. Total, solo tiene que enviar ese mail que dices al becario.
#7 y #8: se dice vigésimo.
10 CLS
20 PRINT "¡Hola Mundo!"
30 GOTO 20
#31 aggghhh mis ojos !!! BASIC :-S . Nooo por favor.
Real como la vida misma. Yo cada vez hago más ñapas directamente en código por pura desidia.
#6 Yo también. Ley del mínimo esfuerzo.
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
:troll:
criaturicas...

000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. HELLOWORLD.
000300
000400*
000500 ENVIRONMENT DIVISION.
000600 CONFIGURATION SECTION.
000700 SOURCE-COMPUTER. RM-COBOL.
000800 OBJECT-COMPUTER. RM-COBOL.
000900
001000 DATA DIVISION.
001100 FILE SECTION.
001200
100000 PROCEDURE DIVISION.
100100
100200 MAIN-LOGIC SECTION.
100300 BEGIN.
100400 DISPLAY " " LINE 1 POSITION 1 ERASE EOS.
100500 DISPLAY "Hello world!" LINE 15 POSITION 10.
100600 STOP RUN.
100700 MAIN-LOGIC-EXIT.
100800 EXIT.
#63 Madredelamorhermoso. Pobrecitos los que tenían que programar con esto. Que es, por cierto?
#82 yoksetioxdxd script
#82 Es COBOL, y sigue siendo uno de los lenguajes más utilizados por la banca.
#97 Tiene que ser "apasionante" programar con eso... :-S
#82 cobol. Y programé con él hasta que me sangraron los dedos. Después de esoel Java te parece una cosa marciana
#63 Qué tiempos... en el fondo al menos las instrucciones en COBOL son legibles.
#91 sobre todo su identación a fuego jajajja
#63 no puedo leer ese código sin pensar con voz robótica y venirme a la cabeza robocop o terminator
Los que no son ingenieros.

void main()
{
printf("Hello world\n");
}

¿Para qué necesitas una clase para imprimir "hola mundo"?
#16 Porque en Java no hay otra forma de hacerlo.
#21: ¿Y para qué necesitas Java? :-P
#16 Para qué necesitas una función?
#16 Y el #include <stdio.h> ?
Sin int ni return para el SO ?!? :-O

Suspenso !! Con un 4,99 xD
#34 ¿C no devuelve "return 0;" por defecto, en caso de omitirlo en la función "main"?

Pregunto, porque C++ sí que sé que lo hace...
#51 que yo sepa no ... y creo que C++ tampoco ... a no ser que lo haga auto el compilador.

Aún así , excusas no me vale :-O
xD
#59 C++ sí que devuelve por defecto "return 0;" si el código no especifica un "return" en la función "main".

The body of the main function does not need to contain the return statement: if control reaches the end of main without encountering a return statement, the effect is that of executing return 0;.

en.cppreference.com/w/cpp/language/main_function
#72 Pues no lo sabia :-) . Bueeeno, tu ganas, lo subo a 4,998 .
#74 Apruebe a mi colega, que el chaval lleva todo el curso estudiando :troll:
#34 #72 C también devuelve return 0 por defecto si no hay retorno explícito. Concretamente a partir de C99. Eso sí, para ello la función main debe ser básicamente de tipo int, si no te dará warning. Así que en realidad ni pa uno ni pa otro (?).


P.D.: Por si alguien tiene dudas:
If the return type of the main function is a type compatible with int,areturn from the
initial call to the main function is equivalent to calling the exit function with the value
returned by the main function as

…   » ver todo el comentario
y los diveros son

PROGRAM Hola Mundo;
PRIVATE fuente1;
BEGIN
fuente1 = load_fnt("help/help.fnt");
write(fuente1, 160, 100, 4, "Hola Mundo");
LOOP
FRAME;
END
END

wass... que no se quede DIV atras :troll:
#18 Qué recuerdos.
#! /bin/bash
echo "hello world"
#41 @echo Hello world

Me encanta la simplicidad del scripting de cmd para según qué cosas :-P
#70 cat
Hello world
Esto es un alegato contra la POO?
La evolución de un ingeniero de software.
#1 Doy fe de que es cierto :pagafantas:
#23 Doy fe de que has dado fe de ello.:troll:
#23 Falso. Ahora usan frameworks nada mas salir de la carrera y miran por encima del hombro al que lo hace sencillo.
#1 ¿Mismo nick que Forocoches y Erepublik?
#86 Por supuesto, shurmano ;)
#86 #89 , me encanta encontrarme shurs por ahí jajajajajaja.
#46 No sé si viene muy a cuento, pero me flipa muchísimo que un programador que no sea capaz de ganar más de 1200€ al mes en España se piense que puede ganar más en el extranjero. Pero mucho más me flipa que igual tiene razón!
Hasta el programador más mediocre se puede ganar bien la vida en el extranjero.
El mejor es el LOLCODE:

HAI 1.2
CAN HAS STDIO?
VISIBLE "HAI WORLD!!!1!"
KTHXBYE
#100 Yo cambiaría ese hai world por un "ola k ase, chau"
Esto es más viejo que el cagar.
Ésto es como muy 2014...
#4 2013 para ser más exactos, pero podía haber sido escrito ayer mismo y te hubiera dado igual. Es tecnología, no actualidad ;)
#5 Exacto, solo que en lugar de utilizar Java se utilizará otra lenguaje pero es lo mismico.

Lo bonito de la programación es su facilidad para hacer que te desconectes del mundo y solo pienses en como puñetas escribir el código para que el programa haga lo que tú quieres que haga.
Sobre el meneo, real como la vida misma, yo nunca he abandonado la doctrina KISS (es.wikipedia.org/wiki/Principio_KISS), y según va pasando el tiempo, creo ha sido la mejor decisión de mi vida.

Edito, en inglés viene mucho más completo: en.wikipedia.org/wiki/KISS_principle
#55 Yo a veces veo las cabriolas que hacen algunos para cosas super chorras y me quedo pensativo ¿será que soy muy simple y ellos saben algo que no sé? Luego cuando veo que lo mío hace lo mismo de formas mucho más sencillas (y por lo general más eficientes) me quedo tranquilo.

Le tendencia a la sobreingeniería y sobre todo a la pose (se nota mucho por el uso excesivo de jerga y circunloquios) es exagerada en este mundillo.

Cada uno que pierda el tiempo como quiera, pero personalmente, KISS.
Ésto era simpleza:

10 PRINT "Hello World!"
END
Ingenebrio.
Print 'hello world'. Python rules
#98 No. Al quinto año todo es Java, o se le parece.
Aficionados, todo el mundo sabe que el mejor código está basado en patrones :roll:

taskinoor.wordpress.com/2011/09/21/the-abuse-of-design-patterns-in-wri
Justamente ayer cree un hello world son diferentes archivos todo en uno.

pastebin.com/TA8D1CV4

:shit:
#48 ¿#pragma once?

Eso no es standard!
#87 Nenaza :troll:
Saes
True Story  media
Es exáctamente asi. Miro mis programas de c++ y me identifico totalmente. Hoy para escribir 'class' tengo que tener una buena lista de motivos
#78 Me temo que es una moda que trajo Java, cuando aparentemente los objetos eran buenos porque sí, aunque no hiciesen falta para nada. Era la época en la que para que un lenguaje fuese "In" tenía que decir que todo era un objeto (lo cual siempre acababa siendo mentira, por otra parte).

Luego acababas una ristra de clases y subclases para hacer auténticas chorradas que en otros lenguajes llevaban 3 líneas (y por tanto eran mucho más fáciles de depurar y había muy pocos puntos de…   » ver todo el comentario
The fifth yeaar, es puro toc.
Yo prefiero algo asi como:

------ HelloWorldTest.java
import org.junit.Test;
import org.mockito.Mockito;
import java.io.PrintStream;

public class HelloWorldTest {

@Test
public void test_hello_world_is_printed() {
PrintStream output = Mockito.mock(PrintStream.class);
HelloWorld hw = new HelloWorld(output);
hw.sayPhrase();
Mockito.verify(output).println("Hello world!");
}
}
------- HelloWorld.java
import java.io.PrintStream;

private class HelloWorld {

private…   » ver todo el comentario
#88 Las clases en java no pueden ser privadas (a no ser que sean inner, que no es este caso).

En lugar de mockito, yo passaría mi propia inner class que extendiera PrintStream, un fail() en cada método que no esperamos que se llame y un asserEquals en println(String). Así el test es mucho más robuto, ya que con mockito si se llama a otros métodos no tienes forma de saberlo y devolveran valores por defecto como 0, false etc.. Lo cual introduce bugs divertidos de debuggear. Además utiliza…   » ver todo el comentario
¿Y los tests? Esperaba que el último caso fuese algo como: HelloWorldTest + HelloWorld.
HOLA MUNDO
(define (displayln arg)(display arg)(newline))
(define hello (lambda () (displayln "hello"))
(hello)
#26 Lo digo con todo respeto y camaraderia; eres un cliche personificado.
El return en programas tan básicos no hace falta.

pd. Lo siento le he dado al botón de negativo sin querer. Te lo compenso.
#67 Me lo dices a mi ? Bahh no pasa nada.
No soy de la misma opinión. Aunque sea básico, que en eso no te contradigo, crea costumbre y es muy útil para sistemas tener esos códigos de salida (me he descubierto xD ).

Yo les meto returns ( exit, quit ... ) hasta a los pseucodigos.
Pues no lo acabo de ver... todo depende de las necesidades. Si sólo necesitas que imprima "Hello World" ningún desarrollador en su sano juicio pasaría por estas etapas de complejidad.
#66 Y aún así, todos pasan. ¿Será locura transitoria? ;)
Muy viejo.
«12
comentarios cerrados

menéame