首页 > 其他分享 >软件规范

软件规范

时间:2023-10-31 11:23:46浏览次数:28  
标签:Log 函数 规范 设计 软件 方法 代码 变量

架构设计

    遵循“先设计后开发”的原则,设计高于开发
    设计时应确定好时序图、UML关系图
    设计时应将需求、场景抽象成模型(建模),并将模型拆分成模块,形成架构
    模型应考虑并兼容后续需求的迭代开发,应减少架构的修改
    模块之间应减少依赖关系,并尽量以接口的方式形成依赖
    设计时应考虑测试用例,“测试驱动开发”,以测试用例来检验功能开发的完成。

类的设计

    职责单一,每个类应集中处理某个方面的事务
    短小精悍,每个类的代码行数应该控制在1000行代码以内,提高可读性
    封装性,应尽量减少对外暴露。非必要暴露的方法不要暴露。非数据类的成员变量不能直接对外暴露,而要提供公共的方法。
    功能类应尽量实现于接口
    因某种特征导致多个函数的实现发生变化,应考虑将这个特征以继承的关系进行表现,不同的特征,不同的子类
    为了提高阅读性,类中代码的顺序上应该类型、功能进行排列,即按先变量后函数。变量的顺序,应按公有、私有、静态、类型排序。函数的顺序应按照构造函数、功能进行排序。
    类名应表现出类的功能。

函数的设计

    职责单一,一个函数集中处理一个功能。
    短小精悍,每个函数保持在100行以内,函数过长是应将相应的功能抽出来。
    简化输入输出,每个函数的参数应控制在3个以内,尽量保持在一到两个。多出来的参数,应该尽量集中成为成员变量。
    逻辑紧凑,环环相扣。在最合适的位置做判断,跳转,减少代码的无用的执行。
    方法名、变量名应有意义并表现功能
    减少嵌套,函数内部的嵌套不应超过三层。可通过将嵌套抽成方法,跳转到另外一个新的函数并终止本函数,提前返回的方式减少嵌套。
    优化复杂的逻辑判断,应将复杂的逻辑判断抽成新的方法。
    代码中不能出现重复的代码,重复的代码要进行整合,可以通过合并成基类的逻辑或方法,抽成工具类中的方法实现。

Log的设计

    Log的设计的重要性等同于正常代码。
    Log不能暴露用户的个人信息。
    应在方法的入口处反应决定方法结果的信息,包括参数信息,和重要内部成员变量的信息。
    Log的长度不能过长,内部的内容应该尽量简写,并包括尽量的多的信息。避免在循环内部添加Log。
    Log的设计应保证任何代码执行过程有迹可循。

竞态关系的设计(多线程的设计)

以下为功能类的设计:

    应尽量减少功能类的成员变量。
    容器类型的成员变量应该设置为私有,不能超过保护类型。外部的访问应该要通过特有的方法访问,特有的方法应该同步。获取容器内容应该通过拷贝的形式。
    内部方法使用成员变量,不应该直接使用,而应该再用方法内部的变量保存成员变量的句柄或者值。以保证方法执行过程中句柄或者值的一致性。
    应该减少锁的粒度,以减少死锁的可能以及其它线程可能等待的时间。
    对于访问频繁的锁,应考虑将读锁和写锁拆分。

标签:Log,函数,规范,设计,软件,方法,代码,变量
From: https://www.cnblogs.com/zyz-hhh/p/17799844.html

相关文章

  • Linux系统软件包管理以及配置软件源仓库
            Linux系统依据发行的公司不同,分为Redhat/Oracle系、Debian/Ubuntu系、SUSE系,其中Redhat/Oracle、SUSE系主要用于传统企业市场,Debian/Ubuntu主要用于云计算、互联网市场,不同的发行版本其本质上无区别,都是运行着相同的Linux内核。如果是运行OracleDatabase/EBS......
  • python编码规范
    遵循良好的编码风格,可以有效的提高代码的可读性,降低出错几率和维护难度。在团队开发中,使用(尽量)统一的编码风格,还可以降低沟通成本。网上有很多版本的编码规范,基本上都是遵循PEP8的规范:PEP0008–StyleGuideforPythonCodeGoogle的Python风格指南PythonGuide......
  • 阅读笔记:《软件需求分析》阅读笔记四
    软件需求分析是软件工程中至关重要的一部分,它涉及到确定和记录系统或应用程序的功能和性能需求,以便开发团队可以理解和满足用户的期望。在进行软件需求分析时,需要考虑各种因素,包括用户需求、系统约束、功能规范等等。本次笔记将继续探讨软件需求分析的重要性以及一些常用的技术和......
  • 软件设计-装饰器模式
    publicclass装饰器模式{publicstaticvoidmain(String[]args){//第一种写法Personperson=newStudent("张三");person.Operation();System.out.println();person=newDecoratorA(person);person.Oper......
  • 软件设计-组合模式
    importjava.util.ArrayList;importjava.util.List;publicclass组合模式{publicstaticvoidmain(String[]args){AbstractFilefileA=newFile("fileA");AbstractFilefileB=newFile("fileB");//fileA.printN......
  • 视频无痕去水印揭秘那些你不知道的好用软件
    视频无痕去水印怎么去?各位小伙伴在初学剪视频的时候是不是和我一样经常会碰到一个烦人的问题:在网上找到的视频素材总是带着讨厌的水印,不仅影响美观还挡住了视频的一些部分,让人特别不爽,我想各位遇到这种情况的时候肯定会很想知道有没有什么办法能无痕去掉视频上的水印,别急今天我就来......
  • 软件架构设计师需要记住的内容
    第一章系统工程与信息系统基础1软件开发方法(1)结构化开发特点:用户至上,自顶而下,逐步分解,严格区分工作阶段,每阶段都有任务和结果,强调系统开发过程的整体性和全局性,系统开发过程工程化,资料文档标准化。优点:理论基础严密,它的指导思想是在用户需求在系统建立之前就能被充分了解和理......
  • 办公软件有哪些,办公软件哪个好
    办公软件是指为办公和生产工作而设计的软件,包括文字处理、表格处理、演示文稿、电子邮件、日历、计划等各种应用软件。办公软件可以提高工作效率,让人们更加便捷地完成各种工作任务。随着科技不断发展,办公软件也在不断更新和完善,为人们提供更加高效、智能的办公体验。下面小编介绍下......
  • 买车软件有哪些,买车软件哪个好
    买车软件是指为购买汽车提供便利的手机应用程序,可以帮助消费者找到心仪的汽车型号、比较不同车型的价格、了解车辆的详细参数和配置、预约试驾、办理贷款、购车保险等一系列服务。买车软件可以让用户更加便捷地了解汽车信息、比较不同车型的价格和配置、预约试驾等服务,同时也可以帮......
  • 大逃杀斗猿场app软件开发解决方案
      一、大逃杀概述  大逃杀斗猿场是一款全新游戏玩法,玩家在平台中挖掘资源,合成卡片,竞技比赛等娱乐方式。软件开发的解决方案主要是以用户体验,功能完善,后期软件的开发易于扩展,以满足用户需求并实现业务目标。  二、软件分析  1.软件注册登录界面:提供注册功能,收集......