Maison  >  Article  >  interface Web  >  Séparation des préoccupations et loi de Murphy

Séparation des préoccupations et loi de Murphy

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-07 06:17:02520parcourir

Separation of concern & Murphy

Tout ce qui peut mal tourner tournera mal, c'est ce que nous dit la loi de Murphy. Il s'agit d'un principe du génie logiciel connu sous le nom de séparation des préoccupations.

La séparation des préoccupations est un principe de conception en programmation utilisé pour diviser une application en sections ou modules.

SoC garantit que chaque section est responsable d'un aspect spécifique de fonctionnalité ou de comportement. cela garantit que les applications sont faciles à maintenir et à faire évoluer.

Ce principe nous permet de créer des composants réutilisables pouvant être utilisés dans l'ensemble de l'application.

La loi de Murphy dans la séparation des préoccupations

Lorsque plusieurs aspects ou fonctionnalités sont mélangés ou se trouvent dans un seul fichier de votre code, quelque chose finira par se casser.

En séparant les soucis par exemple en séparant l'application express et le serveur web les chances que tout tombe en panne sont réduites.

s'il y a un problème dans votre application express, cela n'affectera pas la logique de votre application. Plus vous compartimentez le comportement ou la responsabilité de votre application, plus les chances qu'un échec affectant l'ensemble de votre application diminue.

exemple où aucun SoC n'a été appliqué :


const express = require('express');
const app = express();

// Application logic (handling routes)
app.get('/hello', (req, res) => {
  res.send('Hello, World!');
});

// Server logic (listening on a port)
app.listen(3000, () => {
  console.log('Server is running on port 3000');
});



Voici comment fonctionne la loi de Murphy

  • si la panne du serveur se produit (le port est déjà utilisé), vous ne pourrez pas tester vos itinéraires et l'ensemble de l'application fonctionnera.

Exemple d'application du SoC


//app.js
const express = require('express');
const app = express();

// Application logic (handling routes)
app.get('/hello', (req, res) => {
  res.send('Hello, World!');
});

module.exports = app;



//server.js
const app = require('./app'); 
// Server logic (listening on a port)
app.listen(3000, () => {
  console.log('Server is running on port 3000');
});


  • si le serveur ne parvient pas à démarrer, l'application pourra toujours fonctionner puisque la logique de votre application est sécurisée.

  • Vous pouvez toujours tester la logique de votre application sans exécuter directement le serveur en utilisant des frameworks de test comme jest et supertest


const request = require('supertest');  
const app = require('./app');          

// Test case for GET /hello
test('GET /hello should return "Hello, World!"', async () => {
  const response = await request(app).get('/hello');  
  expect(response.text).toBe('Hello, World!');        });



Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn