每个开发人员在他们的工具箱中应该有哪些可重用的代码?

时间:2009-01-23 22:30:20

标签: .net code-reuse

我正在尝试构建一个可重用代码库,以便在项目之间使用。当我编写代码片段和组件时,我正在尝试决定哪些库将从长期VS中获得最大的用途我是否真的会再次使用它?

每个开发人员都应该重用哪些代码或组件?

我主要对.net web和winforms感兴趣。

16 个答案:

答案 0 :(得分:11)

用于验证的正则表达式

  • 有效日期
  • 有效号码
  • 两个日期之间
  • 邮编
  • 邮政
  • 年龄
  • 数字范围

根据语言的不同,某些人已具备这些功能

答案 1 :(得分:6)

A * nix操作系统(Unix,Solaris,Linux,MacOS,Cygwin)及其“经典”命令行实用程序集。

合并,混合,烘焙,粉碎和滥用这些基本概念的方法是无法估量的。

答案 2 :(得分:2)

我个人认为一个好的框架应该提供这些工具,而不是你。如果不是语言的默认库(Java就是一个很好的例子)。

答案 3 :(得分:2)

这取决于您编写的应用程序类型。所以我认为没有任何问题的真正工具箱。 (或者它应该是框架)。

我们有几个应用程序和一个跨应用程序库。这包含很多代码:

  • 打印功能。
  • 形状处理(我们对形状和多边形做了很多工作)
  • dB计算
  • 一般应用行为(housestyle)。

每当我们在应用程序中有某些可能对其他应用程序有用的东西时,它就会被移动到库中。

答案 4 :(得分:2)

  • 数据库池代码
  • 登录
  • 字符串和集合操作
  • IoC维护(注释或XML)
  • 文件和目录处理

其中一些可能配有VM或标准库,但您总是需要额外的东西。

答案 5 :(得分:2)

我一直在努力为c#创建一组可重用的代码。 通过一次添加1个组件,更重要的是,使用框架实现真正的应用程序,我最终使框架变得简单,文档齐全,并且使用了一次又一次使用的各种“模块”。

CommonLibrary.NET on CodePlex

上查看

它比SpringFramework和MS App Blocks更简单,更轻巧。

它包括以下内容: 1.参数/选项解析 2. ActiveRecord / Domain Model类 3.收藏 4.验证和更多..

答案 6 :(得分:1)

我很容易想到:

  • 链接列表模板
  • 红黑树模板
  • 数据库初始化mini-api(适用于您最喜欢的数据库或持久层)

答案 7 :(得分:1)

我认为这将根据语言和您可能使用的框架提供的内容而有很大差异。许多需要的可重用代码将在现代框架中。

答案 8 :(得分:1)

答案取决于你的目标 - 通常会让“可重复使用”的东西在开始时花费更多的精力,但当然,以后在重复使用时付出代价 - 当然,这是真正的可重复使用。有时这种能力被高估了...... IMO ......

当你编写代码时,会回答这个问题的真正答案 - 当你发现自己在说,哎呀,我上周刚写了这样的东西。

我的“工具箱”由字符串,数学,网络,数据库,文件,日志记录以及许多其他“库”例程(程序集等)组成,我可以快速将其作为参考。当然,使这个成为一个活文库的关键是保持这些库项目的代码真正与正在开发的应用程序/代码分开。

希望它有所帮助...

答案 9 :(得分:1)

很棒的问题

  1. 业务对象级缓存
  2. 我自己的自定义身份验证工具包
  3. jquery选择器
  4. 用于表单,标签和ui元素的CSS
  5. 密码等的加密和散列
  6. 虽然我开始用企业库替换我的东西 - http://msdn.microsoft.com/en-us/library/cc467894.aspx - 它至少会随着时间的推移得到改善,并且比我的实现更多地关注它

答案 10 :(得分:0)

在.Net:

  • 不在的扩展方法 .Net Framework(ForEach,AddRange, RemoveWhere等)
  • Switch.Type声明(针对访问者)
  • 基本参数验证(Argument.EnsureNotNull)

几乎所有这些,各种免费图书馆都会掩盖其余部分。

答案 11 :(得分:0)

PKI身份验证

答案 12 :(得分:0)

我的两个:

  • 依赖注入代码,因此您可以使其更易于测试;并且不依赖于单身人士的单一实施。

  • 模块化/ 插件功能。使这个可模拟也是一个好主意,因此可以在不调用完整的插件系统的情况下测试您的客户端代码。

有两种实现方式,但有时候你无法避免编写自己的实现。 :(

答案 13 :(得分:0)

解析课程

日期操纵类

消息传递类

验证类

答案 14 :(得分:0)

作为一个厌倦和不满的代码维护者,我会以不同的方式看待这些问题:项目需要使用什么代码,以避免七个*开发人员创建七个不同的解决方案,这些解决方案需要在发生变化时进行七次修改(在发现之后)是七种不同的解决方案)。

我想大多数人都认为重用是初始开发中的效率工具,忘记它也是高效维护的关键。

*我认为只有七个,但我还在测试中。

答案 15 :(得分:0)

可以处理货币,分配,算术运算和格式化的Money类。