Veamos qué son las tecnologías, cómo difieren y en qué casos qué tecnología elegir.
Con qué frecuencia elige la tecnología ahora:
-Ella me gusta
- ¿Cuál es el mejor flujo de trabajo para implementar un sitio web y una aplicación web en AWS?
- ¿Cuáles son los pros y los contras de crear carpetas individuales para cada usuario en lugar de lanzar todos los archivos cargados en una sola carpeta para una aplicación web?
- Desarrollo web front-end: ¿Qué sitios web grandes tienen el marcado más limpio?
- Al crear una aplicación web, ¿cuáles son las 10 tareas más comunes?
- ¿En qué se diferencia una aplicación web de una página web?
-Un amigo aconsejó
-Leí en internet
-Esta tecnología hace un sitio similar
Cuál es el problema aquí:
Me gusta. Muy subjetivo ¿Y qué pasa si no cumple con los requisitos? ¿O emplea especialistas muy caros y raros? ¿O se está muriendo?
Es familiar. Por lo general, este es el amigo que “comprende un poco mejor” las TI que aquel a quien aconseja. E incluso si es un programador con experiencia, no puede conocer todas las soluciones en todos los lenguajes populares. Después de todo, nadie pregunta qué criterios eligió este amigo. Si este amigo no es un CTO de Google, simplemente no confiaría en esta recomendación.
Lo leí. Es mejor: puedes encontrar diferentes comparaciones y argumentos. Pero, de nuevo, para comprender todas las decisiones de una persona, incluso con un fuerte conocimiento del desarrollo, lleva tiempo. Y sin conocimiento en el desarrollo de todas las revisiones técnicas leídas no valen nada.
Término análogo. Los sitios más populares están escritos en ciertas tecnologías, porque es tan “históricamente”. Si Facebook ahora eligiera la tecnología por sí mismo, dudo que hubiera tomado PHP como base. E incluso puede ser que la tecnología se haya vuelto obsoleta, se haya extorsionado sobre la base de los últimos 3 puntos, haya elegido algún tipo de tecnología anunciada, y no sea realmente efectiva, etc. Difícilmente puede saber las razones reales para elegir la tecnología. en otros proyectos Las tecnologías óptimas se usan extremadamente raramente en proyectos similares.
Por lo tanto, ninguno de los métodos anteriores de selección de tecnologías de desarrollo cumple con los criterios de objetividad. Por lo tanto, es necesario determinar primero estos criterios, y solo luego seleccionar una plataforma técnica para ellos. A continuación, trataré de identificar los criterios que son realmente importantes para el proyecto, en los que nos basaremos.
Criterios importantes al elegir tecnologías:
Tamaño y tipo de proyecto.
Complejidad del proyecto.
Velocidad de desarrollo
Costo de especialistas
Accesibilidad de especialistas
Herramientas de desarrollo disponibles.
Disponibilidad de soluciones preparadas
Flexibilidad de la solución.
La presencia de una comunidad amplia.
Soluciones de failover
Tendencia de su desarrollo.
Disponibilidad de documentación detallada.
Costo de soporte
Requerimientos de carga
Requerimientos de seguridad
Multiplataforma
Opciones de integración con otras soluciones.
Al elegir una tecnología para tales criterios, podemos lograr una elección objetiva y así ahorrarnos tiempo y dinero.
¿Cuáles son los proyectos?
Volveremos a las tecnologías todavía, pero por ahora veamos qué son los proyectos. A menudo, el tipo de proyecto habla por sí mismo, y puede decir de inmediato que funcionará: ya sea una solución preparada o, al menos, en qué dirección debe moverse.
En términos de complejidad, los proyectos se dividen en:
Simple (tarjetas de visita, aterrizajes, tiendas en línea simples, aplicaciones simples): estas soluciones generalmente se realizan en soluciones temáticas en caja, CMS o plantillas.
Mediano (compras y mercados en línea complejos, portales a escala nacional, diversos servicios, aplicaciones avanzadas): estas soluciones generalmente se realizan en el marcador libre.
Complejos (grandes portales, redes sociales, soluciones innovadoras y atípicas): el núcleo de tales proyectos generalmente se desarrolla en un lenguaje de programación puro (nativo).
Sobre el tema: tiendas de Internet, tableros de anuncios, redes sociales, etc. Para las soluciones tópicas más populares, hace mucho tiempo que hay productos en caja, y si no intentamos hacer un monstruo, entonces será más apropiado elegirlos. Hay muchas soluciones, es imposible describir todo en un artículo.
Lenguajes de programación
En tecnologías, destacaría 3 niveles de abstracción:
El lenguaje limpio es el material con el que puedes hacer cualquier cosa. Estamos limitados solo por las posibilidades del lenguaje. En lenguaje puro, se crean todos los sitios más grandes del mundo, con la asistencia de cientos de millones y miles de millones de usuarios, como: Instagram, YouTube, Pinterest, Tumblr, Dropbox, Twitter, Facebook, Amazon, Digg, LinkedIn y otros. . Además, los proyectos más grandes del mundo incluso crean nuevas tecnologías para ellos mismos, ya que los existentes no les convienen.
Freemvork es un entorno de desarrollo para un programador con reglas y herramientas listas. Freemvork, por un lado, ayuda y acelera el desarrollo y, por otro, impone ciertas restricciones. En el freeminker, los proyectos están hechos de complejidad media con la asistencia de millones.
CMS ya es una solución lista para usar, un diseñador, en el que recopilamos el proyecto requerido en partes. No está programado, está sintonizado. Aquí hay muchas restricciones, es difícil e ineficiente ir más allá de los límites de la caja. El CMS crea sitios simples con una asistencia de hasta un millón de usuarios por mes.
Muy a menudo, un nivel de abstracción se basa en otro. Es decir, en lenguaje puro crea freemvorki y en freimvorkah crea CMS. Para cada lenguaje popular hay muchos freeware y CMS diferentes, pero más sobre eso más adelante.
Hoy en día hay una gran cantidad de lenguajes de programación diferentes en los que se crean sitios. Y, además, en todos los idiomas populares hay ejemplos de sitios enormes. Si hace 10 años, hablando de las tecnologías de sitios grandes, todo el mundo hablaba principalmente de Java, hoy puede ser casi cualquier idioma, y decir que los sitios web están hechos en un idioma en particular es un estereotipo. Esto está conectado con el desarrollo de los propios idiomas, durante la última década muchos han avanzado mucho en el desarrollo y han recibido amplias oportunidades. Por supuesto, cada idioma es diferente, y al elegir de nuevo debemos guiarnos por criterios objetivos teniendo en cuenta las tareas del proyecto.
En un lenguaje puro, sin el uso de freeware y soluciones de caja, se escriben grandes proyectos con mayores requisitos de flexibilidad, carga y seguridad. Para proyectos tan grandes, el presupuesto a menudo no es tan importante como la eficiencia. Cuanto más grande sea el proyecto, mayores serán los requisitos de flexibilidad y carga, lo que significa que es más fácil escribir todo desde cero, asignando los mejores especialistas para esto que si toma algunas soluciones preparadas que no están claras quién escribió y es no está claro qué problemas están ocultos en ellos. Por ejemplo, cuando se trata de un pequeño proyecto con una asistencia de 10,000 personas por día, será más barato para nosotros hacerlo en un CMS que consumirá 3 veces más recursos del servidor, ponga un servidor adicional por $ 50 / mes, y funcionará Cuando hablamos de un sitio web con 100 millones de usuarios por día, el costo de agregar servidores será simplemente cósmico, por lo que es más fácil y económico invertir dinero en el desarrollo de una solución en un lenguaje puro que sea óptimo para un proyecto específico.
Cuanto más grande es el proyecto, más pila de tecnologías utiliza. En portales enormes, se pueden usar varios lenguajes de programación a la vez. Nuevamente, llegamos a criterios objetivos para la elección de la tecnología. A menudo, un idioma puede resolver bien un problema, y otro puede resolver otro. Tales proyectos pueden ser tan grandes que sus partes pueden ejecutarse en diferentes servidores, con diferentes dominios (subdominios) y diferentes tecnologías. No tenga miedo de la vinagreta de la tecnología en un proyecto grande, aunque solo necesita admitirlo cuando sea realmente necesario, y también recuerde que no todas las tecnologías son compatibles. El ejemplo más vívido del uso de diferentes tecnologías es Google. Es tan grande que sus diferentes partes están escritas en C / C ++, Java, Python, JS y otros lenguajes. Además, Google está creando activamente nuevas tecnologías, como la popular AngularJS de hoy en día.
Trataré de dar una breve descripción de cada uno de los idiomas populares:
PHP: se utiliza principalmente para proyectos simples y medianos. Muchas soluciones de caja. Programadores relativamente baratos. Antitrend los últimos años, aunque con el lanzamiento de la última versión del lenguaje en el número 7, recibió oportunidades realmente poderosas.
Python: un lenguaje moderno, el desarrollo en él es rápido y de alta calidad. Úselo para proyectos medianos y grandes. Los programadores lo encuentran problemático y no son baratos.
Ruby es un lenguaje moderno, su desarrollo también es rápido. Se utiliza principalmente para el desarrollo de proyectos simples y medianos, a menudo desarrollando nuevas empresas. Los programadores también son pocos y son caros.
Java: su desarrollo es muy largo y costoso. Se utiliza principalmente para grandes proyectos con requisitos específicos.
C # es un equivalente de Java, también utilizado para proyectos grandes, parte de FinTech.
JS – se desarrolla muy rápidamente, la tendencia de los últimos años. Una gran cantidad de desarrollos, y puedes escribir cualquier cosa, incluso juegos. Se utiliza para proyectos medianos y grandes, pero este lenguaje se ha vuelto realmente poderoso recientemente, porque todavía hay pocos ejemplos de proyectos grandes, los expertos son los más caros y los más difíciles de encontrar.
Describí los idiomas más populares que se usan hoy en la web. Hay muchos idiomas nuevos que están creciendo muy rápido, en particular Scala y algunos otros. Pero si bien son bastante jóvenes y crudos. No recomendaría correr después de la moda y escribir sobre ellos hasta que se conviertan en algo más.
Espero haberte ayudado.
Si no logra implementar su idea usted mismo, comuníquese con la compañía GENICO. Hemos estado cooperando con ellos durante tres años, estoy feliz. Comenzamos con una aplicación móvil para mi negocio, ahora en el proceso de desarrollo de un sistema de inteligencia empresarial. La mejor compañía con la que tuve que tratar.