¿Cuál es la mejor pila de tecnología para una aplicación web / móvil?

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

-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.

Para desarrollar una aplicación de Android, necesita usar Java y para las aplicaciones web hay muchas tecnologías como PHP, .net, HTML, CSS que son comunes para cualquier tipo de sitio web. Hay muchos marcos en PHP como:

  • Laravel
  • CodeIgniter.
  • CakePHP.
  • Symfony
  • Marco Zend 2.
  • Phalcon
  • Yii
  • Aura

También puede usar CMS (Content Management Systems) como:

  • WordPress
  • Drupal
  • Fantasma, etc.

Para la base de datos, MySql es comúnmente utilizado por todos los usuarios de alojamiento compartido.

Cómo comenzar con un sitio web:

  1. Obtenga un dominio como http://www.yourwebsite.com -> Para registrar un nombre de dominio, vaya a -> Buscar y comprar dominio
  2. Compre su paquete de alojamiento -> Alojamiento compartido de Linux
  3. Diseñe su página web -> puede usar HTML y CSS para crear un sitio web básico hermoso o si desea cualquier sitio dinámico necesita ir con PHP. También puede crear su sitio web utilizando el creador de sitios web -> Creador de sitios web
  4. Pruebe su sitio antes de ponerlo en funcionamiento.
  5. Sube tus archivos al servidor usando FTP.
  6. Para que su sitio sea visible para el público, concéntrese más en el SEO.

Estos artículos pueden ayudarlo a obtener más información:

  • ¿Vale la pena invertir en SEO?
  • Razones por las que tener un sitio web gratuito es una mala idea.
  • Razones detrás de no clasificar su sitio en Google
  • Cómo se benefician las pequeñas empresas con las aplicaciones móviles
  • ¿Cómo iniciar un sitio web de comercio electrónico?
  • ¿Cómo puede mejorar su clasificación de búsqueda en Google a través del diseño web?
  • Open Web Design build Good Business Logic
  • ¿Por qué llevar su negocio en línea?
  • Lo mejor que debe saber mientras busca servicios de diseño de sitios web
  • GRAN razón por la que su empresa quiere un sitio web
  • Cómo funcionan los sitios de entrega de alimentos en línea

Si la eficiencia es una preocupación, mira React Native y ReactJS para tu UI móvil y web (respectivamente) (Incluso hay algunos proyectos que te permiten convertir tu aplicación ReactNative en una aplicación web React en GitHub, permitiéndote escribir tu UI solo ¡una vez!). Use Node para crear un único servidor API que tanto su interfaz web como la interfaz móvil puedan utilizar para obtener datos JSON de una base de datos (lo que quiera, o, si no quiere tratar con un servidor o base de datos, firebase es bastante guay). Podrá escribir todas sus aplicaciones en javascript moderno, lo que le permitirá concentrarse en dominar Javascript (en lugar de en un idioma diferente para Android, iOS, Web y servidores), o contratar desarrolladores que puedan trabajar en todos los aspectos de la aplicación, en lugar de solo un aspecto.

TECNOLOGÍA MÓVIL WEB

La informática móvil es un término utilizado para describir aplicaciones en dispositivos pequeños, portátiles e inalámbricos y admite la comunicación.

Lo que incluye la informática móvil incluye:

*Teléfono móvil

* Computación usable

* Asistente digital personal (PDA)

* Teléfono inteligente

El desarrollo de la aplicación móvil:

1. Aplicación nativa

Las aplicaciones nativas son aplicaciones que se ejecutan en dispositivos móviles, y se accede a ellas a través de iconos en la pantalla de su dispositivo, generalmente desarrolladas específicamente para 1 plataforma, creadas con un lenguaje de programación específico para poder ejecutarse en una plataforma.

Ejemplos de lenguajes de programación:

– iOS usa el lenguaje de programación C-Objective

– Android usa Java

– Windows phone usando visual C ++ .net

2. Aplicación web móvil

Las aplicaciones web se ejecutan usando un navegador en el dispositivo y generalmente se escriben usando HTML5.

3. Aplicación híbrida

La aplicación híbrida es una aplicación móvil construida e instalada directamente dentro de un dispositivo, creada utilizando el lenguaje de programación web que se combina entre la aplicación nativa y la aplicación web móvil.

Entonces, la diferencia entre los tres es: la aplicación nativa y la aplicación híbrida es una aplicación existente en App Store (iOS) y Play Store (Android), mientras que la aplicación web es una página web optimizada con aplicaciones móviles.

