Je pense que la plupart des lecteurs n'ont pas de problèmes de vision, mais je me demande ce qui se passera si leur vision échoue. Il devrait y avoir une photo, mais je ne la vois pas, donc ceux qui sont intéressés à coder sans regarder l'écran, je demande un chat.
Il se trouve que depuis l'enfance, j'ai une très faible acuité visuelle. On dirait que je vois la grande image sans aucune mise au point avec beaucoup de bruit.
Je suis diplômé de l'Institut de Mathématiques, Mécanique et Informatique. Maintenant, je développe une application pour la reconnaissance des dispositifs médicaux.
À la fin de l'école, j'ai décidé d'aller étudier en tant que programmeur, j'ai vraiment aimé, et j'aime toujours, déconner avec un ordinateur. Je voulais non seulement utiliser l'artisanat des autres, mais aussi apprendre moi-même à créer des applications.
À cette époque, j'étais déjà un utilisateur expérimenté de Windows. Du point de vue d'un utilisateur aveugle, j'ai contrôlé en toute confiance l'ordinateur en utilisant les deux lecteurs d'écran, ce qui sera discuté ci-dessous. Du point de vue de l'utilisateur voyant, je savais quoi et où je pouvais modifier le système pour qu'il fonctionne à nouveau, et j'en avais même les premiers revenus.
Pour noter du texte à partir d'un écran d'ordinateur, des applications spéciales (lecteurs d'écran) sont utilisées . Sous Windows, les plus populaires sont Jaws de Freedom Scientific et NVDA open source . . Même à cette époque, le système Windows était déjà organisé de sorte qu'il était possible de l'utiliser pleinement uniquement en utilisant les deux lecteurs d'écran.
Bien sûr, quand il s'agissait de choisir le bios ou de réinstaller le système, vous deviez obtenir l'aide de personnes voyantes.
En développement, le cercle des problèmes semble un peu différent.
Écriture de code
Le code, bien sûr, peut être écrit dans le bloc-notes sous Windows, car il est très bien exprimé par Jaws et NVDA. Mais au-delà du cadre de Pascal, sur lequel, en règle générale, on nous enseigne les bases de la programmation sans auto-complétion du tout.
Toutes les tâches que j'ai effectuées uniquement sur mon ordinateur, parce que je ne voulais pas tourmenter les administrateurs dans les laboratoires avec l'installation NVDA, et je me tais juste sur le prix de Jaws.
L'environnement Pascal ABC était suffisamment exprimé pour la théorie qui nous a été enseignée. Le focus du lecteur d'écran est un point si abstrait qui indique la zone de l'interface graphique qui est désormais exprimée par le lecteur d'écran, il s'intègre bien dans le champ de l'éditeur de texte, et lorsqu'il a été compilé et lancé avec succès, il est passé à la console. En cas d'échec, les miracles ont commencé à utiliser diverses astuces du lecteur d'écran, que je ne surchargerai pas le lecteur dans cet article.
Juste à la fin de l'étude de ce sujet, mon ordinateur portable a été divisé en une couverture et le reste, et sur ce tout mon développement sur Windows s'est arrêté. La seule chose que je peux dire de ce que j'ai déjà essayé d'utiliser pour le développement sur Windows à partir d'IDE sérieux est que seul Visual Studio est normalement exprimé depuis la version 2015. Et toutes les fonctionnalités pratiques, telles que la saisie semi-automatique, ne sont disponibles qu'avec des mâchoires payantes.
Alors. Le fidèle ordinateur portable est vaincu, un nouveau cheval de guerre est nécessaire.
La prochaine machine que j'avais était un MacBook. Je sais que cela coûte cher, mais premièrement, ce sont ces années où environ 30 Yaroslavl ont été donnés pour un McKinley, et deuxièmement, ce n'est tout simplement pas plus pratique pour les aveugles.
Depuis lors, à ce jour, je développe en Xcode, il a été très bien exprimé en utilisant VoiceOver , bien qu'il soit très limité dans le choix du langage de développement: C, C ++, Objective-C et Swift. Peu importe combien je rêvais de commencer à écrire de la merde en Python, cela ne fonctionne tout simplement pas. Dans Visual Studio pour Mac, Python n'a pas encore été livré et VSCode, quel que soit le nombre de développeurs chantant, est exprimé de telle manière qu'il serait préférable de ne pas le faire. T.E. Si l'application n'est pas exprimée, le lecteur d'écran exprime des champs ou des boutons vides, ou est complètement silencieux, dans VSCode, l'interface ressemble à un méli-mélo d'éléments qui sont incompréhensibles, complètement indépendants, la moitié ne clique pas, la moitié fait apparaître de nouveaux cadres presque dans l'autre extrémité de la fenêtre.
Processus de développement
Le début du développement ne diffère en rien de ce que tout le monde fait: créer un projet, créer un référentiel, si nécessaire, d'autant plus que le référentiel Xcode GIT est créé par lui-même.
Comme je l'ai dit ci-dessus, Xcode est limité dans son choix de langue, donc j'utilise généralement C ++ ou Swift.
Xcode lui-même crée le fichier principal et décrit la fonction principale elle-même.
Comme tout le monde, j'ajoute des fichiers au besoin, mais ceux qui, malheureusement, ne peuvent pas être évités dans le développement de projets complexes, sont l'auto-complétion, à partir d'extraits de différentes parties du code, tels que les descriptions de classe, ou des boucles qui accélèrent simplement le développement, et se terminant par méthodes ou fonctions de classe avec de longs noms accrocheurs qui sont tout simplement très difficiles à garder dans la tête sans accès à la mémoire visuelle.
Débogage
Le code écrit doit être débogué. Eh bien, après avoir écrit le projet, le programme a démarré et a immédiatement fonctionné correctement, mais quand était-il?
Premièrement, les erreurs syntaxiques, sémantiques et de ponctuation. Le navigateur d'erreur dans Xcode est disponible, et tout en mettant en évidence une erreur spécifique, il déplace le curseur d'édition sur la ligne souhaitée, mais il est mauvais qu'il n'indique pas le numéro du caractère où il a vu cette erreur, ou ne prononce pas sa VO, et ne reste que .
Je veux dire séparément pour les parenthèses, pour autant que je sache, les voyants souffrent également de parenthèses ouvertes ou fermées supplémentaires, mais si la personne voyante peut essayer de les identifier visuellement, si elle a encore appris quelque chose et ne salit pas, mais le code écrit, il trouvera la confusion de l'accolade . Sans yeux - c'est mauvais, cela aide en partie à ce que les extraits incluent généralement le nombre nécessaire de crochets, et un IDE attentionné ferme les crochets si l'utilisateur les ouvre, mais ici des erreurs sont possibles.
La seule façon est de découper le corps de la fonction depuis le début, de commencer, si c'est le cas, de retourner le corps, et ainsi de suite avec chaque bloc de code, jusqu'à ce que la parenthèse soit détectée.
Le projet a été assemblé, le programme a démarré et [LLDB] est apparu dans la console ci-dessous au lieu du "programme terminé et souhaité avec le code de sortie: 0", je ne peux pas utiliser le débogueur de bas niveau, donc je perçois cette inscription pour qu'il y ait quelque chose dans la logique du programme mal tourné.
Les messages du débogueur sont rarement compris. Par conséquent, vous pouvez piquer le programme entier avec des points d'arrêt, mais sans être aperçu, il est très difficile de comprendre à quel moment vous vous êtes arrêté ou à quel endroit le programme se bloque. Par conséquent, j'arrange personnellement des conclusions comme "test #" dans différentes parties de Main, si l'application n'affiche rien, si elle s'affiche, j'arrange les conclusions là où l'application se bloque, par exemple, en commençant par l'entrée d'une fonction suspecte, et je vois quelle sortie le programme atteint , après quoi il ne reste plus qu'à rattraper l'erreur entre la conclusion atteinte et non atteinte.
En effectuant une tâche de test pour une entreprise, j'ai maîtrisé le panneau Vue variable, c'est un tel panneau dans la zone du débogueur, qui affiche des variables en direct si un point d'arrêt est défini, grâce à lui j'ai analysé json sérialisé dans un dictionnaire, avec un tableau intégré de dictionnaires.
Contrôle de version
Xcode lui-même peut fonctionner avec GIT, mais il est préférable de faire certaines choses via le terminal.
Terminal
Le terminal sur Mac est exprimé, je veux dire standard. Bien sûr, ce n'est pas pratique lorsque VO prononce tout le texte affiché, mais en utilisant les capacités de VO, vous pouvez écouter la sortie par des mots, des lignes et même par des caractères. Vous pouvez donc utiliser le terminal, et même l'un des éditeurs de texte de la console, nano exprimé avec brio. De plus, le terminal vocal permet au programmeur aveugle d'utiliser des gestionnaires de packages tels que Home brew ou cocoapods.
Conclusion
Ayant des problèmes de vision, vous pouvez devenir ou rester développeur. Il existe un nombre suffisant de programmes d'accès à l'écran différents pour différentes plates-formes: Jaws, NVDA et Narrator pour Windows, orca dans GNOME pour Linux, VoiceOver sur Mac et des éditeurs de code qui sont exprimés, tels que: Visual Studio sur Windows et Xcode sur Mac. Surtout qu'il y a des rapports qui ajoutent l'accessibilité à certains éditeurs, et je suis sûr qu'avec le temps, VSCode et d'autres idées peuvent être utilisées par des développeurs aveugles.
Alors, bien sûr, prenez soin de votre vue de toutes les manières possibles, mais si cela se produisait, vous n'auriez pas à quitter la profession, il vous suffirait de vous adapter aux programmes d'accès à l'écran et d'adopter mon approche ou d'inventer la vôtre.
Si vous êtes intéressé, écrivez dans les commentaires les domaines de développement qui vous intéressent aveuglément, et je les couvrirai dans de futurs articles. Je pense écrire sur la façon dont je développe une interface graphique, mais je suis ouvert à vos suggestions.