GNU/Linux >> Tutoriels Linux >  >> Linux

Comment :Introduction à la programmation - Votre premier programme

Série de tutoriels

Ceci est la partie 2 d'une série en 5 parties pour Introduction à la programmation

  1. Introduction à la programmation :Premiers pas
  2. Introduction à la programmation :votre premier programme
  3. Introduction à la programmation :variables, types et manipulation de données
  4. Introduction à la programmation :contrôle de flux
  5. Introduction à la programmation :programmation orientée objet

Vous êtes de retour !

C'est un plaisir de vous revoir, et j'espère que vous avez célébré profondément après avoir terminé le premier article de cette série sur Atlantic.NET dans lequel vous avez construit votre premier programme et l'avez exécuté tout en apprenant comment ce que vous construisez passe du code lisible par l'homme à la machine. consignes.

Ne vous inquiétez pas, si vous n'avez pas encore lu cet article, vous pouvez le faire maintenant. J'attendrai ici votre retour.

Dans cette partie de la série, nous allons explorer davantage ce premier programme et nous concentrer sur la compréhension de plus de concepts de programmation et de développement de logiciels. Plus précisément, nous examinerons l'entrée et la sortie, vous présenterons un concept appelé orientation objet , et découvrez comment et pourquoi nous voulons cacher du code complexe en utilisant l'abstraction .

Passons aux choses sérieuses, d'accord ?
.

Creusez dans "Hello World !"

Dans l'article précédent, nous avons construit un "Hello World!" programme composé de deux lignes de code que nous avons écrit nous-mêmes. Il y avait des lignes de code supplémentaires, mais Visual Studio les a générées pour nous, et elles sont spécifiques au type de programme que nous construisons et au langage que nous utilisons, alors ne perdons pas plus de temps dessus pour l'instant.

Cependant, les deux lignes que nous avons ajoutées se concentrent spécifiquement sur la sortie et l'entrée, alors examinons-les de plus près.

Console.WriteLine("Hello World!");
Console.ReadLine();

Ignorer la Console. (lire :"point de console") partie des lignes pour l'instant, vous pouvez voir qu'il y a une instruction à la machine d'écrire une ligne puis de lire une ligne. Dans un programme ou une application console comme celui que nous construisons actuellement, ce sont deux des principales façons d'interagir avec l'utilisateur ; nous sortons quelque chose sur l'écran de la console avec Console.WriteLine et obtenir l'entrée de l'utilisateur avec Console.Readline . Le résultat ressemble à la figure 1 ci-dessous.

Figure 1 :sortie de la console

Cette application console n'est qu'un des nombreux types d'applications que nous pouvons créer. Différents types d'applications nécessitent différentes approches d'entrée et de sortie. Si nous construisons une simple page Web, par exemple, il n'y a pas de console depuis et vers laquelle nous pouvons interagir avec l'utilisateur. La page Web est juste un morceau de texte statique et peut-être quelques images. Bien qu'un programme puisse le générer, il n'est toujours pas très interactif de la même manière que nous construisons l'interactivité dans une application console.

Remarque :Au début du Web, il existait une méthode appelée CGI (Common Gateway Interface) qui vous permettait de placer des applications de console comme celles-ci directement sur une page Web et d'interagir avec elles via l'URL.

.

Un exemple de code de page Web

Une page Web a une méthode complètement différente de comportement interactif. Regardez le code de page Web suivant, par exemple, et ne vous inquiétez pas s'il vous est complètement étranger :

<html>
<head>
<title>Hello World!</title>
</head>
<body>
<h1>Hello world!</h1>
</body>
</html>

Cette page Web présente simplement à l'utilisateur un titre disant "Hello world!" et pas grand-chose d'autre, comme ci-dessous.

Figure 2 :Page Web Hello World

À elle seule, cette page Web - ou même n'importe quelle page Web - ne peut pas faire grand-chose. Pour créer de l'interactivité, les navigateurs peuvent interpréter les instructions de commande via des langages tels que JavaScript pour manipuler la page Web de différentes manières, notamment en manipulant la mise en page, le contenu et la structure de la page Web.

Par exemple, ci-dessous dans la figure 3, j'utilise JavaScript sur une page HTML pour afficher une boîte de notification à l'utilisateur. Notez que j'utilise Visual Studio pour modifier la page HTML et le JavaScript également.

Figure 3 :Alerte JavaScript sur la page Hello World

L'un des moyens par lesquels une page Web peut récupérer des informations auprès d'un utilisateur consiste à utiliser des formulaires de page Web. Ceux-ci ne ressemblent peut-être pas à vos formulaires papier typiques, mais c'est la beauté du Web; il n'a pas besoin d'être ennuyeux et idiot, il peut sembler époustouflant et séduisant (bien que la configuration nécessaire pour obtenir un look époustouflant et séduisant dépasse notre portée ici !).

