1655734042
¿Qué es un culto de carga?
Se remonta a la Segunda Guerra Mundial. Como parte del esfuerzo bélico, las fuerzas aliadas tuvieron que construir bases de suministro en lugares estratégicos. Algunos de estos lugares eran islas remotas que nunca se habían topado con las innovaciones tecnológicas del siglo XX. Eso significa que los aviones, los jeeps y especialmente las cajas de carga que se lanzaban en paracaídas desde los aviones parecían magia.
Naturalmente, las tribus indígenas que vivían en esas islas estaban extasiadas. ¿A quién no le gusta la magia y la comida gratis?
El problema comenzó cuando terminó la Segunda Guerra Mundial (no es una frase que escuche todos los días).
Las tropas se fueron y la comida dejó de llover del cielo. Los líderes de la tribu deben haberse reunido para descubrir cómo recuperar la magia. ¿Su solución?
Recrea el escenario que acompañó a los sucesos mágicos antes mencionados. Después de todo, hay causa y efecto en el mundo.
Lamentablemente, eso no funcionó. Aparentemente, construir aviones de bambú no hace que la comida caiga del cielo.
El concepto se resume muy bien en esta excelente cita de Feynman:
“En los Mares del Sur , hay un culto de carga de personas. Durante la guerra, vieron aterrizar aviones con muchos buenos materiales, y querían que sucediera lo mismo ahora. Así que hicieron arreglos para imitar cosas como pistas de aterrizaje, poner fuegos a lo largo de los lados de las pistas, hacer una cabaña de madera para que se sentara un hombre, con dos piezas de madera en la cabeza como auriculares y barras de bambú que sobresalían como antenas. él es el controlador, y esperan a que aterricen los aviones.
Estaban haciendo todo bien. La forma es perfecta. Se ve exactamente como se veía antes. Pero no funciona. No aterrizan aviones. Entonces, llamo a estas cosas ciencia de culto de carga, porque siguen todos los preceptos aparentes y formas de investigación científica, pero les falta algo esencial, porque los aviones no aterrizan”. —Richard Feynman
Programación de culto de carga
Entonces, hemos terminado con la lección de historia. El único problema es que la historia tiende a repetirse. Espero como el infierno que no estemos al borde de la Tercera Guerra Mundial, pero Cargo Cults se ha extendido por todas partes, incluso en los reinos de la ingeniería de software.
En pocas palabras, significa hacer cosas sin entender realmente por qué.
Estoy seguro de que te has topado con estos casos e incluso has participado en ellos tú mismo. Analicemos algunos ejemplos comunes.
En algún momento de tu carrera, probablemente copiaste y pegaste el código de otra persona. Sé que lo hice. No voy a discutir el plagio, así que supongamos que el código está destinado a compartirse libremente.
Y, de hecho, en cierto sentido, cada vez que usa una biblioteca, "copia y pega" su código y lo usa como parte de su base de código. Eso aún podría generar problemas , pero eso se considera legítimo. Las bibliotecas están destinadas a ser utilizadas por otras personas. Los ingenieros que lo diseñaron trabajaron arduamente para hacerlo accesible y lo más libre de errores posible.
Los problemas surgen cuando copia y pega desde alguna respuesta de desbordamiento de pila, o desde otras partes en su base de código, sin tener la menor idea de lo que realmente está haciendo ese código. Funcionó para esa persona, así que ¿por qué no iba a funcionar para ti?
Bueno, eso es pensamiento Cargo-Cult. Estás lidiando con el escenario (el código parece similar) sin comprender realmente la causa raíz (cómo se usa en ese contexto particular).
Digamos que logras terminar la tarea. El código funciona, obtuviste el premio (carga), pero luego las circunstancias cambian. Aparece una nueva solicitud, por lo que debe modificar ese código que realmente no entendió. Y entonces te das cuenta: el avión está hecho de bambú. Su código no es el verdadero negocio.
Abusar de la herencia en programación orientada a objetos
La primera vez que aprendes sobre la herencia, parece mágico.
Con menos de una línea de código, puede obtener casi todas las propiedades y funciones de la clase principal. Y no me hagan empezar con el polimorfismo, eso es mágico. Lo único que no te enseñan en la escuela es que la herencia introduce un acoplamiento muy estrecho.
Cada vez que heredas de una clase, creas una dependencia muy fuerte en su implementación concreta. Peor aún, cada usuario de su clase tiene una dependencia transitiva de la clase base. Eso significa que si alguien cambia la clase base, que incluso podría pertenecer a una biblioteca sobre la que no tiene control, su código puede romperse. Y eso significa que todas las clases que dependen de su clase también pueden romperse, eso no es fácil, especialmente si sucede al final de su semana laboral.
Por lo tanto, es necesario pensar detenidamente antes de introducir la herencia. Debe considerar tanto los pros como los contras de la herencia, y averiguar si su caso de uso específico realmente lo justifica. La mayoría de las veces, debería favorecer la composición . En este contexto, recomiendo leer esta discusión muy interesante, comenzando con una respuesta del propio tío Bob .
Seguir ciegamente las “mejores prácticas”
El último ejemplo que voy a dar es un poco más específico. Está relacionado con el código de copiar y pegar, pero es mucho más elusivo. Se trata de usar código/anotaciones que no entiende completamente, porque es la "mejor práctica".
Un buen ejemplo es el uso desordenado de la anotación transaccional en aplicaciones que usan Spring.
Parece que mágicamente resuelve algunos errores, por lo que la gente piensa (y algunos probablemente incluso afirman abiertamente) que es una buena práctica usarlo todo el tiempo.
Lo complicado de esto es que el 90% de las veces tendrán razón.
Los errores se resuelven y la carga sigue cayendo en paracaídas desde el aire.
Todo el mundo está contento hasta que algo cambia y surge un error de producción con toda su majestuosidad. Mira el siguiente ejemplo furtivo:
@Transactional
public void changeName(long id, String name) {
User user = userRepository.getById(id);
user.setName(name);
if (StringUtils.isNotEmpty(name)) {
userRepository.save(user);
}
}// All rights reserved to this fantastic article
Un ingeniero con buen ojo puede ver que hay algo sospechoso aquí. ¿Por qué establecer el nombre antes de validar?
Sin embargo, un revisor de código apresurado puede pasar por alto esto, y si no está familiarizado con la anotación transaccional, podría pensar que no se hizo daño.
Y luego comienza a ver registros sobre registros de usuarios con nombres vacíos. Mierda, algo debe estar mal, ¿es esto un ataque cibernético?
No, es solo nuestra querida anotación transaccional haciendo su trabajo.
Verá, hay otro efecto secundario pasado por alto de esta anotación: cada entidad declarada en su alcance está en un estado administrado. Por lo tanto, cada cambio que realice en este ámbito se conserva automáticamente en la base de datos, incluso sin llamar explícitamente a "guardar".
En este caso, significa que está guardando los registros independientemente de si la validación tuvo éxito o no.
Cómo evitar la programación de Cargo Cult
Algo de esto puede parecer un conocimiento común trivial. Pero recuerde, el conocimiento común no siempre es una práctica común.
Sea consciente de su trabajo y pase más tiempo aprendiendo las complejidades de su oficio. Estaras contento de haberlo hecho.
Esta historia se publicó originalmente en https://betterprogramming.pub/are-you-a-cargo-cult-programmer-be361217c030
1655734042
¿Qué es un culto de carga?
Se remonta a la Segunda Guerra Mundial. Como parte del esfuerzo bélico, las fuerzas aliadas tuvieron que construir bases de suministro en lugares estratégicos. Algunos de estos lugares eran islas remotas que nunca se habían topado con las innovaciones tecnológicas del siglo XX. Eso significa que los aviones, los jeeps y especialmente las cajas de carga que se lanzaban en paracaídas desde los aviones parecían magia.
Naturalmente, las tribus indígenas que vivían en esas islas estaban extasiadas. ¿A quién no le gusta la magia y la comida gratis?
El problema comenzó cuando terminó la Segunda Guerra Mundial (no es una frase que escuche todos los días).
Las tropas se fueron y la comida dejó de llover del cielo. Los líderes de la tribu deben haberse reunido para descubrir cómo recuperar la magia. ¿Su solución?
Recrea el escenario que acompañó a los sucesos mágicos antes mencionados. Después de todo, hay causa y efecto en el mundo.
Lamentablemente, eso no funcionó. Aparentemente, construir aviones de bambú no hace que la comida caiga del cielo.
El concepto se resume muy bien en esta excelente cita de Feynman:
“En los Mares del Sur , hay un culto de carga de personas. Durante la guerra, vieron aterrizar aviones con muchos buenos materiales, y querían que sucediera lo mismo ahora. Así que hicieron arreglos para imitar cosas como pistas de aterrizaje, poner fuegos a lo largo de los lados de las pistas, hacer una cabaña de madera para que se sentara un hombre, con dos piezas de madera en la cabeza como auriculares y barras de bambú que sobresalían como antenas. él es el controlador, y esperan a que aterricen los aviones.
Estaban haciendo todo bien. La forma es perfecta. Se ve exactamente como se veía antes. Pero no funciona. No aterrizan aviones. Entonces, llamo a estas cosas ciencia de culto de carga, porque siguen todos los preceptos aparentes y formas de investigación científica, pero les falta algo esencial, porque los aviones no aterrizan”. —Richard Feynman
Programación de culto de carga
Entonces, hemos terminado con la lección de historia. El único problema es que la historia tiende a repetirse. Espero como el infierno que no estemos al borde de la Tercera Guerra Mundial, pero Cargo Cults se ha extendido por todas partes, incluso en los reinos de la ingeniería de software.
En pocas palabras, significa hacer cosas sin entender realmente por qué.
Estoy seguro de que te has topado con estos casos e incluso has participado en ellos tú mismo. Analicemos algunos ejemplos comunes.
En algún momento de tu carrera, probablemente copiaste y pegaste el código de otra persona. Sé que lo hice. No voy a discutir el plagio, así que supongamos que el código está destinado a compartirse libremente.
Y, de hecho, en cierto sentido, cada vez que usa una biblioteca, "copia y pega" su código y lo usa como parte de su base de código. Eso aún podría generar problemas , pero eso se considera legítimo. Las bibliotecas están destinadas a ser utilizadas por otras personas. Los ingenieros que lo diseñaron trabajaron arduamente para hacerlo accesible y lo más libre de errores posible.
Los problemas surgen cuando copia y pega desde alguna respuesta de desbordamiento de pila, o desde otras partes en su base de código, sin tener la menor idea de lo que realmente está haciendo ese código. Funcionó para esa persona, así que ¿por qué no iba a funcionar para ti?
Bueno, eso es pensamiento Cargo-Cult. Estás lidiando con el escenario (el código parece similar) sin comprender realmente la causa raíz (cómo se usa en ese contexto particular).
Digamos que logras terminar la tarea. El código funciona, obtuviste el premio (carga), pero luego las circunstancias cambian. Aparece una nueva solicitud, por lo que debe modificar ese código que realmente no entendió. Y entonces te das cuenta: el avión está hecho de bambú. Su código no es el verdadero negocio.
Abusar de la herencia en programación orientada a objetos
La primera vez que aprendes sobre la herencia, parece mágico.
Con menos de una línea de código, puede obtener casi todas las propiedades y funciones de la clase principal. Y no me hagan empezar con el polimorfismo, eso es mágico. Lo único que no te enseñan en la escuela es que la herencia introduce un acoplamiento muy estrecho.
Cada vez que heredas de una clase, creas una dependencia muy fuerte en su implementación concreta. Peor aún, cada usuario de su clase tiene una dependencia transitiva de la clase base. Eso significa que si alguien cambia la clase base, que incluso podría pertenecer a una biblioteca sobre la que no tiene control, su código puede romperse. Y eso significa que todas las clases que dependen de su clase también pueden romperse, eso no es fácil, especialmente si sucede al final de su semana laboral.
Por lo tanto, es necesario pensar detenidamente antes de introducir la herencia. Debe considerar tanto los pros como los contras de la herencia, y averiguar si su caso de uso específico realmente lo justifica. La mayoría de las veces, debería favorecer la composición . En este contexto, recomiendo leer esta discusión muy interesante, comenzando con una respuesta del propio tío Bob .
Seguir ciegamente las “mejores prácticas”
El último ejemplo que voy a dar es un poco más específico. Está relacionado con el código de copiar y pegar, pero es mucho más elusivo. Se trata de usar código/anotaciones que no entiende completamente, porque es la "mejor práctica".
Un buen ejemplo es el uso desordenado de la anotación transaccional en aplicaciones que usan Spring.
Parece que mágicamente resuelve algunos errores, por lo que la gente piensa (y algunos probablemente incluso afirman abiertamente) que es una buena práctica usarlo todo el tiempo.
Lo complicado de esto es que el 90% de las veces tendrán razón.
Los errores se resuelven y la carga sigue cayendo en paracaídas desde el aire.
Todo el mundo está contento hasta que algo cambia y surge un error de producción con toda su majestuosidad. Mira el siguiente ejemplo furtivo:
@Transactional
public void changeName(long id, String name) {
User user = userRepository.getById(id);
user.setName(name);
if (StringUtils.isNotEmpty(name)) {
userRepository.save(user);
}
}// All rights reserved to this fantastic article
Un ingeniero con buen ojo puede ver que hay algo sospechoso aquí. ¿Por qué establecer el nombre antes de validar?
Sin embargo, un revisor de código apresurado puede pasar por alto esto, y si no está familiarizado con la anotación transaccional, podría pensar que no se hizo daño.
Y luego comienza a ver registros sobre registros de usuarios con nombres vacíos. Mierda, algo debe estar mal, ¿es esto un ataque cibernético?
No, es solo nuestra querida anotación transaccional haciendo su trabajo.
Verá, hay otro efecto secundario pasado por alto de esta anotación: cada entidad declarada en su alcance está en un estado administrado. Por lo tanto, cada cambio que realice en este ámbito se conserva automáticamente en la base de datos, incluso sin llamar explícitamente a "guardar".
En este caso, significa que está guardando los registros independientemente de si la validación tuvo éxito o no.
Cómo evitar la programación de Cargo Cult
Algo de esto puede parecer un conocimiento común trivial. Pero recuerde, el conocimiento común no siempre es una práctica común.
Sea consciente de su trabajo y pase más tiempo aprendiendo las complejidades de su oficio. Estaras contento de haberlo hecho.
Esta historia se publicó originalmente en https://betterprogramming.pub/are-you-a-cargo-cult-programmer-be361217c030
1617257581
¿Quiere restaurar los buzones de correo de PST a Exchange Server? Entonces, estás en la página correcta. Aquí, lo guiaremos sobre cómo puede restaurar fácilmente mensajes y otros elementos de PST a MS Exchange Server.
Muchas veces, los usuarios necesitan restaurar los elementos de datos de PST en Exchange Server, pero debido a la falta de disponibilidad de una solución confiable, los usuarios no pueden obtener la solución. Háganos saber primero sobre el archivo PST y MS Exchange Server.
PST es un formato de archivo utilizado por MS Outlook, un cliente de correo electrónico de Windows y muy popular entre los usuarios domésticos y comerciales.
Por otro lado, Exchange Server es un poderoso servidor de correo electrónico donde todos los datos se almacenan en un archivo EDB. Los usuarios generalmente guardan la copia de seguridad de los buzones de correo de Exchange en el archivo PST, pero muchas veces, los usuarios deben restaurar los datos del archivo PST en Exchange. Para resolver este problema, estamos aquí con una solución profesional que discutiremos en la siguiente sección de esta publicación.
No le recomendamos que elija una solución al azar para restaurar los datos de PST en Exchange Server. Por lo tanto, al realizar varias investigaciones, estamos aquí con una solución inteligente y conveniente, es decir, Exchange Restore Software. Es demasiado fácil de manejar por todos los usuarios y restaurar cómodamente todos los datos del archivo PST a Exchange Server.
El software es demasiado simple de usar y se puede instalar fácilmente en todas las versiones de Windows. Con unos pocos clics, la herramienta puede restaurar los elementos del buzón de Exchange.
No es necesario que MS Outlook restaure los datos PST en Exchange. Todos los correos electrónicos, contactos, notas, calendarios, etc. se restauran desde el archivo PST a Exchange Server.
Todas las versiones de Outlook son compatibles con la herramienta, como Outlook 2019, 2016, 2013, 2010, 2007, etc. La herramienta proporciona varios filtros mediante los cuales se pueden restaurar los datos deseados desde un archivo PST a Exchange Server. El programa se puede instalar en todas las versiones de Windows como Windows 10, 8.1, 8, 7, XP, Vista, etc.
Descargue la versión de demostración del software de restauración de Exchange y analice el funcionamiento del software restaurando los primeros 50 elementos por carpeta.
No existe una solución manual para restaurar los buzones de correo de Exchange desde el archivo PST. Por lo tanto, hemos explicado una solución fácil e inteligente para restaurar datos de archivos PST en Exchange Server. Simplemente puede usar este software y restaurar todos los datos de PST a Exchange Server.
Más información:- https://www.datavare.com/software/exchange-restore.html
#intercambio de software de restauración #intercambio de restauración #buzón del servidor de intercambio #herramienta de restauración de intercambio
1617255938
Si tiene problemas para migrar los buzones de correo de Exchange a Office 365, debe leer este artículo para saber cómo migrar los buzones de correo de Exchange EDB a Office 365. Al migrar a Office 365, los usuarios pueden acceder a sus buzones de correo desde cualquier lugar y desde cualquier dispositivo.
En esta publicación, explicaremos las razones detrás de esta migración y una solución profesional para migrar de Exchange a Office 365.
Office 365 apareció por primera vez en 2011 y, dado que se considera la mejor plataforma para aquellas organizaciones que desean administrar todo su sistema de correo electrónico en la nube. Estas son las características clave de Office 365:
Hay varias formas manuales de migrar los buzones de correo de Exchange EDB a Office 365, pero para evitar estos complicados y prolongados procedimientos, presentamos una solución de terceros, es decir, la herramienta de migración de Exchange, que es automatizada y directa para la migración de Exchange a Office 365. La herramienta funciona rápidamente y migra todos los elementos del buzón de Exchange Server a Office 365.
La herramienta de migración de Datavare Exchange es demasiado fácil de usar y ofrece pasos sencillos para migrar EDB a Office 365:
Por lo tanto, todos sus buzones de correo de Exchange EDB ahora se migran a Office 365.
Nota: puede usar filtros para migrar los elementos de datos deseados de la cuenta de Exchange a la de Office 365
Este blog le indica una solución profesional para la migración de buzones de correo de Exchange a la cuenta de Office 365. Dado que las soluciones manuales son complicadas, sugerimos la herramienta de migración de Exchange, que es demasiado simple de usar. Los usuarios no se enfrentan a problemas al operar el programa. La mejor parte de este software es que no necesita habilidades técnicas para realizar la migración. Se puede comprender el funcionamiento del software descargando la versión de demostración que permite la migración de los primeros 50 elementos por carpeta.
Más información:- https://www.datavare.com/software/edb-migration.html
#herramienta de migración de intercambio #migración de intercambio #migrar buzones de correo de exchange
1614150601
Todos los datos de Exchange Server, como correos electrónicos, contactos, notas, eventos, calendario, etc. se almacenan en el archivo Exchange EDB. A veces, el archivo EDB se vuelve inaccesible debido a la corrupción o daños en el archivo EDB. La corrupción del archivo EDB puede deberse a varias razones, como: B. grandes cantidades de datos, ataques de virus, problemas de red, etc. En este caso, los usuarios no pueden acceder a sus datos a través de archivos EDB dañados. Debido a esto, es necesario restaurar los elementos del buzón de un archivo EDB dañado. Pero, ¿cómo recuperar elementos de buzón dañados para archivos EDB? La respuesta a esa pregunta se encuentra en este blog. Así que sigamos con esta publicación para obtener una solución inmediata para la recuperación de elementos del buzón de Exchange.
El archivo Exchange EDB almacena datos en forma de archivos de base de datos:
Priv1.edb y Pub1.edb
La corrupción puede ocurrir en cualquier archivo EDB. Aquí le ofrecemos una solución para la recuperación de datos de estos dos archivos EDB.
Antes de eso, aclaremos las razones detrás de la corrupción en el archivo EDB, que discutiremos en la siguiente sección de este blog.
Estas son las principales razones detrás de la corrupción de archivos EDB.
• Un problema de sincronización con Exchange Server puede dañar el archivo EDB.
• El antivirus instalado en el servidor ha eliminado el archivo de registro.
• Almacenamiento excesivo en Exchange Server.
• Error al proporcionar datos del archivo EDB por Exchange Server.
• Los problemas de hardware o de red pueden dañar el archivo EDB.
Hay varias formas manuales, como la utilidad Eseutil e Isinteg de Exchange Server, para restaurar la base de datos de Exchange Server. Sin embargo, estos métodos son complicados y es más probable que fallen. En esta situación, se recomienda utilizar otra solución inteligente y eficaz como la herramienta de terceros EDB Recovery. Esta es una de las soluciones más fáciles para restaurar todos los elementos como correo electrónico, contactos, notas, calendario, etc. desde el buzón de Exchange. El software soluciona rápidamente los problemas del archivo EDB y ayuda a los usuarios a obtener todos los elementos del buzón del archivo EDB dañado. Se necesitan unos minutos para reparar los elementos del archivo EDB y le permite exportar los datos recuperados a varios formatos de archivo como PST, EML, MSG, HTML, etc.
Siga los pasos para usar el software de recuperación de EDB para recuperar elementos de buzón de correo corruptos para archivos EDB.
Mit dieser Software, d. H. Der oben beschriebenen EDB-Wiederherstellung, können Benutzer alle beschädigten EDB-Dateien reibungslos reparieren und wiederherstellen. Benutzer haben keine Probleme beim Bedienen der Software. Benutzer können Exchange EDB-Dateien mithilfe der Software in PST und verschiedenen anderen Formaten wiederherstellen und speichern. Durch Herunterladen der Testversion können Benutzer die Funktionen und die Arbeitsgeschwindigkeit der Software überprüfen, indem sie die ersten 50 Elemente pro Ordner wiederherstellen. Wenden Sie sich bei Unklarheiten rund um die Uhr an unser technisches Personal.
Más información:- https://www.datavare.com/software/edb-recovery.html
#herramienta de recuperación de edb #recuperación de adobe #recuperar archivos edb de intercambio corruptos #recuperar archivos edb
1615441295
Si vous rencontrez des problèmes lors de la migration des boîtes aux lettres Exchange vers Office 365, vous devez lire cet article pour savoir comment migrer les boîtes aux lettres Exchange EDB vers Office 365. En migrant vers Office 365, les utilisateurs peuvent accéder à leurs boîtes aux lettres de n’importe où et à partir de n’importe quel appareil.
Dans cet article, nous expliquerons les raisons de cette migration et une solution professionnelle pour migrer d’Exchange vers Office 365.
Office 365 est arrivé pour la première fois en 2011 et est considéré comme la meilleure plate-forme pour les organisations qui souhaitent gérer l’ensemble de leur système de messagerie sur le cloud. Voici les principales fonctionnalités d’Office 365 -
Datavare L’outil de migration Exchange est trop facile à utiliser et offre des étapes simples pour migrer EDB vers Office 365 -
Ainsi, toutes vos boîtes aux lettres Exchange EDB sont désormais migrées vers Office 365.
Remarque: vous pouvez utiliser des filtres pour migrer les éléments de données souhaités d’Exchange vers un compte Office 365.
Ce blog vous présente une solution professionnelle pour la migration des boîtes aux lettres Exchange vers un compte Office 365. Étant donné que les solutions manuelles sont compliquées, nous suggérons l’outil de migration d’Exchange qui est trop simple à utiliser. Aucun tracas n’est confronté par les utilisateurs dans l’exploitation du programme. La meilleure partie de ce logiciel est qu’il n’a pas besoin de compétences techniques pour effectuer la migration. On peut comprendre le fonctionnement du logiciel en téléchargeant la version de démonstration qui permet la migration des 50 premiers éléments par dossier.
Plus d’informations:- https://www.datavare.com/software/edb-migration.html
#outil de migration informatique #logiciel de migration informatique #application de migration edb #utilitaire de migration informatique #migration informatique