Web móvil

El desarrollo web móvil consta de 2 tipos:

1. Aplicación web móvil.

Los sitios web móviles son similares a los sitios web generalmente creados con HTML, CSS, JavaScript, PHP. Pero la diferencia es que el sitio web móvil está hecho para ser más óptimo con la pantalla del dispositivo móvil como un teléfono inteligente / tableta.

Ventajas:

Crear una web móvil es más fácil que un sitio web receptivo.

Actualización y visualización de noticias importantes.

Se accede a través de una pantalla relativamente pequeña, lo que facilita a los usuarios.

Deficiencia:

Debe tener 2 URL diferentes.

Se necesita un costo adicional para mantener ambos sitios web.

Por lo general, se hace con solo 1 tamaño de pantalla, por lo que el ejemplo de un teléfono inteligente con un cierto tamaño.

2. Sitio web receptivo.

El sitio web receptivo es un sitio web que puede personalizar la apariencia del diseño en función del tamaño de la ventana de visualización de los dispositivos utilizados, desde teléfonos inteligentes, tabletas o computadoras.

Ventajas:

Solo tiene 1 sitio web, pero varios dispositivos con diferentes tamaños de pantalla pueden acceder a él.

Más rentable porque solo hay 1 sitio web.

Solo tiene 1 dirección de dominio.

Con solo 1 sitio web no necesita esfuerzo y costo para su comercialización.

Deficiencia:

El tiempo de carga es largo ya que tiene que cargar todas las secuencias de comandos de anuncios de imagen existentes.

Interrumpa la colocación de banners publicitarios.

Su desarrollo requiere un costo mayor debido a la complejidad del sitio web receptivo.

Para facilitarle la vida, es posible que desee apuntar a una base de usuarios a la vez, móvil o web, no ambos al mismo tiempo.

Si decide usar solo dispositivos móviles sin ningún plan para mudarse a la web más adelante, su elección para la tecnología front-end es simple: Objective-C / SWIFT para iOS o Java para Android.

Si planea desarrollar un cliente web más adelante, probablemente sea mejor comenzar con un marco híbrido (por ejemplo, Ionic) y empaquetar su cliente móvil con Electron.

Si prefiere concentrarse en la web, tener una estrategia de diseño móvil primero dará sus frutos más tarde, especialmente si decide entregar una aplicación móvil en algún momento. Tecnología inteligente, no hay muchas novedades aquí: HTML, (CSS / LESS), Javascript y un marco opcional (Angular, React).

Para la pila de tecnología de back-end, suponiendo que recién esté comenzando un nuevo proyecto, optaría por un servicio de back-end alojado (móvil), al menos hasta que tenga un MVP.

More Interesting

¿Cuáles son las ventajas de usar Extensible Markup Language (XML)?

¿Qué tipo de sistema de pago usan sitios como 99 diseños o ugallery?

¿Qué empresa crea sitios web creativos, efectivos y profesionales?

¿Ya existe un excelente servicio de noticias personalizado?

¿Es perceptivo crear una aplicación web en Ruby (marco de Rails)? ¿Cuáles son los pros y los contras?

¿Existe un asistente personal de código abierto para la web, como la extensión Speak to It Chrome que se puede personalizar?

¿Hay alguna herramienta o aplicación web que convierta el script Jmeter (.jmx) en Gatling (.scala)?

¿Por qué tomó tanto tiempo que una aplicación como What'sapp se generalizara y cuán complejo es el código utilizado para hacerlo?

¿Qué idiomas y herramientas se utilizan para crear aplicaciones web interesantes como esta (lea la descripción)?

¿Qué soluciones utiliza para crear proyectos empresariales (TI, marketing, etc.) a partir de plantillas? ¿Qué tipo de proyectos (tamaño, número de pasos)?

¿La región de Oregon de Amazon EC2 tiene un mejor rendimiento que su región del norte de California?

Para un tipo de aplicación de diario público principalmente monetizada con anuncios, ¿cuál construiría primero, con fondos limitados, un sitio web móvil HTML5 o una aplicación para iPhone?

¿Es posible crear una aplicación web Java sin servlets?

¿Qué opinas de desarrollar mi aplicación web con php y mysql?

Estoy aprendiendo la plataforma Java EE 7. ¿Con qué servidor de aplicaciones (web y EJB) debo familiarizarme para que sea comercializable?