
600 mil personas ven el horario en nuestro día, por lo que cada pequeño cambio tiene un efecto a gran escala. Quiero informar un poco sobre el hecho de que agregamos trenes eléctricos a la aplicación a solicitud de la comunidad. Y para agradecer a todos los que nos dieron su opinión y para mostrar lo que cambiamos.
La primera característica importante es el modo fuera de línea. No lo presentamos durante mucho tiempo, porque el significado del programa está precisamente en cambios constantes. Y si ya ha superado la cobertura celular, es mejor actualizar para no llegar al tren cancelado.
Al final resultó que, no hacerlo es una idea más o menos, porque:
- Muchas personas quieren ver el calendario como un todo, y no de acuerdo con la situación actual.
- Se ha abierto una forma completamente inusual de usar la aplicación: desde una escalera mecánica. Y en las escaleras mecánicas, generalmente algún tipo de interconexión 3G-LTE o simplemente un cambio de estación base. En la hora pico, también se "estira" entre los suscriptores celulares. En general, en el metro a menudo sucede que Internet está de alguna manera allí, pero de hecho no hay conexión.

Gracias
OVAV : comenzamos a detectar tales situaciones. Ahora el modelo de acción es este: si hay una conexión rápida, la programación actual siempre se carga. Si no hay conexión, se muestra la versión fuera de línea (esto es en realidad de la memoria caché local), en ella está la marca de tiempo cuando era relevante. Mientras navegamos, podemos lograr obtener una actualización (los paquetes son muy livianos) e inmediatamente mostrarla directamente en la interfaz sobre la marcha. Luego se eliminará la marca sobre el modo fuera de línea.

