Como desarrollador web, ¿qué herramientas consideró una pérdida de tiempo y cuáles son esenciales?

Considero que la mayoría de ellos son una pérdida de tiempo, especialmente en el nuevo mundo de Node / Composer, donde hay una gran cantidad de módulos y componentes que intentan hacer la vida más fácil.

Obviamente los uso (!), Pero desperdicia / complica mi tiempo al tener que ejecutar pasos de compilación, y ver las dependencias de los módulos descender solo sirve para recordarme cuánto control ahora está en manos de terceros. Preferí mucho los días en que si necesitaba algo, lo encontraría (solo) y lo incluiría yo mismo y siempre tendría un conocimiento íntimo de mi aplicación.

Cómo “dependencias” en la tierra se convirtió en una palabra aceptable en tecnología que nunca sabré, cuando todos los mejores desarrolladores parecen predicar que la simplicidad es el evangelio.

Entonces, ¿qué es esencial, al menos para mí (como desarrollador de LAMP)?

  • Marco : un marco decente y estable. Me gusta laravel
  • Base de datos : cualquier sabor de SQL
  • Implementación : alguna forma de implementación, por ejemplo, Capistrano
  • Vigilancia. Grita a uptimerobot.com

Incluso si eliminaste Composer, npm, todos los pasos de compilación de JS / SASS, aún podría compilarte una aplicación de nivel empresarial.

Muy simple:

Pérdida de tiempo :

HERRAMIENTAS DE DESARROLLADOR DE Internet Explorer

  • Difícil de comprender
  • No hay soporte para pantallas móviles

Esencial:

Herramientas para desarrolladores de Google Chrome

  • Simple de entender
  • Soporte para pantallas móviles.
  • Integre nuevos complementos de marco (Angular Batrang, etc.)

Probablemente sea una respuesta algo controvertida, pero aquí va:

sistemas de control de versiones: git, github, svn, gitlab, lo que sea.

Creo que es una gran cosa, nadie discutirá que no es una herramienta esencial de ningún proyecto de software moderno, sino, personalmente, ¿la herramienta en sí misma? Me parece una pérdida de tiempo completa y demasiado difícil de manejar, incluso entre equipos, y puede abrir un mundo completamente nuevo de problemas que son incluso demasiado malos para ser verdad.

Tengo alrededor de 20 espacios de trabajo principales para administrar / actualizar el código, cada espacio de trabajo con su propio conjunto de proyectos, etc., por lo que las cosas se complican bastante rápido. Seré honesto: si tuviera que usar el git cli sin procesar, o usar el terminal para administrar todo el código, las ramas y los cambios en múltiples proyectos, estaría congelado y ni siquiera sabría por dónde empezar.

“Ohh, está bien, pero puedes usar una interfaz de usuario de escritorio del cliente para administrarlo todo, ¿no?”

Puedo, y la compañía lo hace: utilizamos SourceTree que me parece realmente increíble y elimina casi TODOS los problemas con la gestión del código. Hasta que un día, John, un jefe, crea una rama llamada javaFixesJohn.

Luego, otro empleado decide trabajar en diferentes funciones y crea una rama llamada: javaFixesjohn.

¿Adivina qué? Solo diré que sourceTree no puede ver que estas son diferentes ramas que contienen diferentes cabezas con diferentes códigos comprometidos y presionados, porque en la interfaz de usuario (al menos, hasta la versión 2.3.X) LOS NOMBRES DE LAS RAMAS SON INSENSIVOS EN CASOS. Ves que tienes cosas que tirar, tiras, nada cambia, dice que estás actualizado … imagina el infierno con esta generación de múltiples espacios de trabajo a la vez …

Luego tenemos que volver a cambiar el nombre de las ramas y causar confusión entre las personas que pensaban que se estaban comprometiendo con un determinado conjunto de ramas, ahora uno cambia, etc., etc.

Literalmente creo que los sistemas de control de versiones son geniales y muy necesarios. Pero también creo que los problemas menores, generalmente inofensivos, pueden convertirse en grandes problemas, muy rápido, SIN NINGUNA RAZÓN.

Sinceramente, creo que es muy bueno, pero sigue siendo demasiado complejo y con demasiadas advertencias y lejos de ser perfecto. Y, sin embargo, ya nadie puede vivir sin él.

Pérdida de tiempo :

Internet Explorer Malgasta el tiempo de todos porque de alguna manera Microsoft se ha comercializado a sí mismo como un software “fácil de usar”, mientras que no se molestan en seguir las especificaciones HTML / Javascript, lo que resulta en un comportamiento inusualmente extraño en las versiones de IE y los usuarios que todavía tienen IE6.

Claro, todos los navegadores tienen estos problemas, solo que no tan extensamente como IE.

Para su crédito, no es tan inteligente como otros navegadores para evitar errores en HTML, lo que resulta en la captura de HTML mal escrito, lo que Chrome permitirá.