Indépendamment des apparences, les formulaires peuvent récupérer des informations spécifiques de l'utilisateur qu'un navigateur peut ensuite envoyer quelque part. Si nous avons, par exemple, un programme quelque part qui peut lire les entrées d'une page Web, nous pouvons faire en sorte que le navigateur envoie le contenu des formulaires à ce programme.
.

Programmation événementielle

Une autre approche consiste à utiliser les données du formulaire combinées à JavaScript pour que la page Web elle-même gère les données de l'utilisateur. Plutôt que d'avoir le JavaScript toujours afficher Hello World, par exemple, nous pouvons facilement lui faire afficher l'entrée de l'utilisateur dans un formulaire.

Figure 4 :Alerte JavaScript dynamique

Ne vous inquiétez pas trop du code ici, mais notez que contrairement à notre application console où le déroulement du programme est généralement ligne par ligne du début à la fin, dans cette page Web, nous utilisons ce que l'on appelle event- programmation pilotée , en faisant en sorte que le code réponde aux événements qui se produisent. Dans l'exemple ci-dessus, l'événement onblur se produit lorsque l'attention se détourne de la zone de saisie, et nous pouvons écrire du code pour réagir à cet événement et afficher l'alerte.

Quoi qu'il en soit, vous reconnaîtrez rapidement un certain modèle ici qui traverse les frontières des plates-formes, des langages et des cadres. Le programme commence par présenter à l'utilisateur une information, puis l'utilisateur envoie d'une manière ou d'une autre des instructions au programme. Dans une application console, cet échange se produit via des commandes telles que Console.WriteLine et Console.ReadLine . Sur le web, cet échange se fait en présentant une page HTML et en demandant à l'utilisateur de remplir un formulaire.

En tant que programmeur, vous apprendrez rapidement que ce que vous faites en tant que programmeur est très similaire dans tous les langages, plates-formes et outils. La syntaxe peut différer d'un langage à l'autre et vous pouvez avoir des approches différentes de votre façon de penser en termes de flux de programme, mais derrière tout cela, l'ordinateur que vous commandez est le même. Il est soumis à la même logique quel que soit le langage utilisé pour le manipuler.

Une fois que vous réalisez cela, vous pouvez avoir votre Matrix moment, où vous voyez au-delà du code et dans la machine et la logique qui la sous-tend et comprenez soudainement comment commander la machine comme vous le souhaitez, en utilisant n'importe quel langage, n'importe quelle plate-forme et n'importe quel outil.

Avant cela, cependant, il y a beaucoup à apprendre. Revenons un peu à notre programme car il y a quelques choses supplémentaires que je veux vous montrer.
.

Classes, objets et méthodes – Oh, mon Dieu !

Nous allons commencer par la partie "Console dot" des deux lignes.

Console.WriteLine("Hello World!");

La Console part est une référence à une classe statique incluse dans l'espace de noms System et….

Oh, attendez… Cela n'a pas encore de sens. Je dois d'abord parler un peu des classes et des objets. Je devrais probablement parler beaucoup des cours et objets , mais pour l'instant, concentrons-nous sur une compréhension de base de ce qu'est l'orientation objet, car elle est répandue dans tous les langages de programmation.

L'orientation objet est une idée de programmation selon laquelle vous devez créer des représentations programmatiques d'objets réels, puis interagir avec ces objets comme s'ils étaient réels. Cette définition n'est pas très précise, mais elle nous sert assez bien pour l'instant.

Principalement, nous réalisons cette interaction avec les objets via deux types de composants appelés propriétés et méthodes . La bonne nouvelle? Vous en utilisez déjà une :la méthode. Dans notre programme ici, le WriteLine et ReadLine les commandes sont les méthodes. Les propriétés, que nous n'aborderons pas vraiment dans cet article, décrivent ce qu'est un objet, tandis que les méthodes décrivent ce qu'un objet peut faire.

Les méthodes de l'orientation objet sont attachées à des objets ou, dans certains cas, à des classes. Nous en apprendrons beaucoup plus sur les méthodes plus tard dans cette série, mais pour l'instant, considérez les méthodes comme des actions que les objets peuvent effectuer.

De plus, vous pouvez considérer la différence entre les classes et les objets comme la différence entre une recette de gâteau et un gâteau, la recette étant la classe et le gâteau étant l'objet. La classe définit la façon dont vous fabriquez un objet, tout comme une recette définit la façon dont vous faites un gâteau.

