
Pour l'avenir, je voudrais attirer l'attention sur la situation chaotique avec le vainqueur de la première étape de la compétition. Le vainqueur a remporté 50 000 présidents américains. MAIS, il y avait au moins un autre développeur qui a écrit une application identique et n'a été récompensé en aucune façon. Il n'a même pas pris la dernière place. Ce développeur a publiquement, via son site Web - https://tgcontest.braychuk.com/ , contacté l'équipe de Telegram avec des questions. Si quelqu'un en sait quelque chose, veuillez écrire dans les commentaires.
Commençons donc.
Comme vous le savez, récemment, Telegram a envoyé un message direct à tous ses utilisateurs disant qu'elle allait organiser un concours de programmation.
Comme c'est cool, je pensais.
Eh bien, lisez les termes du concours Android:
Et ce que nous voyons là - "Le critère principal est la vitesse et les performances." Super! N'est-ce pas ce que beaucoup de programmeurs aiment les tâches d'optimisation? Je les adore. Ainsi, la décision de participer au concours a été prise, il reste à déterminer l'approche de mise en œuvre. Une chose est claire, vous devez aborder la solution du problème de performance de manière approfondie et fondamentale. Donc, pour briser sinon tous, alors au moins la majorité. Étant donné qu'un autre critère de la concurrence, qui, bien sûr, était moins important que la performance, était la conception de l'interface utilisateur, nous devons très probablement tourner autour de l'interface utilisateur Java et utiliser les contrôles standard qui apparaissent dans l'esquisse de conception. Cependant, il ne sera pas rentable d'utiliser l'interface utilisateur Java et le rendu dans la zone de superposition d'OpenGL, ici au moins, cela entraînera une réduction du changement de contexte. Mais nous voulons briser tout le monde avec des performances élevées. L'interface utilisateur Java disparaît donc, nous misons sur les performances et nous travaillons sur la conception. Laissez les concepteurs le faire, nous sommes de fiers programmeurs :) . La solution est évidente - utilisez OpenGL plein écran, vertex shader et écrivez tout le code en NDK / C ++. C'est-à-dire nous avons juste besoin d'écrire un moteur graphique / rendu, qui est généralement écrit pour les jeux mobiles, afin de simplement dessiner des graphiques Telegram.
Oui, je sais, je suis fou :)
Il y a un gros inconvénient pour cette approche - nous aurons besoin d'écrire tous les éléments de l'interface utilisateur et de leur prescrire l'interactivité, ce qui prendra beaucoup de temps. Par conséquent, nous nous attardons sur l'implémentation de l'interface utilisateur la plus simple: nous écrivons des widgets interactifs de l'interface utilisateur simples qui sont capables de déterminer le clic sur eux-mêmes et de le faire en dynamique (lorsque vous vous déplacez sur l'écran, en temps réel).
Il s'est avéré approximativement ce qui suit:
En fait, tout cela a été mis en œuvre en deux semaines, en temps libre du travail de bureau, avec des nuits blanches, bien sûr.
Que fait Telegram? Coupe complètement ma candidature de la concurrence avec le libellé «Non-conformité avec la conception, affichage de graphiques sur un écran».
STA?
Probablement, je me suis d'abord trompé sur la concurrence :) Donc, ce n'est pas une compétition de développeurs qui peuvent montrer le niveau de leurs compétences à travers la mise en œuvre d'applications / algorithmes performants, mais plutôt une compétition de designers? Ou s'agit-il d'une concurrence maximale pour les développeurs d'interface utilisateur qui sont capables d'utiliser des outils de conception d'interface utilisateur standard, ainsi que de pouvoir toucher le canevas sur la même interface utilisateur?
D'accord, les figues avec lui, avec le design. Je ne discute pas, il y a un écart :) . Et qu'en est-il du libellé - «afficher les graphiques sur un seul écran»? Mais c'est déjà intéressant.
Si vous regardez les conditions du concours, nous ne verrons pas de telles exigences à partir du mot «complètement». Ce n'est donc pas possible. Alors j'avais tort quelque part. Telegram suit strictement ses croquis de conception et les suit strictement. Donc, cette exigence "visuellement" devrait être affichée dans les mêmes croquis.
Nous regardons les croquis:
Ahem ... Nulle part il n'est visible que les graphiques sont sur une «feuille» commune et défilent. Au lieu de cela, nous voyons des graphiques dessinés séparément sur un seul écran. Il y a deux options possibles:
- Tous les horaires sont vraiment sur la même feuille et le même défilement, mais ils ne l'ont tout simplement pas montré visuellement sur les croquis et n'ont tout simplement pas enregistré explicitement tout dans la compétition
- Les graphiques changent en quelque sorte. Comment il n'est pas indiqué, ce qui signifie qu'il est "par défaut" et, par conséquent, laissé au développeur. Il peut s'en rendre compte à sa discrétion.
En général, l'équipe Telegram, apprenez à écrire les savoirs traditionnels, cela vous sera utile ;) . Sérieusement.
Évaluation des performances
Il résulte de ce qui précède que ma candidature n'a pas été à la hauteur d'une évaluation des performances. Mais quand même. Comment le chariot évalue-t-il les performances?
Cela ressemble à ceci: "Nous avons testé votre application sur de vieux appareils et cela fonctionne moins bien que les autres."
STA?
Télégramme, où sont les chiffres? Tableaux récapitulatifs des tests, comparaison avec d'autres applications sur la base de données objectives exprimées en termes numériques?
Cela aurait dû ressembler à ceci:
- Nous avons pris votre application, l'avons lancée à 1000 points de départ de notre graphique, puis à 10 000, puis à 100 000 et à 1 000 000, nous avons obtenu ces numéros FPS
- Votre candidature a reçu plus de points pour les performances obtenues.
- Pour la différence entre la conception et la merde importante pour nous, votre candidature a reçu moins de points
- En conséquence, au total, votre candidature a marqué N points
- Et par conséquent, votre application est Kth dans le tableau des résultats globaux
Cette approche dans l'évaluation de quelque chose est une évidence pour tout professionnel. Peut-être que Telegram évalue également la qualité de ses algorithmes de communication audio? À l'oreille? Pas étonnant alors pourquoi cela laisse encore beaucoup à désirer. Mes collègues américains, dans de tels cas, aiment dire: «C'est une douleur dans le cul». Néanmoins, il est juste de dire que j'avais une bien meilleure opinion de l'équipe Telegram dans son ensemble.
Évaluation de la stabilité de l'application
Et la fin.
Comment le chariot évalue-t-il la stabilité de l'application? En effet, selon ce critère, le Cart a coupé toute une tonne d'applications de la concurrence. Pour un instant, j'attirerai votre attention sur le fait que le critère de stabilité dans les conditions du concours «Stage 2» n'apparaît pas du mot «complètement».
Mais néanmoins. Ils ont découpé les applications avec un libellé de modèle: «Nous avons lancé votre application sur plusieurs appareils. Sur l'appareil K et M, il s'est écrasé "
Je suis gêné de demander, mais où est la liste des appareils sur lesquels vous allez tester des applications concurrentes? Cette liste était censée être publique, de sorte que tous les concurrents en étaient informés à l'avance. Sinon, qui garantira que si une application sur 10 tombe en panne sur un appareil sur 5, alors cela fonctionne moins stable que toutes les autres applications qui ne sont pas «tombées»? Mais que se passe-t-il si je prends ces 9 applications et les exécute sur les 5 autres appareils sur lesquels elles planteront tout, sinon une ne l'est pas? Comment aimez-vous ce cas? Comment Telegram évaluera-t-il alors la stabilité des 10 applications?
Ainsi, il y a une erreur classique commise par le survivant.
Applaudissez Télégramme, rideau ....
La conclusion du pathologiste
Ainsi, nous concluons que ce concours est une pyramide financière et alimentaire, Naedalovo -
Et malheureusement, de nombreux participants au concours ne comprennent pas non plus comment et pourquoi ils ont pris tel ou tel endroit, ou ne l'ont pas pris du tout. Bien sûr, je suis désolé pour le temps et les efforts consacrés. Mais tous les regrets seraient nivelés si le concours était ouvert et transparent.
Merci de votre attention!
PS
Téléchargez apk-chechka d'ici