Historias de developers
Rate it:
Open Preview
Kindle Notes & Highlights
Read between January 13 - December 7, 2020
51%
Flag icon
deja que la gente se autogestione y busq...
This highlight has been truncated due to consecutive passage length restrictions.
51%
Flag icon
la mayoría de objetivos se alcanzan a base de esfuerzo, dedicación y trabajo en equipo.
51%
Flag icon
Compartid vuestras inquietudes y vuestros logros… Merece la pena levantarse cada día pensando que tienes el mejor trabajo del mundo.
52%
Flag icon
objetivo. Al contrario que para un ataque del tipo anterior, en el caso de querer comprometer un software mediante el uso de malware con características de troyano, será necesario mantener la integridad del objetivo para poder realizar las actividades programadas
55%
Flag icon
Se dice que un lenguaje es Turing completo si el lenguaje tiene la misma capacidad computacional que la máquina universal de Turing. Dicho de otro modo, un lenguaje es Turing completo si puede computar todo lo computable.
55%
Flag icon
Cualquier lenguaje de programación moderno tiene una multitud de conceptos que van más allá del if y el for, como el polimorfismo paramétrico, la orientación a objetos, los tipos perezosos, la metaprogramación y una larga lista de otras características que hacen que los programas sea más legibles, mantenibles y compactos.
56%
Flag icon
En Python las comparaciones pueden encadenarse
56%
Flag icon
list comprehensions
56%
Flag icon
expresiones generadoras
56%
Flag icon
El propio inventor del puntero a null, Tony Hoare, dijo que la creación del puntero a null es su “error del billón de dólares”.
71%
Flag icon
el cómo diseñes tu aplicación afectará notablemente al consumo de batería, calidad de servicio de la red y un sin fin de problemas a nivel radio que, finalmente, repercutirá en tus usuarios.
71%
Flag icon
cómo la red móvil establece conexiones radio para transmitir tus paquetes IP y el por qué es tan importante conocer esto para mejorar el rendimiento de tu aplicación.
71%
Flag icon
Los desarrolladores tienen dos caminos para recuperar esta información:
71%
Flag icon
Polling: Periódicamente solicitar la información al servidor. Push: El servidor envía la información al cliente cuando está disponible.
75%
Flag icon
JavaScript está basando en eventos y callbacks: úsalos y aprovéchate de ellos, piensa como lo que son: elementos diferenciales del lenguaje. Node.js es no bloqueante, orientado a eventos y con un montón de librerías,
75%
Flag icon
RabbitMQ es un sistema de colas muy potente y muy versátil. Y está escrito en lenguajes funcionales,
David
RabbitMQ tiene que ser bien configurado para que rinda de forma excelente: elige tu mejor opción de entrega de mensajes, usa los topics (suscripciones a temas), prueba, juega, diviértete y encuentra la mejor solución. Además, te recomendamos que en vez de realizar sólo una sola conexión con RabbitMQ, hagas varias en cada proceso, y en diferentes momentos (espera milisegundos), porque hay problemas con conexiones concurrentes muy rápidas.
75%
Flag icon
No temas investigar. Pégate con la tecnología. Invierte tiempo en cosas que, probablemente, vayan a mejorar lo que tú tienes montado. Haz pruebas, falla y vuelve a intentarlo. Pregunta a gente que sepas que ha estado trabajando con estas tecnologías. Y sobre todo, piensa a lo grande.
76%
Flag icon
la naturaleza real de desarrollo de software no suele ser bien comprendida por las personas que participan, gestionan y ejecutan el proyecto de desarrollo software. Se tiende, sin querer, a intentar sistematizar el desarrollo de software con el fin de hacerlo predecible, cuando precisamente es todo lo contrario: es incierto y complejo.
76%
Flag icon
Siempre que los humanos se enfrentan a problemas en entornos con dinámicas complejas, como es el caso del desarrollo software, es necesario intercambiar conocimiento e interpretar información de una forma creativa, tanto del problema a resolver como de sus posibles soluciones. Por un lado, las interpretaciones de los humanos suelen ser subjetivas, basadas en su conocimiento y experiencia. Por otro, en muchas ocasiones las fuentes de información acerca del problema a resolver o su solución son ambiguas. Todo ello son causas de incertidumbre.
77%
Flag icon
el desarrollo de software se ha entendido como un proceso que ocurre después de que haya una especificación o definición de dicho software, primero a nivel de usuario o externo (Use Cases, User Experience), luego a nivel interno (arquitectura, análisis y diseño del software) y finalmente la construcción o síntesis del software que viene dirigida por la definición previa. Esta construcción incluye la programación, testing y despliegue del software.
77%
Flag icon
solo hay una circunstancia en la que el desarrollo de software se puede predecir, por tanto, estimar con cierta precisión: cuando se trata de desarrollar un sistema que se ha construido previamente varias veces por el mismo equipo y en un contexto similar.
78%
Flag icon
No sólo se trata de que el software se ejecute y cumpla con lo esperado en cuanto funcionamiento, sino que la forma en la que está escrito y ejecuta cierta funcionalidad también importa. Es una cuestión del diseño de la estructura del código y de su comportamiento temporal en ejecución, y es aquí donde se aplican prácticas y paradigmas de desarrollo de software.
78%
Flag icon
un programador necesita programar y ejecutar en la dimensión del tiempo el programa, para asegurar que funciona como espera y desea. En lugar de percibir el funcionamiento de un programa por los sentidos, como ocurre con la música, la percepción del comportamiento y estructura del software es más sutil. Requiere realizar pruebas de ejecución con la máquina y el software, revisar cómo está escrito y estructurado el código, y sobre todo, entender su funcionamiento temporal con la mente.
78%
Flag icon
Varios miembros de un equipo integran sus diferentes realizaciones software, generándose ciclos de Intención-Realización entre varios programadores, que requieren de test de integración para verificar que las diferentes partes del sistema funcionan como se esperan en su conjunto.
78%
Flag icon
La arquitectura software proporciona un marco común e integridad conceptual al desarrollo del sistema, para que el trabajo de todos los programadores pueda funcionar como un todo
78%
Flag icon
un equipo de desarrollo sería como una banda de jazz, donde cada músico interpreta una melodía encima de una armonía o base musical que alguien previamente ha compuesto. Esa armonía proporciona una estructura, integridad y base temporal musical que permite que las interpretaciones de los distintos componentes de la banda suenen bien. La arquitectura del software sería entonces equivalente a la armonía musical.
78%
Flag icon
Un product owner parte de una definición intencional de cómo tiene que funcionar el software desde el punto de vista del usuario
78%
Flag icon
Si el funcionamiento del sistema no es como se espera, se ejecuta un nuevo ciclo de Intención-Realización, hasta que el what-how del product owner emerge.
78%
Flag icon
A nivel de “arquitectura” del sistema, también es necesario ejecutar ciclos de Intención-Realización, para descubrir el what-how de la base software que proporciona integridad al desarrollo del sistema. Esto ocurre como una parte más del desarrollo de software,
78%
Flag icon
En la evolución de los ciclos de Intención-Realización se suelen mezclar, consciente o inconscientemente, dos tipos de desarrollo:
78%
Flag icon
Desarrollo iterativo:
78%
Flag icon
Desarrollo incremental:
79%
Flag icon
En los últimos años, han surgido varios métodos y prácticas ágiles para ayudar en este propósito, pero lamentablemente la forma en la que se han definido algunos métodos “agiles” y peor aún, cómo se han aplicado por algunas compañías, han degenerado de nuevo en procedimientos de trabajo sistemáticos, que dificultan, a la práctica, el desarrollo de software.
79%
Flag icon
El desarrollo de software es incierto y complejo.
79%
Flag icon
El desarrollo de software se basa en la creatividad y procesos mentales de transformación de conocimiento que realizan humanos acerca del what-how del sistema, tanto desde un punto de vista externo como desde uno interno al sistema, considerando a la vez dimensiones estructurales y de comportamiento temporal.
79%
Flag icon
Tanto la funcionalidad como la arquitectura del s...
This highlight has been truncated due to consecutive passage length restrictions.
79%
Flag icon
La única medida de progreso es el working software
79%
Flag icon
Los planes, fechas, definiciones de producto, diseños de experiencia del usuario y arquitecturas han de ser intencionales.
79%
Flag icon
Cuanto más cortos sean los ciclos Intención-Realización, más rápido se puede hacer converger el software hacia la solución esperada
79%
Flag icon
Es esencial disponer de buenos creativos de software, en especial de buenos programadores.
79%
Flag icon
Todas las personas que trabajan en un proyecto/producto software deberían entender el desarrollo software y su idiosincrasia.
79%
Flag icon
Los equipos de trabajo deberían ser pequeños, alrededor de 5-7 personas.
79%
Flag icon
Hay que mantener a raya la complejidad accidental,
79%
Flag icon
Adaptar los métodos y prácticas existentes en la industria al equipo, no al revés.
79%
Flag icon
cómo gestionar la incertidumbre
79%
Flag icon
vivimos en entornos empresariales que demandan predictibilidad):
79%
Flag icon
Limitar los objetivos del software:
79%
Flag icon
Evitar comprometerse demasiado pronto con el contenido de una release
79%
Flag icon
Añadir iterativamente e incrementalmente calidad a las características del software.
79%
Flag icon
ciclo tras ciclo, refinar su calidad y funcionamiento.