我们处于这样一种状况,即我们有4名开发人员可以腾出一些空闲时间(谈论3-4周)。
在我们的代码库中,对于不同的项目,有许多框架类型的代码可以为我们开始的每个新项目重写。由于我们有一些空闲时间,我正在创建一个所有项目都可以重复使用的“标准”库集,例如:
虽然上面的这2个将依赖于诸如Enterprise Library之类的库,但是每个新项目都会在它周围编写自己的包装器,所以我们正在整合所有这些代码。
我正在寻找关于您在内部构建的标准库的建议,这些库在许多项目中共享。
为了给你一些背景信息,我们建立LOB内部应用程序和面向公众的网站 - 即我们不是销售收缩包装的软件公司,因此我们不需要像许可模块这样的东西。
我们非常感谢任何想法 - 我们的开发人员渴望编写一些代码,而且我非常乐意为他们提供一些可以从长远来看对组织有益的事情。
干杯
答案 0 :(得分:6)
答案 1 :(得分:3)
我们做的一些主要事情:
希望有所帮助
答案 2 :(得分:3)
好吧,最重要的是,不要重新发明轮子!
另外,看看控制容器的倒置,我推荐 Castle Windsor 。
这些应该是您的API的入口点(公共库,但将其视为API)。
专注于抽象您在API内部使用的所有库,因此如果您不想再使用Log4Net或Castle Windsor,您可以编写结构良好的抽象并专注于松散耦合的设计模式。
将API视为域和模块化抽象,内部使用其他常见API,例如常用的数据访问库。
我从一个超灵活的通用DAL库开始,这使得访问任何类型的数据和多种存储介质变得非常容易。
我使用Fluent nHibernate作为关系数据库的东西,我将所有的方法调用都放到你的数据访问工具LINQ中,因为它是一个c#语言特性。
使用LINQ查询DB,索引,文件,xml等。
答案 3 :(得分:1)
有一件事可以让所有开发人员忙碌一个月:
现在,如果系统不是使用TDD编写的,那么它很可能是非常单一的,需要进行大量的重构来引入测试表面。希望在最后,你最终会得到一个更模块化,更不紧密耦合的东西。更可测试的系统。
答案 4 :(得分:0)
以前的工作遇到了一些停机时间,而业务部门整理了下一个版本应该是什么。我们做了一些有帮助的事情
我现在要做的其他事情可能是
HTH
答案 5 :(得分:0)
我的态度是,人们几乎不应该写标准库。相反,应该重构现有的工作代码以消除重复并提高易用性和易于测试。
结果将非常像“标准库”,除非您知道它有效(您在每次更改后重新进行单元测试,对吗?),并且您将知道它将被使用,因为它已被使用。否则,您将冒着创建一个未使用的精彩标准库的风险,并且在 时使用它不起作用。