我倾向于做了很多的项目在很短的时限,并有大量的代码,这将永远不会被再次使用,因此总是有压力的诱惑偷工减料。一个原则我一直坚持为封装/松散耦合的,所以我有很多的小类,而不是一个巨大的上帝类。但还有什么我应该永不妥协呢?

更新 -谢谢伟大的响应。许多人建议单元的测试,但我不认为那是真的适当种类的编码我做的。实用性/用户接受性测试似乎更重要。重申,我说的是最低限度的编码标准不可能的截止日期项目。

有帮助吗?

解决方案

不是面向对象,但这种做法有助于在短期和长期来看是干的,不要重复自己。不要使用复制/粘贴继承。

其他提示

不是OOP的做法,但常识;。 - )

如果您赶时间,并有写一个黑客。随时添加一块注释与原因。所以,你可以追根溯源,并很好地解决之后。

如果你从来没有时间回来,你总是有意见,所以你知道,为什么溶液在此刻选择。

使用源代码控制

不管需要多长时间来设置(秒..),它总是让你的生活更轻松! (仍然它不是OOP相关的)。

命名。压力之下,你会写可怕的代码,你不会有时间记录,甚至发表评论。命名变量,方法和类尽可能明确几乎不需要花额外的时间和将混乱可读当你必须修复它。从一个角度OOP点,使用类和动词的名词方法自然有助于封装和模块。

单元测试 - 帮助你在晚上睡觉: - )

这是显而易见(希望),但是至少我总是确信我的公口是正确的,因为可能。内部一级总是可以重组。

没有公共类与可变公共变量(结构样)。

您知道它之前,你指的这个公共变量在你的代码,并决定该领域的一天是计算一个,而且必须有它的一些逻辑...重构变得混乱。

如果这一天是你的发布日期之前,它变得混乱。

想想人(甚至可能是你未来的自我),谁拥有阅读和理解在某些时候的代码。

单责任主要的应用。有效地应用这一主要产生大量正外部的。

像其他人一样,不是作为多面向对象的做法,尽可能做法编码,适用于面向对象.

  1. 单元试验、单元测试单元的测试。定义的单元的测试有一个习惯的保存人的任务并不是"徘徊"漫无目的地之间的对象。
  2. 定义和记录所有层次的信息(名称空间,包,文件夹结构,等等)。 之前生产写代码。这有助于充实的对象关系和暴露的缺陷的假设的相关关系的对象。
  3. 定义和记录所有适用的接口之前生产写代码。如果通过一个领导或者一个建筑师,这种做法可以另外有助于保持更多的初级开发人员在任务。

可能有其他无数的"理想的",但是如果我必须选择我的前三,这将是名单。

编辑应向评论: 这正是为什么你要做这些事情的前面。所有的这些各种各样的做法继续维护更容易。因为你承担更多的风险,在项目启动的一个项目,更可能的是,你会花更多的时间保持码。当然,有一大前期成本,但建设一个坚实的基础上为自己支付。是你的障碍缺乏时间(即具有保持其他应用程序)或者决定从更高的吗?我必须要打击两者的那些方面能够采取这种做法,而它不是一个愉快的情况。

当然,一切都应该单元的测试,以及设计评论说,检查入来源的控制和免费的错误。但生活不是这样。

我个人的排名是:

  1. 使用源的控制和实际编写提交评论意见。这样,你有一点点的文件应你永远不知道"什么到底有没有我认为当我写这个吗?"
  2. 写干净的代码 文件。清洁以及编写代码,应该需要很少的文件,因为它的含义可以被抓住从阅读它。黑客是一个很大的不同。写为什么你做到了,你做什么你想要做如果你有时间/knowledge/激励/...这样做的权利
  3. 单元测试。是的,它是倒数三。不是因为它是不重要,而是因为它是无用的,如果你没有其他两个至少有一半完成。编写单元测试是另一个级别的文件是什么你的代码应该做的事(等)。
  4. "重构"之前添加的东西。这可能听起来像一个典型的"但是,我们没有时间对它的"点。但是,正如许多的这些观点通常可节省更多的时间比其成本。至少如果你有至少一些经验。

