
600 000 personnes consultent l'horaire de notre journée, chaque petit changement a donc un effet à grande échelle. Je veux parler un peu du fait que nous avons ajouté des trains électriques à l'application à la demande de la communauté. Et pour remercier tous ceux qui nous ont fait part de leurs commentaires, et pour montrer ce que nous avons changé.
La première fonctionnalité importante est le mode hors ligne. Nous ne l'avons pas introduit depuis longtemps, car le sens du planning est précisément en constante évolution. Et si vous avez déjà dépassé la couverture cellulaire, il est préférable de surclasser pour ne pas arriver au train annulé.
En fin de compte, ne pas le faire est une idée, car:
- Beaucoup de gens veulent voir le calendrier dans son ensemble, et non en fonction de la situation actuelle.
- Une façon complètement inhabituelle d'utiliser l'application s'est ouverte: à partir d'un escalator. Et sur les escaliers mécaniques, généralement une sorte d'interconnexion 3G-LTE ou tout simplement un changement de station de base. Aux heures de pointe, il est également «étiré» entre les abonnés des cellules. En général, dans le métro, il arrive souvent qu'Internet soit comme tel, mais il n'y a pas de connexion en fait.

Merci
OVAV : nous avons commencé à détecter de telles situations. Maintenant, le modèle d'action est le suivant: s'il y a une connexion rapide, le programme actuel est toujours chargé. S'il n'y a pas de connexion, la version hors ligne est affichée (il s'agit en fait du cache local), c'est l'horodatage quand il était pertinent. Au fur et à mesure que nous naviguons, nous pouvons arriver à obtenir une mise à jour (les packages sont très légers) et l'afficher immédiatement directement dans l'interface à la volée. Ensuite, la marque sur le mode hors ligne sera supprimée.

Le mode hors ligne ajoute automatiquement les itinéraires sélectionnés et les horaires consultés (historique). De plus, ce n'est pas un téléchargement manuel et pas seulement un cache - nous parcourons tous vos itinéraires après avoir accédé à nos serveurs et tout mettre à jour pour le mode hors ligne. Vous ne pouvez pas ouvrir vos itinéraires préférés pendant des années, mais il y aura toujours une nouvelle version à partir du moment où vous avez eu Internet pour la dernière fois avec l'application ouverte. L'historique est mis en cache pour les jours où vous avez déjà consulté le calendrier.
Étant donné que les packages sont très légers (il existe des données XML pour quelques kilo-octets par route), tout cela est très rapide.
Prédiction tardive
Les trains électriques utilisant l'API du système de transport donnent un statut avec un retard d'un pas de graphe (10 minutes), et le statut sera dans les 10 dernières minutes. Autrement dit, à 14h22, vous pouvez obtenir une image réelle du mouvement des trains à 14h12. Et à 14h12, il sera assemblé avec un cadre de 10 minutes, c'est-à-dire, dans le pire des cas, le décalage sera de 19-20 minutes, au mieux - 10. Nous avons joué un peu avec les modèles de modèle et les données historiques et appris à réduire cette fenêtre à deux minutes pour prédire le mouvement du reste trains. Autrement dit, si le train est en retard non pas en raison d'un accident soudain, mais en raison d'un changement tactique dans le calendrier, nous le saurons de manière très fiable 8 à 18 minutes plus tôt que les données réelles.
Convivialité
Surtout, nous avions des questions sur la convivialité. Oui, il y a un an, nous n'avons pas ouvert immédiatement l'écran dont vous aviez besoin: un clic supplémentaire sur le planning à gauche. Merci à
Airy pour le billet surélevé.
Maintenant, la dernière recherche s'ouvre immédiatement sur l'écran de démarrage. De plus, nous surveillons la moitié de la journée: si vous ouvrez l'application après le déjeuner, nous réorganisons les gares de départ et de destination par endroits.
Ils ont trouvé un très beau bug, qu'ils ont eux-mêmes posé il y a plusieurs années. Et il s'est avéré que la même personne qui l'avait apportée le cherchait. En général, il était une fois, nous avions besoin d'un moment où demain arrive sur le chemin de fer. Minuit ne convient pas. Le fait est que le jour de la planète se termine à minuit, et les gens - à un autre moment. Et lorsque vous regardez des trains électriques pour aujourd'hui, vous vous attendez à ce qu'après celui de 23h50, il soit affiché à 00h20 sans changer de date.
La question était de savoir où définir la frontière: se présenter jusqu'à une heure du matin, jusqu'à deux, jusqu'à trois, avant cinq heures du matin?
Étant mathématiciens, nous avons modélisé les flux et pris en compte la répartition des vols. Puisqu'il n'y avait pas de données volumineuses à l'époque, elles étaient limitées aux constantes. Le temps magique a été mis en évidence pour Moscou - 2h52, c'est à ce moment qu'il était plus pratique de changer de jour.
Pendant environ cinq ans, il est allé de plus en plus profondément dans le code. Ensuite, il y avait quelques billets sur le fait que les trains disparaissent pour aujourd'hui: ce sont certaines requêtes de recherche entre 00h00 et 2h52 (nous pensions que c'est aujourd'hui hier). Et hier, tous les trains sont partis.
En conséquence, nous nous sommes divisés en catégories plus compréhensibles, comme nous aurions dû le faire initialement si nous n'avions pas poursuivi l'optimisation au cours de ces années (et que nous poursuivions).
Des plaintes ont plu sur un sujet brillant: ils disent qu'il est impossible de regarder le programme la nuit. Ils l'ont rendu sombre, maintenant c'est à la mode. Ce qui est caractéristique: jusqu'à ce qu'il devienne à la mode, personne n'a écrit de tels billets.
Parfois, des billets étaient versés à l'effet que «vous avez perdu des trains électriques». Ils ne disparaissent pas ici, mais au CPPK et autres transporteurs (dans le calendrier). Le modèle de comportement standard est que lorsqu'un train quitte l'horaire, il se dissout simplement dans l'air. Les utilisateurs qui se souviennent de lui, pensent qu'ils cherchent quelque chose de mal et sont nerveux. Ressentez la perte de contrôle. Maintenant, nous avons fait le fantôme du train: une ligne de l'horaire intitulée «Annulée». Les gens sont devenus plus calmes, mais nous ne sommes pas considérés comme de mauvais développeurs qui volent des trains à des citoyens honnêtes.
Mlle la station. Il y a plusieurs endroits où les trains électriques dans une gare sont à deux endroits différents. Par exemple, dans le backend du calendrier de Moscou Kursk, il y a deux pièces: une - Kursky, la seconde - Gorky directions. Ce sont deux stations indépendantes avec des coordonnées communes. Le problème s'est avéré être que vous pouvez construire un itinéraire directement depuis l'un d'eux vers un point familier, ou vous pouvez manquer l'interface et sélectionner un autre point de départ, construire un itinéraire avec quatre transferts pendant deux heures de plus, mais au même point. Les gens se sont plaints. Nous avons connecté ces endroits en un point et corrigé automatiquement les entrées dans un certain nombre de cas.
La deuxième caractéristique similaire - il y a beaucoup de stations avec des noms similaires. Nous demandons explicitement à l'utilisateur ce qu'il voulait dire exactement lorsque la probabilité de collision est élevée.
Beaucoup d'améliorations mineures avec la géolocalisation: maintenant l'invite pour entrer dans la station dépend de votre position approximative, nous affichons celles les plus proches de vous.
Karpion a écrit de nombreux souhaits sur la façon dont l'application devrait ressembler avec d'autres modes de transport. Nous pensions que nous l'avions terminé, puis nous avons été confrontés à des difficultés de calcul, puis à nouveau nous avons pensé que nous l'avions terminé ... En général, cela s'est avéré quelque part complètement différent, quelque part mieux, mais quelque part il y a des impasses. Après une version stable, mes collègues vous en diront plus en détail.
En attendant, je peux dire que nous avons mené une étude sur combien il est nécessaire de traverser les bus avec des trains électriques. Il s'est avéré que le bon. Mais, comme nous aimons les données, une autre chose importante est apparue dans le processus de recherche. Nous avons comparé les directions à Moscou, où c'est plus pratique en bus et où - en train.
Regardez, nous avons identifié les directions où cela compte (ou où vous pouvez aller directement en bus là où les trains de banlieue sont nécessaires). Trier par popularité de destination. Donc, si vous avez des parents vivant dans ces villes, cette comparaison leur sera peut-être intéressante.
En général, environ 50% des directions des trains (dans lesquels les deux gares sont reliées à la ville) ont une alternative à l'horaire des bus. Dans le même temps, l'intersection avec les trains longue distance est petite, environ 7%.
Ils ont fait une chose très cool (pour nous): la fonctionnalité «plate-forme et chemin». C'est dans les 50 gares les plus fréquentées que nous avons commencé à prévoir où le train électrique sera desservi en fonction de l'historique de son approvisionnement et de ses déplacements. Dans le même temps, les passagers de l'application peuvent voter pour la plate-forme de départ. C'est-à-dire que vous êtes venu, êtes monté dans votre train et avez cliqué comme ceci:

S'il y a suffisamment de votes, le chemin et la plate-forme sont montrés à tous les passagers. Si nous vous faisons confiance (et nous faisons confiance après quelques votes corrects), alors vous aurez une voix plus puissante. Il y a quinze ans, des inconnus nous ont appelés pour nous dire que quelque part il y avait une annulation, et nous l'avons inscrite à l'horaire (car il n'y avait que du papier). Même alors, nous nous souvenions que les passagers étaient heureux de s'entraider. Je pense que maintenant nous comprendrons comment mieux faire et nous continuerons à regarder dans cette direction.
Eh bien, et bien que nous ayons scié différentes fonctionnalités pour plus de commodité, nous avons également fait un modèle de la population de trains. Cela aide à prévoir si vous monterez dans différents trains en position debout ou assise. Pendant que nous l'exécutons, je vais probablement vous en dire plus sur la façon dont cela s'est terminé.
Nous continuons de voir le calendrier le plus précis de Runet, restons en contact et sommes prêts à vous dire ce qui peut et doit être fait d'autre. Nous ne faisons pas toujours rapidement les choses nécessaires, mais nous écoutons toujours. Par conséquent, grondez-nous ou félicitez-nous, s'il vous plaît: c'est utile.