Il est un peu inutile d'avoir une recette mais de ne jamais en faire quoi que ce soit. Un gâteau, en revanche, ne peut exister sans recette. Ainsi, les classes et les objets, comme les recettes et les gâteaux, existent à l'unisson.

Là où cette analogie devient un peu plus complexe, c'est quand il s'agit de ce que nous appelons les classes statiques . Ces classes, ou recettes, sont statiques car elles existent en tant que choses réelles. En fait, vous ne pouvez même pas créer d'objets à partir d'eux; elles n'existent que sous forme de recettes et n'ont que des méthodes statiques. Pour compliquer encore plus les choses, nous pouvons avoir des méthodes statiques sur des classes régulières ! Confus encore? Eh bien, souvenez-vous de Douglas Adams :

Pas de panique !

.
Dans notre analogie avec le gâteau, une méthode statique pour une recette peut être quelque chose qui n'est pas lié au gâteau lui-même mais pas nécessairement à la recette. Par exemple, vous pouvez attacher à la recette une méthode statique appelée PointMeToTheKitchen cela – je suis sûr que vous pouvez le deviner – vous indiquera la direction de la cuisine. Le gâteau peut être cuit dans n'importe quelle cuisine, et la recette ne dépend pas de sa transformation en gâteau dans une cuisine particulière.

Pour être juste, une situation meilleure et pourtant plus complexe serait si vous avez une classe statique appelée Baking qui gère toutes les choses nécessaires liées à la cuisson avec un tas de méthodes statiques, et que le PointMeToTheKitchen méthode conviendrait probablement mieux là-bas. En fait, nous avons la même utilisation avec notre programme actuel.

Donc, pour réitérer :
* Vous utilisez des classes pour créer des objets de la même manière que vous utilisez des recettes pour créer des gâteaux.
* Les objets ont des méthodes et des propriétés qui définissent ce qu'ils peuvent faire et ce qu'ils sont, respectivement.
* Les classes peuvent avoir des méthodes statiques qui existent en dehors de tout objet.
* Les classes statiques existent en dehors de tout et existent par elles-mêmes. Vous ne pouvez pas les utiliser pour créer des objets.

Nous passerons beaucoup plus de temps avec l'orientation objet vers la fin de la série. Pour l'instant, quand je répète que la Console une partie de nos deux lignes est une classe statique, vous savez que c'est une classe qui existe indépendamment de tout objet et qu'elle contient aussi des méthodes statiques.
.

Abstraction des détails

Revoyez nos lignes :

Console.WriteLine("Hello World!");
Console.ReadLine();

Console est une classe statique. Son objectif principal est de vous donner accès à ce dont vous avez besoin pour gérer la console, tout comme un Baking la classe serait utilisée pour vous donner accès aux outils de cuisson.

Lorsque nous écrivons un point en C # et dans de nombreux langages similaires, nous appelons la méthode, signifiée par les parenthèses suivantes, ou une propriété. En fait, nous disons :"Hé, classe Console, laissez-moi exécuter votre WriteLine méthode, s'il vous plaît".

Remarque :Certaines langues peuvent utiliser une notation différente pour cela. Par exemple en C++, vous pouvez utiliser -> au lieu d'un point dans certains contextes, et Perl 5 utilise -> systématiquement.

.
Dans les coulisses, la Console class va alors, en utilisant les paramètres que nous fournissons (une chaîne de texte littérale « Hello World ! »), appeler la fenêtre de console actuelle, faire du vaudou secret et faire en sorte que cette fenêtre de console imprime le texte que nous lui avons envoyé, littéralement « Hello World ! ”.

Dans la ligne suivante, nous appelons dans la même classe statique Console à nouveau, et cette fois nous lui demandons d'appeler son ReadLine méthode. En retour, le programme demandera à la console d'attendre que nous appuyions sur Enter touche avant d'avancer dans le programme. Dans notre cas, cette entrée terminera le programme et se terminera simplement.

Nous pouvons entrer dans les détails complexes du fonctionnement de la console, mais ce n'est pas vraiment pertinent à ce stade. Rappelez-vous, nous ne sommes pas plus ici pour apprendre la programmation sur console que nous ne sommes ici pour apprendre le C#; nous apprenons des concepts de programmation. En tant que tel, je l'appelle "le vaudou secret" - bien que ce ne soit certainement pas le cas - simplement parce qu'il est suffisamment avancé pour nous dans ce contexte qu'il pourrait aussi bien être magique.

