Transcripción
|
| Hola, soy Aurora Tiffany-Davis, desarrolladora de software en el |
| El equipo de JMP Live y me gustaría hablarles hoy sobre |
| cómo desarrollamos software en el equipo de JMP Live. |
| Primero, me gustaría que imagine cómo se ve el desarrollo de software |
| Como a ti. Si usted no es un desarrollador y el |
| La imagen que tienes en mente probablemente esté coloreada por la televisión y |
| películas que has visto. |
| Puede que te estés imaginando a un genio excéntrico que trabaja solo, |
| y el proceso para desarrollar software es muy simple. Ellos |
| pensar mucho en un problema. Ellos escriben un código |
| y luego se aseguran de que funcione. Y probablemente lo haga, |
| porque al fin y al cabo son un |
| genio. Si todos fuéramos genios como dice Hollywood que somos, |
| este proceso podría funcionar para nosotros, pero en realidad solo somos humanos, |
| y entonces necesitamos un poco más que |
| que. En primer lugar, no trabajamos solos. trabajamos muy |
| colaborativamente y tenemos un proceso que nos ayuda a |
| producir software de calidad. Señalaré aquí que no hay |
| un proceso correcto para desarrollar software. Su |
| proceso va a diferir entre empresas y, a menudo, incluso |
| dentro de las empresas. Pero lo que haré hoy es guiarte |
| qué haría si estuviera desarrollando una nueva función en |
| JMP en vivo. |
| En primer lugar, antes de sentarme a escribir código, tengo que |
| tienen alguna necesidad real de hacerlo. Tiene que haber alguna persona real. |
| por ahí quien ha encontrado algo en JMP Live que |
| no funciona del todo de la manera que ellos creen que debería, lo cual es |
| una buena manera de decir que encontraron un error o que tienen un |
| solicitud de una nueva característica. Realizamos un seguimiento de estos problemas en un |
| sistema interno, por lo que lo primero que haría sería ir a |
| ese sistema y encuentre un problema de alta prioridad que sea una buena |
| coincida con mi conjunto de habilidades, y empiezo a pensar en ello, y empiezo |
| hablando de eso Lo siguiente que haría es tratar de entender |
| la necesidad hablando con la gente. ¿Qué tipo de usuarios van a |
| ¿Necesitas esta función? Cómo son |
| vas a usarlo? Luego ejecutaría JMP Live en mi propia máquina, |
| y empiece a echar un vistazo a dónde podría encajar la nueva característica |
| en JMP Live como ya lo está |
| existe hoy. Entonces abría el código y comenzaba a pensar |
| a través de cómo el nuevo código encajará en nuestra base de código. |
| Una vez que creo que tengo una buena comprensión de la necesidad, |
| pasaría al paso de diseño. Y aquí de nuevo, mi primera |
| paso va a ser hablar con la gente. Hablaré con el usuario |
| expertos en experiencia que tenemos dentro de JMP y hablaré con mi |
| compañeros de trabajo y pregunte: "¿Ha trabajado en una característica similar a |
| ¿esto antes? ¿Has trabajado en esta parte del código antes?" |
| Entonces voy a empezar a desarrollar el diseño. Podría escribir artículos |
| y dibujar diagramas y compartirlos para que yo pueda hacer |
| Asegúrese de que los otros miembros del equipo estén generalmente |
| cómodo con la dirección |
| me mudo Ahora me sentaré y comenzaré a escribir algunos |
| código. Y para esto usaré el desarrollo integrado |
| medio ambiente, que es un programa que tiene una gran cantidad de |
| características diseñadas para ayudarnos a hacer mejor nuestro trabajo. |
| Ahora que he escrito algo de código, mi primer paso es encontrar el |
| problemas que acabo de crear. Solo soy humano, así que las posibilidades |
| que escribí un código 100% impecable en mi primer intento son bastante escasos. |
| Mi primer paso va a ser |
| Usar análisis estático. El análisis estático no ejecuta el código, |
| lo mira como si estuviera escrito en un pedazo de |
| papel. Una analogía podría ser el corrector ortográfico en Microsoft Word. Corrector ortográfico |
| no me puede decir si he escrito o no un convincente |
| novela, pero puede decirme si me perdí una coma en alguna parte. |
| El análisis estático hace eso para el código. |
| Ahora que he encontrado y arreglado esos problemas muy obvios, mi |
| el próximo paso será buscar problemas menos obvios, |
| y para eso usaré un conjunto de pruebas automatizado. Tenemos |
| escrito una amplia gama de pruebas contra nuestro código. automatizado |
| las pruebas ejecutan el código, o más bien ejecuta un subconjunto del |
| código, proporcionó una determinada entrada y esperaba una determinada salida. |
| Es un ejercicio realmente valioso sentarse y escribir estos |
| pruebas, porque a veces cuando me siento a escribir una nueva prueba para |
| cualquier característica, me obliga a aclarar realmente mi pensamiento sobre |
| cómo se supone que funciona el software en primer lugar. |
| También proporciona una salvaguardia realmente crucial contra |
| colegas rompiendo accidentalmente esta función en el futuro. Asi que |
| es una gran manera de encontrar |
| problemas temprano. Una vez que haya escrito y ejecutado estos |
| pruebas, pasaré a algunas pruebas manuales. Podría ejecutar JMP |
| En vivo en mi máquina local, o en uno de varios servidores que tenemos |
| en la oficina y husmear y probar cosas y solo asegurarme |
| que funciona de la manera que yo |
| creo que debería. Incluso puedo mirar en la base de datos que |
| se sienta detrás de JMP Live y realiza un seguimiento de los registros en |
| usuarios, publicaciones, grupos, comentarios y asegúrese de que los registros estén |
| escrito de la manera que espero que sean. |
| Ahora soy cautelosamente optimista de que he escrito algo bueno |
| código, y he creado un útil |
| rasgo. El siguiente paso es pedir la opinión de mis compañeros. Voy a |
| poner esto a través de revisión por pares. Ahora en JMP Live ponemos el 100% de |
| el código que escribimos a través de revisión por pares y la razón es |
| que lo encontramos tan valioso. |
| Puede haber algo que me he perdido porque simplemente |
| tener anteojeras sobre algo. O podría ser el |
| caso de que alguien más en mi equipo simplemente sepa que yo |
| falta. Suele suceder en una reseña que el revisor también |
| obtiene mucho valor del ejercicio porque podrían |
| conocer algunas técnicas nuevas. |
| Ahora que el equipo es bastante optimista de que hemos creado |
| un buen código, finalmente confirmaré mi código o lo registraré en |
| un repositorio de código fuente. |
| Tenemos un sistema de construcción continua que vela por nosotros para |
| cometer código, y cuando lo hacemos, |
| lo analiza Busca cosas realmente básicas como, son los archivos |
| nombrado de la manera correcta y en el lugar correcto? También se volverá a ejecutar |
| análisis estático y volverá a ejecutar toda nuestra prueba automatizada |
| suite. Hace esto en caso de que alguien se haya olvidado de hacer esto. |
| antes en el proceso. O más a menudo, podría darse el caso de que |
| algo pequeño y sutil ha cambiado desde la última vez que el |
| Se ejecutó el conjunto de pruebas automatizado. |
| Así que hace todos estos análisis y cuando lo hace |
| este paso, el código ahora está disponible para personas fuera de |
| el equipo de desarrollo para tomar una |
| Míralo. Las primeras personas que se dan cuenta de esto son las pruebas. |
| expertos que tenemos dentro de JMP Live y dentro del equipo de JMP |
| mas ampliamente. Estos son profesionales de la prueba. es lo que hacen |
| durante toda su carrera, y son realmente buenos en eso. |
| Podrían volver a ejecutar el conjunto de pruebas automatizado. Podrían agregar más pruebas. |
| a nuestras suites. Podrían ejecutar JMP Live manualmente y hurgar |
| en general. Pueden ejecutar JMP Live localmente y fingir que lo hacen |
| cosas como usuarios que serían absolutamente locos. ¿Cuál es el |
| ¿Qué cosa más loca puede hacer el usuario? Y veamos cómo funciona el software |
| responde a ello. Son muy creativos con estas pruebas. |
| escenarios. También pueden ejecutar el software en varios |
| diferentes navegadores y sistemas operativos para asegurarnos de que nuestros |
| El software es flexible y robusto. |
| Una vez que hayan firmado esta nueva característica, ahora es |
| disponible para ser recogido en nuestra próxima versión de software. |
| Permítanme alejarme ahora y mostrarles el proceso como un todo. |
| Son muchos pasos. ¿Realmente hacemos todo esto para todos? |
| de nuestros cambios de software? Lo creas o no, lo hacemos. Sin embargo, esto |
| El proceso escala mucho, dependiendo de la complejidad de |
| la obra. Si tenemos un error obvio realmente simple, daremos un paso |
| a través de este proceso, pero lo haremos bastante rápido. |
| Por otro lado, si tenemos una nueva característica muy compleja, al |
| en cada paso del proceso, vamos a reducir la velocidad. |
| Nos tomaremos nuestro tiempo y tendremos mucho cuidado para asegurarnos de que |
| lo hacemos bien |
| Ahora bien, todo lo que lleva tiempo cuesta dinero, así que ¿por qué |
| ¿JMP está dispuesto a invertir este dinero en calidad de software? |
| Una razón es realmente simple. Estamos orgullosos de nuestro trabajo y |
| quiere producir un buen producto. |
| La siguiente razón es bastante menos idealista. Lo sabemos |
| cualquier problema que exista en nuestro |
| proceso, y en nuestro producto, si no los encontramos, nuestro |
| los clientes lo harán y eso no es bueno para los negocios. Así que nosotros |
| Me gustaría minimizar eso. |
| Ahora ningún proceso puede entregar |
| absoluta perfección. Y entonces realmente te invitamos a seguir siendo parte |
| de la comunidad JMP. Vaya a community.jump.com y permítanos |
| saber si hay algo sobre JMP Live si no funciona el |
| forma en que crees que debería ser, o cualquier cosa nueva que te gustaría |
| para ver en el futuro. |
| Ese tipo de retroalimentación del mundo real es inmensamente valiosa para nosotros, y |
| realmente le damos la bienvenida. |
| Eso es todo lo que tengo para ti hoy, pero realmente espero que |
| disfruta el resto de su experiencia Discovery. Gracias |
| tú. |