El modo sin conexión agrega automáticamente las rutas seleccionadas y los horarios vistos (historial). Además, no se trata de una descarga manual y no solo de un caché: revisamos todas sus rutas después de acceder a nuestros servidores y actualizamos todo para el modo sin conexión. No puede abrir sus rutas favoritas durante años, pero siempre habrá una versión nueva desde el último momento en que tuvo Internet con la aplicación abierta. El historial se almacena en caché para esos días en los que ya miró el calendario.
Como los paquetes son muy livianos (hay datos XML para un par de kilobytes por ruta), todo esto es muy rápido.
Predicción tardía
Los trenes eléctricos que utilizan la API del sistema de transporte dan un estado con un retraso de un paso gráfico (10 minutos), y el estado estará en los últimos 10 minutos. Es decir, a las 14:22 puede obtener una imagen real del movimiento de los trenes a las 14:12. Y a las 14:12 se ensamblará con un marco de 10 minutos, es decir, en el peor de los casos, el retraso será de 19-20 minutos, en el mejor de los casos - 10. Jugamos un poco con los modelos modelo y los datos históricos y aprendimos a reducir esta ventana a dos minutos para predecir el movimiento del resto. trenes Es decir, si el tren llega tarde no debido a un accidente repentino, sino debido a un cambio táctico en el horario, entonces lo descubriremos de manera muy confiable 8-18 minutos antes de los datos reales.
Usabilidad
Sobre todo teníamos preguntas sobre usabilidad. Sí, hace un año, no abrimos de inmediato la pantalla que necesitabas: queda un clic adicional en el calendario. Gracias a
airy por el boleto elevado.
Ahora la última búsqueda se abre inmediatamente en la pantalla de inicio. Además, supervisamos la mitad del día: si abre la aplicación después del almuerzo, reorganizamos las estaciones de salida y destino en algunos lugares.
Encontraron un insecto muy hermoso, que ellos mismos colocaron hace varios años. Y resultó que la misma persona que lo trajo lo estaba buscando. En general, érase una vez, necesitábamos un momento cuando mañana llegara el ferrocarril. La medianoche no encaja. El hecho es que el día del planeta termina a medianoche y la gente, en otro momento. Y cuando veas trenes eléctricos para hoy, esperas que después del de las 23:50, se muestre 00:20 sin cambiar las fechas.
La pregunta era dónde establecer el límite: ¿aparecer hasta la una de la mañana, hasta las dos, hasta las tres, antes de las cinco de la mañana?
Como somos matemáticos, modelamos flujos y tomamos en cuenta la distribución de vuelos. Como no había grandes datos en ese momento, se limitaban a constantes. Se presentó el tiempo mágico para Moscú: 2:52, fue en este momento que fue más conveniente cambiar el día.
Durante unos cinco años, se profundizó cada vez más en el código. Luego hubo un par de boletos sobre el hecho de que los trenes están desapareciendo por hoy: estas son ciertas consultas de búsqueda entre las 00:00 y las 2:52 (pensaron que hoy era ayer). Y ayer se fueron todos los trenes.
Como resultado, nos dividimos en categorías más comprensibles, como deberíamos haber hecho inicialmente si no hubiéramos estado persiguiendo la optimización en esos años (y estábamos persiguiendo).
Llovieron quejas sobre un tema brillante: dicen que es imposible ver el horario por la noche. Oscurecieron, ahora está de moda. Lo que es característico: hasta que se puso de moda, nadie escribió tales boletos.
A veces, los boletos se vierten en el sentido de que "ha perdido trenes eléctricos". No desaparecen aquí, sino en el CPPK y otros transportistas (en el calendario). El modelo de comportamiento estándar es que cuando un tren abandona el horario, simplemente se disuelve en el aire. Los usuarios que lo recordaron, piensan que de alguna manera están buscando algo mal y están nerviosos. Siente la pérdida de control. Ahora hemos creado el fantasma del tren: una línea en el horario con la etiqueta "Cancelado". La gente se volvió más tranquila, pero no se nos considera desarrolladores malvados que roban trenes de ciudadanos honestos.
Echo de menos la estación. Hay varios lugares donde los trenes eléctricos en una estación de ferrocarril están en dos lugares diferentes. Por ejemplo, en el backend del horario de Moscú Kursk hay dos piezas: una: Kursky, la segunda: direcciones de Gorki. Estas son dos estaciones independientes con coordenadas comunes. El problema resultó ser que puede construir una ruta desde uno de ellos a un punto familiar directamente, o puede perder la interfaz y seleccionar otro punto de partida, construir una ruta con cuatro transferencias durante dos horas más, pero al mismo punto. La gente se quejó. Conectamos dichos lugares en un punto y corregimos automáticamente las entradas en varios casos.
La segunda característica similar : hay muchas estaciones con nombres similares. Le preguntamos explícitamente al usuario qué quiere decir exactamente cuando la probabilidad de colisión es alta.
Muchas mejoras menores con la geolocalización: ahora el aviso para ingresar a la estación depende de su posición aproximada, le mostramos las más cercanas.
Karpion escribió muchos deseos sobre cómo debería verse la aplicación junto con otros modos de transporte. Pensamos que lo habíamos completado, luego nos enfrentamos con dificultades computacionales, y nuevamente pensamos que lo habíamos completado ... En general, resultó en un lugar completamente diferente, en algún lugar mejor, pero en algún lugar hay callejones sin salida. Después de una versión estable, mis colegas lo contarán con más detalle.
Mientras tanto, puedo decir que realizamos un estudio sobre cuánto es necesario para cruzar los autobuses con trenes eléctricos. Resultó que la correcta. Pero, dado que amamos los datos, surgió otra cosa importante en el proceso de investigación. Comparamos las direcciones en Moscú, donde es más conveniente en autobús y dónde, en tren.
Mire, hemos identificado las direcciones donde importa (o donde puede ir directamente en autobús donde se necesitan trenes de cercanías). Ordenar por popularidad de destino. Entonces, si tiene familiares que viven en estas ciudades, entonces quizás esta comparación les resulte interesante.
En general, aproximadamente el 50% de las direcciones de los trenes (en las cuales ambas estaciones tienen conexión con la ciudad) tienen una alternativa al horario del autobús. Al mismo tiempo, la intersección con los trenes de larga distancia es pequeña, alrededor del 7%.
Hicieron algo muy bueno (para nosotros): la característica "plataforma y ruta". Es en las 50 estaciones más populares donde comenzamos a predecir dónde se servirá el tren eléctrico en función de la historia de su suministro y los movimientos del tren. Al mismo tiempo, los pasajeros de la aplicación pueden votar por la plataforma de salida. Es decir, usted vino, se subió a su tren y hizo clic de esta manera:

Si hay suficientes votos, el camino y la plataforma se muestran a todos los pasajeros. Si confiamos en usted (y confiamos después de unos pocos votos correctos), tendrá una voz más poderosa. Hace quince años, desconocidos nos llamaron para decir que en algún lugar hubo una cancelación, y lo pusimos en un horario (porque solo había papel). Incluso entonces, recordamos que los pasajeros estaban felices de ayudarse mutuamente. Creo que ahora entenderemos cómo hacerlo mejor y seguiremos mirando en esta dirección.
Bueno, y aunque vimos diferentes características para mayor comodidad, también hicimos un modelo de la población de trenes. Ayuda a predecir si viajará en diferentes trenes de pie o sentado. Mientras lo ejecutamos, probablemente te cuente más sobre cómo terminó.
Continuamos viendo el horario más preciso en Runet, nos mantenemos en contacto y estamos listos para que usted diga qué más puede y debe hacerse. No siempre hacemos las cosas necesarias rápidamente, pero siempre escuchamos. Por lo tanto, regañarnos o alabarnos, por favor: esto es útil.