Esencial :

Dos navegadores : todo lo que desee (Chrome es mi favorito, otras opciones incluyen, entre otras, Firefox, Opera o Safari) e Internet Explorer (es poco probable que sean lo mismo si es un desarrollador web).

“Pero acabas de decir que IE era una pérdida de tiempo”. Correcto. ¿No pueden ser ambos? ¿Cómo crees que MS arrinconó el mercado?

Hombre, no me di cuenta de que no me gustaba tanto la EM.

Sistemas de control de versiones : he usado GIT y SVN. La informática es una cosa porque los errores son fáciles de manejar. VCS es parte de eso. Esto significa que puede ver lo que ha cambiado y deshacer los cambios en varios usuarios.

Frontend : debe conocer los conceptos básicos de HTML, CSS y Javascript. La parte esencial de esto es que si está haciendo algo con JavaScript, trátelo como lo haría con otro software. No escriba código como si fuera un script trivial solo porque está en la interfaz. La interfaz no es trivial. ¿Sabes cómo llamas a la interfaz para el software web sin una interfaz de usuario? Cartero. ¿Ves muchos muggles usando cartero para mirar sitios web? Si es así, no confíes en ellos. No confíes en nadie. Y parpadea 3 veces si necesitas ser rescatado.

Webpack: Ok, así que supongo que esto todavía es frontend. Incluye código basado en los archivos de código que necesitan otros archivos de código. Webpack o un equivalente sería bueno para esto.

Linting: si desea consistencia de código en javascript, necesitará linting. Esto incluye si planea ir a algún lugar cerca de NodeJS.

Pruebas automatizadas: el desarrollo web sigue siendo desarrollo de software. Cualquier cosa como Ava, Jasmine o Nightmare que se puede usar para manejar E2E y Unit Testing es cómo se producen menos problemas en la producción.

Integración continua : al menos debe comprender el punto básico del software que implementa su software para la preparación / QA / producción. Esto responderá a los cambios en la rama de producción y hará cosas como agrupar el código, ejecutar todas las pruebas automatizadas, tal vez todo el revestimiento y fallar el despliegue si algo falla en ese proceso, dejando intacto su código de producción existente mientras arregla lo que sea roto.

Una última cosa relacionada con la implementación y el control de origen: el estado del código debe ser coherente en todos los entornos. Eso significa que no se deben cambiar los atributos src del script HTML de “script.js” a “script.min.js” porque lo está poniendo en producción después de probarlo en algún entorno de desarrollo. Y tampoco mantener código minificado en el repositorio. Los cambios de código guardados en el repositorio deben ser solo para funciones de software . Sé que esto no responde a la pregunta que ha formulado, pero veo que surge con una frecuencia tan inquietante que siento que debe explicarse. Si ve que la gente codifica deliberadamente un entorno cruzado de manera inconsistente, defiéndase. Puedes combatir la entropía o ser responsable cuando dejas que consuma todo.

Estoy feliz de ampliar cualquier cosa de arriba.

No estoy seguro si tengo alguno por una pérdida de tiempo, pero puedo decirte lo que me ahorra tiempo y dolores de cabeza.

Gestión de proyectos (gratis) limpiador trello:

Gestión de tareas para equipos – MeisterTask https://www.meistertask.com

Webstorm (IDE):

Mejor IDE para desarrollo web. Características sorprendentes cuando lo configuras como a ti te gusta, es decir. Fragmentos, intellisense, sistema de versiones incorporado, etc.

Tablero (solo para mac):

Para realizar un seguimiento de los fragmentos de código de uso frecuente. También he estado probando

Cacher: el organizador de fragmentos de código para desarrolladores profesionales

Hermoso diseño para fragmentos de código, pero no tiene los documentos / api.

RoboMongo o Navicat para ver las bases de datos.

herramienta de administración nativa de MongoDB (UI de administrador)

Herramienta de administración de DB para MySQL, MariaDB, SQL Server, SQLite, Oracle y cliente PostgreSQL

Ya hay muchas listas en las otras respuestas, por ejemplo, git, devtools del navegador. Solo menciono los que se pueden perder, pero vale la pena mencionarlos

Para mi

Pérdida de tiempo:

Aquellos IDE que no están diseñados para el desarrollo web, por ejemplo, eclipse. Son demasiado pesados ​​y lentos y no son eficientes en el desarrollo web. Utilice un editor de script ligero en su lugar, por ejemplo, texto sublime, átomo, código vs

Herramienta valiosa:

Formateador de código, por ejemplo, embellecedor o más bonito.

Es demasiado fácil escribir código ilegible y feo, especialmente en un equipo.

Una amplia gama de integración de estas herramientas de formato de código puede alinear fácilmente el estilo de codificación y hace que el trabajo en equipo sea eficiente.

Hola,

Git GUI Client puede ser útil para algunos desarrolladores.

GitKraken: cliente de GUI de Git para Windows, Mac y Linux