规范3

Jun 13, 2016 am 10:23 AM
内容 功能 包含 文档 目录 规范 需要

目录文档 所有的目录下都需要具有README文档,其中包括: 该目录的功能及其包含内容 一个对每一文件的在线说明(带有link),每一个说明通常还应该提取文件标头的一些属性名字。 包括设置、使用说明 指导人民如何连接相关资源: 源文件索引 在线文档 纸文档 设计文档 其他对读者有帮助的东西 考虑一下,当每个原有的工程人员走了,在6个月之内来的一个新人,那个孤独受惊吓的探险者通过整个 工程的源代码目录树,阅读说明文件,源文件的标头说明等等做为地图,他应该有能力穿越整个工程。-------------------------------------------------- ------------------------------ 使用设计符号和流程 程序员需要有一种通用语言来谈论编码、设计、以及一般的软件流程。这对于项目的成功至关重要。任何项目都会聚集具有不同技能、知识和经验的人员。即使项目中的每个人都是天才,你仍然会失败,因为人们会无休止地互相谈论,因为没有共同的语言和流程将项目绑定在一起。你所得到的只是大规模的战斗、精疲力竭,而且进展甚微。如果您派您的团队去参加培训,他们可能不会回来经验丰富的专家,但至少您的团队都会达成共识;一个团队。有许多流行的方法。关键是做一些研究,选择一种方法,对你的员工进行培训,然后使用它。查看本页顶部的各种方法的链接。您可能会发现 CRC(类责任卡)方法对于梳理设计很有用。许多其他人也有。这是一种鼓励团队合作并关注做事的对象而不是具有属性的对象的非正式方法。甚至有一整本书:Nancy M. Wilkinson 的《Using CRC Cards》。 -------------------------------------------------- ------------------------------ 使用用例 用例是涉及多个对象的整个事务的通用描述。用例还可以描述一组对象(例如组织)的行为。因此,用例模型呈现了用例的集合,并且通常用于指定整个应用程序系统以及与系统交互的一个或多个外部参与者的行为。单个用例可能有一个名称(尽管它通常不是一个简单的名称)。它的含义通常被写成对外部参与者以及构成交易的对象之间的事件序列的非正式文本描述。用例可以包含其他用例作为其行为的一部分。需求捕获用例尝试以可理解的形式捕获系统的需求。这个想法是通过运行一组用例,我们可以验证系统是否正在做它应该做的事情。根据需要拥有尽可能多的用例来描述系统需要完成的任务。流程首先要了解您要构建的系统。创建一组用例来描述所有不同受众如何使用系统。为系统创建类和对象模型。运行所有用例以确保您的模型可以处理所有情况。更新您的模型并根据需要创建新的用例。 -------------------------------------------------- ------------------------------ 开放/封闭原则 开放/封闭原则规定类必须是开放和封闭的,其中:意味着一个类具有扩展的能力。关闭意味着类对于除扩展之外的修改是关闭的。这个想法是,一旦一个类通过代码审查、单元测试和其他资格程序被批准使用,您就不想对该类进行太多更改,只需扩展它即可。开/闭原则是为了稳定。通过添加新代码而不是更改已经工作的代码来扩展系统。程序员通常不愿意更改旧代码,因为它有效!这个原则只是为你的恐惧提供了一个听起来学术上的理由:-) 在实践中,开放/封闭原则仅仅意味着充分利用我们的老朋友抽象和多态性。抽象出共同的流程和想法。继承以创建派生类必须遵守的接口。 -------------------------------------------------- ------------------------------ 契约式设计 契约式设计的思想与 LSP 密切相关。合同是对另一方期望的正式声明。在这种情况下,契约是在代码片段之间进行的。一个对象和/或方法声明它执行 X 并且您应该相信它。例如,当您询问一个物体的体积时,您应该得到它的体积。由于体积是事物的可验证属性,因此您可以运行一系列检查来验证体积是否正确,即它是否满足其契约。在像 Eiffel 这样的语言中,契约是通过前置和后置条件语句来执行的,这些语句实际上是该语言的一部分。在其他语言中,需要一点信仰。通过契约设计与基于语言的验证机制相结合是一个非常强大的想法。它使编程更像是组装指定的零件。 -------------------------------------------------- ------------------------------其他事项这一部分包含各种该做的和不该做的。在需要使用分散的分数使时,不要使用浮点数。采用浮分数来循环分数无异于向自己的脚开枪。测试浮点数时总要使用 ,永远不要用 = 或 => 。 不要使用程序自动美化器,得益于好的程序样式的主要的人就是程序员自己,特别是刚开着手代 码、算法设计的程序员,使用程序自动美化器仅仅能根据语法来更正程序,因此当对空白和缩进 的注意有很大需要时,它是不可能做到的。正常的细心注意细节的程序员们能很好的用清晰直观 的样式来完成一个函数或文件(换句话来说,一些直观的样式是意向的规定而不是程序自动美化 器能读懂的智慧)。马虎的程序员应该学习细致的程序员,不要依赖程序自动美化器来增加程序 的可读性。最初的美化器是必须分析源代码的程序,复杂的美化器不值得通过这样获得好处,美 化器最好用于生成总的机器建立(machine-generated)格式代码。 对逻辑表达式第二个 = 不小心的忽略是一个问题,以下显得混乱而且更像是错误: if ($abool= $bbool) { ... } 程序员在这里真的是要赋值么?一般常常是,但通常又不是这样。这样避免引起这样的混乱呢?解 决方案就是不要这样做,利用显式和隐式的判断测试,推荐的方法是在做测试前先做赋值: $abool= $bbool; if ($abool) { ... } -------------------------------------------------------------------------------- 使用if (0)来注释外部代码块 有时需要注释大段的测试代码,最简单的方法就是使用if (0)块: function example() { great looking code if (0) { lots of code } more code } 你不能使用/**/,因为注释内部不能包含注释,而大段的程序中可以包含注释,不是么? -------------------------------------------------------------------------------- Different Accessor Styles Why Accessors? Access methods provide access to the physical or logical attributes of an object. We disallow direct access to attributes to break dependencies, the reason we do most things. Directly accessing an attribute exposes implementation details about the object. To see why ask yourself: What if the object decided to provide the attribute in a way other than physical containment? What if it had to do a database lookup for the attribute? What if a different object now contained the attribute? If any of the above changed code would break. An object makes a contract with the user to provide access to a particular attribute; it should not promise how it gets those attributes. Accessing a physical attribute makes such a promise. Implementing Accessors There are three major idioms for creating accessors. Get/Set class X { function GetAge() { return $this->mAge; } function SetAge($age) { $mAge= $age; } var $mAge; } One Method Name class X { function Age() { return $mAge; } function Age($age) { $mAge= $age; } var $mAge; } Similar to Get/Set but cleaner. Use this approach when not using the Attributes as Objects approach. Attributes as Objects class X { function Age() { return $mAge; } function rAge() { return &$mAge; } function Name() { return mName; } function rN

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

vivox100s和x100区别:性能对比及功能解析 vivox100s和x100区别:性能对比及功能解析 Mar 23, 2024 pm 10:27 PM

vivox100s和x100手机都是vivo手机产品线中的代表机型,它们分别代表了vivo在不同时间段内的高端技术水平,因此这两款手机在设计、性能和功能上均有一定区别。本文将从性能对比和功能解析两个方面对这两款手机进行详细比较,帮助消费者更好地选择适合自己的手机。首先,我们来看vivox100s和x100在性能方面的对比。vivox100s搭载了最新的

自媒体到底是什么?它的主要特点和功能有哪些? 自媒体到底是什么?它的主要特点和功能有哪些? Mar 21, 2024 pm 08:21 PM

随着互联网的快速发展,自媒体这个概念已经深入人心。那么,自媒体到底是什么?它有哪些主要特点和功能呢?接下来,我们将一一探讨这些问题。一、自媒体到底是什么?自媒体,顾名思义,就是自己就是媒体。它是指通过互联网平台,个人或者团队可以自主创建、编辑、发布和传播内容的信息载体。不同于传统媒体,如报纸、电视、电台等,自媒体具有更强的互动性和个性化,让每个人都能成为信息的生产者和传播者。二、自媒体的主要特点和功能有哪些?1.低门槛:自媒体的崛起降低了进入媒体行业的门槛,不再需要繁琐的设备和专业的团队,一部手

小红书账号管理软件有哪些功能?怎么经营小红书账号? 小红书账号管理软件有哪些功能?怎么经营小红书账号? Mar 21, 2024 pm 04:16 PM

随着小红书在年轻人中的流行,越来越多的人开始利用这一平台分享各方面的经验和生活见解。如何有效管理多个小红书账号成为一个关键问题。在本文中,我们将讨论一些小红书账号管理软件的功能,并探讨如何更好地经营小红书账号。随着社交媒体的发展,许多人发现自己需要管理多个社交账号。对于小红书用户来说,这也是一个挑战。一些小红书账号管理软件可以帮助用户更轻松地管理多个账号,包括自动发布内容、定时发布、数据分析等功能。通过这些工具,用户可以更高效地管理他们的账号,提高账号的曝光率和关注度。另一、小红书账号管理软件有

详解Word文档操作:将两页合并为一页 详解Word文档操作:将两页合并为一页 Mar 26, 2024 am 08:18 AM

Word文档是我们日常工作和学习中使用频率较高的应用程序之一。在处理文档时,有时会遇到需要将两页内容合并为一页的情况。本文将详细介绍在Word文档中如何将两页合并为一页,帮助读者更高效地处理文档排版。在Word文档中,将两页合并为一页的操作通常用于节省纸张和打印成本,或者为了使文档更加紧凑和整洁。以下是合并两页为一页的具体步骤:第一步:打开需要操作的Word

PHP是做什么用的?探究PHP的作用与功能 PHP是做什么用的?探究PHP的作用与功能 Mar 24, 2024 am 11:39 AM

PHP是一种广泛应用于Web开发的服务器端脚本语言,它的主要作用是生成动态网页内容,与HTML结合使用,可以创建出丰富多彩的网页。PHP的功能强大,它可以执行各种数据库操作、文件操作、表单处理等任务,为网站提供强大的交互性和功能性。在接下来的文章中,我们将进一步探究PHP的作用与功能,并配以详细的代码示例。首先,我们来看一下PHP的常见用途:动态网页生成:P

微信读书怎么看目录 查看目录的方法 微信读书怎么看目录 查看目录的方法 Mar 30, 2024 pm 05:56 PM

  微信读书app手机版是一款非常不错的阅读软件,这款软件内提供的书籍作品非常多,随时随地想看就看一键搜索在线阅读,且都是官方正版授权的,不同类型的书籍整齐排序,享受舒适轻松的阅读氛围。切换不同情景的阅读模式,每天不间断更新最新的书籍章节,支持多端设备在线登录,批量下载到书架上,有无网络情况下一样能看,让大家从中发现更多知识,现在小编在线详细为微信读书伙伴们推送查看目录的方法。  1.打开需要查看目录的书籍,点击书籍中间位置。  2.点击左下方的三条线图标。  3.在弹出的窗口中,查看书籍目录即

了解VSCode:这款工具到底是用来干什么的? 了解VSCode:这款工具到底是用来干什么的? Mar 25, 2024 pm 03:06 PM

《了解VSCode:这款工具到底是用来干什么的?》作为一个程序员,无论是初学者还是资深开发者,都离不开代码编辑工具的使用。在众多编辑工具中,VisualStudioCode(简称VSCode)作为一款开源、轻量级、强大的代码编辑器备受开发者欢迎。那么,VSCode到底是用来干什么的?本文将深入探讨VSCode的功能和用途,并提供具体的代码示例,以帮助读者

GateToken(GT)币是什么?GT币功能及代币经济学介绍 GateToken(GT)币是什么?GT币功能及代币经济学介绍 Jul 15, 2024 pm 04:36 PM

GateToken(GT)币是什么? GT(GateToken)是GateChain的链上原生资产,也是Gate.io的官方平台币。 GT币的价值与Gate.io及GateChain生态的发展息息相关。什么是GateChain? GateChain诞生于2018年,是Gate.io所推出的新一代高性能公链。 GateChain专注于保护用户的链上资产安全,并提供便捷的去中心化交易服务。 GateChain的目标是构建一个企业级安全高效的去中心化数字资产储存、分发和交易生态系统。 Gatechain具有独创的

See all articles