English 中文(简体)
Building a code asset library [closed]
原标题:

Closed. This question needs to be more focused. It is not currently accepting answers.


Want to improve this question? Update the question so it focuses on one problem only by editing this post.

Closed 7 years ago.

I have been thinking about setting up some sort of library for all our internally developed software at my organisation. I would like collect any ideas the good SO folk may have on this topic.

I figure, what is the point in instilling into developers the benefits of writing reusable code, if on the next project the first thing developers do is file -> new due to a lack of knowledge of what code is already out there to be reused.

As an added benefit, I think that just by having a library like this would encourage developers to think more in terms of reusability when writing code

I would like to keep this library as simple as possible, perhaps my only two requirements being:

  • Search facility
  • Usable for many types of components: assemblies, web services, etc

I see the basic information required on each asset/component to be:

  • Name & version
  • Description / purpose
  • Dependencies

Would you record any more information?

What would be the best platform for this i.e., wiki, forum, etc?

What would make a software library like this successful vs unsuccessful?

All ideas are greatly appreciated.

Thanks

Edit:

Found these similar questions after posting:

How do you ensure code is reused correctly?

How do you foster the use of shared components in your organization?

问题回答

Sounds like there is no central repository of code available at your organization. Depending on what you do this could be because of compatmentalization of the knowledge due to security restrictions, the fact that external vendor code is included in some/all of the solutions, or your company has not yet seen the benefits of getting people to reuse, refactor, and evangelize the benefits of such a repository.

The common attributes of solutions I have seen work at mutiple corporations are a multi pronged approach.

  1. Buy in at some level from the management. Usually it s a CTO/CIO that the idea resonates with and they claim it s a good thing and don t give any money to fund it but they won t sand in your way if they are aware that someone is going to champion the idea before they start soliciting code and consolidating it somewhere.
  2. Some list of projects and the collateral available in english. Seen this on wikis, on sharepoint lists, in text files within a source repository. All of them share the common attribute of some sort of front end search server that allows full text over the description of a solution.
  3. Some common share or repository for the binaries and / or code. Oftentimes a large org has different authentication/authorization methods for many different environments and it might not be practical (or possible logistically) to share a single soure repository - don t get hung up on that aspect - just try to get it to the point that there is a well known share/directory/repository that works for your org.
  4. Always make sure there is someone listed as a contact - no one ever takes code and runs it in production without at lest talking to the previous owner of it - and if you don t have a person they can start asking questions of right away then they might just go ahead and hit file->new.

Unsuccessful attributes I ve seen?

  1. N submissions per engineer per time period = lots of crap starts making it s way in
  2. No method of rating / feedback. If there is no means to favorite/rate/give some indicator that allows the cream to rise to the top you don t go back to search it often because you weren t able to benefit from everyone else s slogging through the code that wasn t really very good.
  3. Lack of feedback/email link that contacts the author with questions directly into their email.
  4. lack of ability to categorize organically. Every time there is some super rigid hierarchy or category list that was predetermined everything ends up in "other". If you use tags or similar you can avoid it.
  5. Requirement of some design document to accompany it that is of a rigid format the code isn t accepted - no one can ever agree on the "centralized" format of a design doc and no one ever submits when this is required.

Just my thinking.





相关问题
How can I reuse HTML/JSP within a page?

I m new to JSP, and I m trying to reduce a massive amount of cut-and-pasted code. On each page in the project, there are around 25 lines of mixed JSP,Struts tags,JSTL tags, and HTML, which have been ...

Android: Custom Clock widget Service work-around?

I was interested in developing a clock widget for the homescreen and upon reading Home Screen Widgets tutorial, I wondered if there is a pre-existing Service I could reference for updating the current ...

Building a code asset library [closed]

I have been thinking about setting up some sort of library for all our internally developed software at my organisation. I would like collect any ideas the good SO folk may have on this topic. I ...

热门标签