首页 > web前端 > js教程 > 正文

关注点分离和墨菲定律

Mary-Kate Olsen
发布: 2024-10-07 06:17:02
原创
516 人浏览过

Separation of concern & Murphy

任何可能出错的事情都会出错是墨菲定律告诉我们的。这是软件工程中的一项原则,称为关注点分离。

关注点分离是编程中的一种设计原则,用于将应用程序分成多个部分或模块。

SoC 确保每个部分负责功能或行为的特定方面。这确保了应用程序易于维护且易于扩展。

这一原则使我们能够创建可在整个应用程序中使用的可重用组件。

关注点分离中的墨菲定律

当多个方面或功能混合或位于代码中的一个文件中时,某些内容最终会崩溃。

通过分离关注点,例如通过分离 Express 应用程序和 Web 服务器,可以减少一切崩溃的可能性。

如果您的 Express 应用程序存在问题,它不会影响您的应用程序的逻辑。您对应用程序的行为或责任划分得越多,影响整个应用程序的一次故障的可能性就会变得越小。

未应用 SoC 的示例:


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');
});



登录后复制

这就是墨菲定律的原理

  • 如果发生服务器故障(端口已在使用中),您将无法测试您的路由并且整个应用程序正常工作。

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');
});


登录后复制
  • 如果服务器无法启动,应用程序仍然可以工作,因为您的应用程序逻辑是安全的。

  • 您仍然可以使用 jest 和 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!');        });



登录后复制

以上是关注点分离和墨菲定律的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板