Transcripción
|
| Hola, soy Aurora Tiffany-Davis, una 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 imaginaras cómo se ve el desarrollo de software |
| Como a ti. Si 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 |
| Piense mucho en un problema. Escriben un código |
| y luego se aseguran de que funcione. Y probablemente lo haga |
| porque, después de todo, son un |
| genio. Si todos fuéramos genios como Hollywood dice que lo somos |
| este proceso puede funcionar para nosotros, pero en realidad solo somos humanos, |
| y entonces necesitamos un poco más de |
| ese. 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. Tu |
| El proceso diferirá entre las 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 Live. |
| En primer lugar, antes de sentarme a escribir código, tengo que |
| tiene alguna necesidad real de hacerlo. Tiene que haber alguna persona real |
| ¿Quién ha encontrado algo en JMP Live que |
| no funciona como ellos creen que debería hacerlo, que es |
| una buena forma 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 es ir a |
| ese sistema y encontrar un problema de alta prioridad que sea una buena |
| coincidir con mi conjunto de habilidades, y empezar a pensar en ello, y empezar |
| hablando de ello. Lo siguiente que haría es tratar de entender |
| la necesidad de hablar con la gente. ¿Qué tipo de usuarios van a |
| ¿Necesitas esta característica? Cómo son |
| lo vas a usar? Entonces ejecutaría JMP Live en mi propia máquina, |
| y empezar a ver dónde podría encajar la nueva función |
| en JMP Live como ya |
| existe hoy. Entonces aparecía el código y empezaba a pensar |
| a través de cómo el nuevo código va a 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 aqui de nuevo, mi primera |
| El paso 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 función similar a |
| ¿esto antes? ¿Has trabajado en esta parte del código antes? " |
| Entonces empezaré a desarrollar el diseño. Podría escribir artículos |
| y dibujar diagramas y compartirlos para que pueda hacer |
| asegúrese de que los otros miembros del equipo son generalmente |
| cómodo con la dirección |
| Me estoy mudando. Ahora me sentaré y empezaré a escribir algo. |
| código. Y para esto usaré el desarrollo integrado |
| entorno, que es un programa que tiene muchos |
| funciones diseñadas para ayudarnos a mejorar en nuestro trabajo. |
| Ahora que he escrito algo de código, mi primer paso es encontrar el |
| problemas que acabo de crear. Soy solo un humano, entonces las posibilidades |
| que escribí un código 100% impecable en mi primer intento son bastante escasos. |
| Mi primer paso va a ser |
| utilizar análisis estático. El análisis estático no ejecuta el código, |
| lo mira como si estuviera escrito en un trozo de |
| papel. Una analogía podría ser el corrector ortográfico en Microsoft Word. Corrector ortográfico |
| no puede decirme 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 por el código. |
| Ahora que he encontrado y solucionado esos problemas tan obvios, mi |
| El siguiente paso será buscar problemas menos obvios, |
| y para eso usaré un conjunto de pruebas automatizado. Tenemos |
| escribió 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, proporciona una determinada entrada y espera 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 protección realmente crucial contra |
| colegas que rompan 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 |
| Vivo en mi máquina local, o en uno de los varios servidores que tenemos |
| en la oficina y hurgar y probar cosas y asegurarse |
| que funciona de la manera que yo |
| creo que debería. Incluso puedo buscar 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 sean |
| escrito de la manera que espero que estén. |
| Ahora soy cautelosamente optimista de haber escrito algo bueno |
| código, y he creado un útil |
| característica. El siguiente paso es pedir su opinión a mis compañeros. voy a |
| someter esto a revisión por pares. Ahora en JMP Live, ponemos el 100% de |
| el código que escribimos a través de la revisión por pares y el motivo 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 |
| ausencia. A menudo ocurre en una revisión que el revisor también |
| obtiene mucho valor del ejercicio porque pueden |
| aprenda sobre algunas técnicas nuevas. |
| Ahora que el equipo es bastante optimista, hemos creado |
| un buen código, finalmente confirmaré mi código o lo verificaré en |
| un repositorio de código fuente. |
| Tenemos un sistema de construcción continuo que nos vigila para |
| cometer el 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 |
| más temprano 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ó una suite de pruebas automatizada. |
| Así que hace todos estos análisis y cuando los supera |
| este paso, el código ahora está disponible para personas fuera de |
| el equipo de desarrollo para tomar un |
| 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 pruebas. 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. Pueden ejecutar JMP Live manualmente y hurgar |
| en general. Pueden ejecutar JMP Live localmente y pretender hacerlo |
| cosas como usuarios que serían absolutamente una locura. Cual es el |
| ¿Lo más loco que puede hacer el usuario? Y veamos cómo el software |
| responde a ella. Son realmente creativos con estas pruebas. |
| escenarios. También pueden ejecutar el software en varios |
| diferentes navegadores y sistemas operativos para asegurarnos de que nuestro |
| el software es flexible y robusto. |
| Una vez que hayan firmado esta nueva función, ahora |
| disponible para ser recogido en nuestra próxima versión de software. |
| Permítanme alejarme ahora y mostrarles el proceso en su totalidad. |
| Son muchos pasos. ¿Realmente hacemos todo esto para todos? |
| de nuestros cambios de software? Lo crea 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, en |
| en cada paso del proceso, vamos a ralentizar. |
| Nos tomaremos nuestro tiempo y cuidaremos mucho para asegurarnos de que |
| lo hacemos bien. |
| Ahora bien, cualquier cosa que lleve tiempo cuesta dinero, entonces, ¿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 |
| quisiera minimizar eso. |
| Ahora ningún proceso puede entregar |
| absoluta perfección. Y entonces realmente te invitamos a ser parte |
| de la comunidad JMP. Vaya a community.jump.com y permítanos |
| saber si hay algo sobre JMP Live si no funciona el |
| de la forma que crees que debería ser, o cualquier cosa nueva que te gustaría |
| para ver en el futuro. |
| Ese tipo de comentarios del mundo real es inmensamente valioso 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. Agradecer |
| usted. |