zoukankan      html  css  js  c++  java
  • Architecture : Describable Command and Identifiable Data

    Architecture : Describable Command and Identifiable Data

    Description

    Terms

    • Command
      A command is a function in a system.
      Every command has input data and output data, and the system is able to know the schema of every command input data.

    • Describable Commands
      That means:

      • System know what commands the system has.
      • Commands are describable, the system know the format of input data of a command, and data format returned by the command.
    • Identifiable Data
      Every field in an input data or an output data is identifiable.
      For example, in a system, there are departments and employee.
      Data employee has a field department id which references an id of a department data.
      Even the department id and employee id are an integers, i.e their data type are same, but the system understand:

      • department id is different with employee id.
      • department id in the employee data is same thing of the department id in the department.

    How is the system running

    • Main page
      We can image the main page like a search page, there is only an text input field provided.

      • Users can find all commands by input "*".
      • Users can input some key words to narrow down candidate commands,
      • At end, the user finds a specific command.
    • Command pages
      When a command is selected, the system will enter a new page denoted as a command page.

      • First system will get the schema information of input data of the command, and display some fields to get the user to input command arguments.
      • The user input these argument and select execute
      • The system will invoke the command, and display the return data
    • Command perception for return data
      When the system get an return data, the system can find corresponding commands.
      For example:
      The system get a list of employee by invoking GetEmployee command, then system knows DeleteEmployee command should present because the DeleteEmployee command's input is an employee id which is provided in the employee list.

    • Command perception for input data
      If the GetEmployee command accept an department name as input to query, the system understands the GetDepartment command can help to input the field of department name as the GetDepartment returns department name.

    Implementation considerations

    • Use infer
      For example: var employeeId is an employee id. the name of parameter, field and property will help the system to infer the meaning.

    • Use inheritance for different fields with same data type, especially id
      For example, we define a class id, and classes DepartmentId and EmployeeId will inherits the class Id.
      Id
      |-- DepartmentId
      |-- EmployeeId

    • Use annotation for mark field's identity

  • 相关阅读:
    DjangoRestFramework学习二之序列化组件、视图组件 serializer modelserializer
    DjangoRestFramework 学习之restful规范 APIview 解析器组件 Postman等
    vue学习目录 vue初识 this指向问题 vue组件传值 过滤器 钩子函数 路由 全家桶 脚手架 vuecli element-ui axios bus
    vue框架的搭建 安装vue/cli 脚手架 安装node.js 安装cnpm
    Redis集合 安装 哨兵集群 安全配置 redis持久化
    linux vue uwsgi nginx 部署路飞学城 安装 vue
    爬虫第三部分综合案例
    creating server tcp listening socket 127.0.0.1:6379: bind No error
    爬虫第二部分
    外键为什么加上索引?
  • 原文地址:https://www.cnblogs.com/steven-yang/p/7633418.html
Copyright © 2011-2022 走看看