我知道,这已经提到的,但因为它是一个相当主观的问题,我想补充我的排名。

[插入样本不-面向对象的具体警告这里]

  • 分离的问题、单元测试和这种感觉的,如果事情太复杂,它可能不是概念化相当正确的。

  • UML素描:这有澄清和保存的任何款额的被浪费的努力,所以许多倍。照片是巨大的不是吗?:)

  • 真想是-是,有一。获得这种权利的第一时间是非常重要的。

不管一个公司有多快想它,我几乎总是试图编写代码来尽我最大的能力。

我不觉得它需要不再,通常可以节省大量的时间,即使是在短期的。

我已经不记得曾经编写代码,并从来没有在再次寻找,我总是做一些越过它进行测试和调试它,甚至在像重构那几个通行证的做法,以保持我的代码干,文档(在某种程度上),关注和凝聚力分离似乎都节省了时间。

这包括装箱更多的小班比大多数人(每类中的一个问题,请),并经常提取初始化数据到外部文件(或阵列)和该数据写入小解析器。有时甚至写小图形用户界面,而不是手工编辑数据。

编码本身是非常简单快捷,在调试的时候他们是“迫于压力”废话有人写什么需要所有的时间!

在将近一年到我目前的项目,我终于成立了一个自动构建是推动任何新提交到测试服务器,和人,我希望我这样做了第一天。我做了早期的最大的错误是去暗。随着每一个功能,增强,错误修复等,我有“只是一个习俗”不好的情况之前,我会让人看的产品,它的字面盘旋到六个月的周期。如果一切合理的变化已经被自动推它会一直很难让我躲了,我会更上轨道相对于利益相关者的参与。

返回的代码你写几天/星期前,花20分钟的时间回顾自己的代码。随着时间的推移,你将能够确定你的“现成的,袖口”代码是否是有组织的不够好,为今后的维护工作。当你在里面,寻找重构和重新命名的机会。

我有时会发现我在一开始就选择了某个函数的名称不完全适合其最终形式的功能。随着重构工具,可以轻松地更改名称年初,进入广泛使用之前。

就像其他人曾建议,这些建议是不是针对OOP:

请确保你对此有何评论你的代码,并使用合理命名变量。如果你有回头看时,你已经写了快速和肮脏的代码,你应该能够很容易地理解它。我所遵循的是一般规则;如果你删除了所有的代码,只留下了评论,你也应该能够理解程序流程。

黑客通常倾向于将被卷积的和未直观的,所以一些好的评论是必不可少的。

我也建议,如果你平时有工作时间紧迫,让自己根据您最常见的任务建立一个代码库。这将允许您以“加盟点”,而不是每次你有一个项目的时间推倒重来。

此致

Docta

这是实际OOP实践我总是使时间是单一职责原则,因为它变得如此更难以后正确重构代码时,该项目是“活”的。结果 通过坚持这个原则我发现我写的代码很容易重新使用,替换或重写,如果它不匹配功能性和非功能性需求。当你结束了与具有多重责任类,其中一些可能符合要求,有些人可能不,整个可能完全不清楚。搜索结果 这些类型的课程是非常紧迫的维护,因为你永远不能确定你的“修复”将打破什么。

对于这种特殊情况(期限短,有很多的代码将永远不会被再次使用),我建议你要注意一些嵌入脚本引擎到您的OOP代码。

学习“重构为你去”。主要是从一个“提取方法”的观点来看。当你开始写的顺序代码块,需要几秒钟来决定,如果此块可以独立作为一个可重复使用的方法,如果有的话,立即作出这样的方法。我推荐它甚至扔掉的项目(特别是如果你以后可以回去和编译这样的方法到您的个人工具箱API)。它并不需要很长时间,你做之前需要几乎不假思索。

希望你已经这样做了,我说教合唱团。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top