Ce que vous devez savoir, cependant, c'est qu'en coulisses, ces deux commandes simples effectuent en réalité un grand nombre de tâches. Par exemple, juste pour interpréter les paramètres que vous passez dans le WriteLine , l'ordinateur doit attribuer une certaine position mémoire à la chaîne, charger ces caractères dans cette chaîne et pointer l'exécution du programme en cours vers cet emplacement mémoire particulier.

Le processeur doit ensuite lire tous ces bits de mémoire, déterminer dans quel contexte il s'exécute, appeler le système d'exploitation (qui, à son tour, devra appeler le matériel spécifique dont vous disposez) pour activer ou désactiver les signaux. qui transforment chaque pixel de votre écran en sa valeur de couleur respective. Et cette petite excursion n'est même pas une représentation entièrement exacte ou complète de tout ce qui se passe.

Toutes ces choses se produisent parce que vous avez écrit quelques caractères dans Visual Studio et appuyé sur un bouton. Ce coup d'œil derrière le rideau illustre un autre principe très important en programmation appelé abstraction . En bref, nous voulons cacher les détails complexes d'une opération et interagir avec elle grâce à une méthode facile à utiliser. Pour afficher le contenu sur la console, nous cachons tous les détails de fond dans une méthode appelée WriteLine .

Les deux principaux avantages de l'abstraction sont que nous pouvons écrire beaucoup moins de code et que, en n'ayant pas à répéter le même code à chaque fois pour obtenir les mêmes résultats, nous écrivons également un meilleur code. Dans les coulisses, les résultats que nous obtenons avec notre simple WriteLine et ReadLine code peut prendre des centaines de lignes de code. Devoir écrire tout ce code augmente considérablement les risques de faire des erreurs.

Pour être précis, dans notre exemple ici, c'est l'équipe .NET de Microsoft qui nous cache les détails. En retour, ils nous offrent une interface grandement simplifiée avec laquelle nous pouvons programmer nos applications. Mélangez un peu les mots de cette phrase et vous pourriez même l'appeler une interface de programmation d'application, ou API.

D'autres frameworks ont également des API. Par exemple, jQuery est une API qui résume de nombreux détails sur la manière dont JavaScript interagit avec le contenu d'une page Web, comme les animations, les validations de formulaires, la manipulation de contenu, etc. OpenGL est une API qui supprime l'interaction avec le matériel graphique.

Il existe littéralement des milliers d'API qui vous permettent d'effectuer des activités complexes. Atlantic.NET dispose également d'une API pour gérer vos serveurs cloud, de sorte qu'une fois familiarisé avec la programmation, vous pouvez créer des programmes qui démarrent, répertorient, créent ou terminent les instances de votre compte Atlantic.NET.

Remarque :Les API Atlantic.NET nécessitent de travailler avec quelque chose appelé une interface RESTful, ce qui dépasse un peu le cadre de ces articles d'introduction.

.

Votre premier récapitulatif du programme

Vous avez eu beaucoup à apprendre dans cet article, mais il est maintenant temps de faire une pause. Nous avons discuté en profondeur du fonctionnement des entrées et des sorties et vous avons présenté une introduction à la programmation orientée objet. Vous avez également appris l'importance de l'abstraction et comment elle nous aide à éviter les erreurs et à simplifier notre écriture de code. Vous avez vu comment les pages Web et les applications de console utilisent des approches différentes mais similaires pour l'entrée et la sortie et vous avez au moins jeté un coup d'œil rapide sur une approche de programmation complètement différente appelée programmation pilotée par les événements.

Dans le prochain article, nous allons développer notre programme en introduisant des variables et des types de données, et vous commencerez à créer un jeu de devinettes très simple en utilisant ces concepts ainsi que ce que vous avez déjà appris.

Série de tutoriels

Ceci est la partie 2 d'une série en 5 parties pour Introduction à la programmation

  1. Introduction à la programmation :Premiers pas
  2. Introduction à la programmation :votre premier programme
  3. Introduction à la programmation :variables, types et manipulation de données
  4. Introduction à la programmation :contrôle de flux
  5. Introduction à la programmation :programmation orientée objet

.


Linux
  1. Langage de programmation C - Introduction

  2. Comment déployer votre premier pod sur un cluster Kubernetes

  3. Debian - Comment boucler le contenu d'une page Web complète ?

  4. Comment accéder à votre page de connexion Plesk

  5. Comment écrire et exécuter votre premier programme Qt dans Debian 10

Comment installer Firefox Quantum et accélérer votre navigation sur le Web

Comment se connecter à votre serveur Web via SSH

Comment configurer votre Raspberry Pi OS pour l'utiliser pour la première fois

Comment :Introduction à la programmation - Votre premier programme

Guide pratique :Introduction à la programmation - Contrôle de flux

Comment configurer votre premier site WordPress