与他人分享代码不仅是帮助他人的好方法,也能让你成为更好的程序员。你将获得大量积极的反馈、改进建议、bug 修复、免费测试,并且往往能获得如何使代码本身变得更好的建议。这还能鼓励其他人分享他们的代码,从而让你能够访问更大范围的免费源代码。
你可以提交包含下载和图片的完整文章,或者只是一个快速的“技巧与窍门”。“技巧与窍门”是指非常、非常简短的提示、代码片段,甚至只是你偶然发现的拯救了你一天的“一句话”。文章则用于呈现更详细的想法。
当你发布到 CodeProject 时,你的代码将根据我们的 服务条款 以及文章附带的特定许可协议提供。你还同意 贡献者协议,该协议确保你拥有发布内容的权利,允许我们发布你的内容,并为你选择的内容许可提供额外的保护。
CodeProject 文章的主要重点是提供无需注册或许可费用且无时间限制的代码,这些代码展示了应用程序或二进制文件及其源代码。CodeProject 文章用于共享源代码,而非应用程序或组件。
请注意,与作者编写的文章相关的源代码必须随文章一起提供。指向最新版本(或在线演示)的外部链接是可以的,但我们仍要求随文章提交至少一个可用的版本,以便在 CodeProject 上提供。原因是,十次链接到外部下载有九次会在几个月内中断,这是由于各种不可避免的因素。在 CodeProject 上拥有本地副本意味着至少有一些代码仍然可用。
我们通常不允许关于第三方产品和工具的文章。我们仅在自行决定并严格遵守以下规则的情况下允许关于第三方产品的文章:
最后,我们保留对所有涉及第三方产品的文章做出最终决定的权利。我们可能会允许不符合一项或多项上述规则的文章,我们也可能拒绝符合所有规则的文章——每篇文章都将单独评估。如果你发现有文章不符合这些规则,请举报该文章为垃圾邮件/滥用,或发送电子邮件至 submit@codeproject.com。
我们不再允许对第三方产品和工具进行评论。
如果你有很棒的代码,但又不方便他人使用,那么大多数情况下人们会忽略它而不会使用。我们建议:
在提交你的代码和文章时,请检查你是否包含以下内容:
将所有这些打包成一个**单个 Zip 文件**,然后发送至 。
通过电子邮件发送文章时,请在主题行中注明文章标题。如果您认为文章适合某个类别,也请告知我们。
如果你通过 文章提交向导 发布了你的文章,并且它仍被标记为“未编辑”,那么你可以通过点击文章右上角的“编辑此文章”链接来自行编辑文章。
如果你通过电子邮件将文章发送给我们,或者使用 文章上传页面 上传了你的文章,或者文章已被编辑,那么只需访问你的文章,在右上角你会找到一个“更新你的文章”链接。点击该链接,通过提供的表单直接将你的更改上传给编辑。
或者,发送电子邮件至 ,并在电子邮件正文中包含**文章名称及其 URL**,并将文件作为 zip 文件(用于下载)或 PNG/GIF/JPEG(用于图片)作为附件发送。显然,越小越好,请注意我们无法接受 .exe 文件或包含 .exe 文件的 zip 文件。我们的电子邮件提供商将很不幸地拒绝此类电子邮件。
我们会重新格式化提交的每一篇文章,并尽力确保所有语法和拼写错误都已纠正。如果我们能首先下载我们已发布的文章的 HTML,那将**非常、非常**方便,您可以通过文章右上角的“获取 HTML”按钮来操作。登录 CodeProject,在文章右上角有一个链接“获取文章 HTML”。点击它,然后使用浏览器的“文件 | 保存”菜单保存文章的 HTML。忽略页面顶部和底部的部分——你会在 HTML 中看到“Article Starts”和“Article Ends”标签,它们指向文章实际文本的位置。删除这些标记之上和之下的一切内容,然后直接编辑 HTML。
如果您只想做很小的补充,或者想报告拼写/语法或链接错误,您可以直接以纯文本形式发送。
将所有更新发送给我们,并请记住**在电子邮件正文中包含文章名称及其 URL**。
您无需担心为您的文章进行语法高亮。我们有一个语法高亮器为您处理此事。如果您的文章已包含语法高亮,请勿担心——语法高亮器会清除所有先前的语法高亮,然后重新对整篇文章进行高亮。
**高级语法高亮技巧**:要指定除默认 C 风格语法高亮之外的语言,请在 `
` 或 `` 标签中添加 `Lang` 属性。例如:
<pre lang="C#">int myVar = 0;</pre>
当前支持的语言有:
- 纯文本 (lang="text")
- ASP.NET (lang="aspnet")
- BAT (lang="bat")
- C# (lang="C#")
- C++ (lang="C++")
- C++/CLI (lang="mc++")
- CSS (lang="css")
- Delphi (lang="delphi")
- F# (lang="F#")
- HTML (lang="html")
- Java (lang="java")
- Javascript (lang="jscript")
- MASM / ASM (lang="asm")
- MSIL (lang="msil")
- MIDL (lang="midl")
- PHP (lang="php")
- SQL (lang="SQL")
- VB.NET (lang="vbnet")
- VBScript (lang="vbscript")
- XML (lang="xml")
其他语言可应要求添加。
文章
首先,**我们需要提供一些文档**。这不一定需要多么花哨,虽然我们也不介意,但如果你能回答以下问题,就应该有一个好的开始。
- 代码做什么?
- 我如何将其集成到我现有的代码中?或者我该如何使用它?
- 如果 CodeProject 上已经有类似的帖子,那么这个帖子有什么不同?为什么有人会想使用您的版本?
- 代码是否有某个特别值得关注的方面,或许应该在文章中涵盖?
- 代码是否有特定的环境限制?(例如 Windows 2000 及以上版本,.NET SP1 等)
目的是让读者清楚地了解你代码的用途,而不是强迫他们下载项目、构建并查找示例的功能。这意味着仅包含代码片段但没有解释其用途的文章是不够的。
最快发布代码的方式是提供一个简单的 HTML 文件。我们对文档的首选是:
- 使用提供的 模板文件,通过纯文本编辑器或好的 HTML 编辑器编辑的简单 HTML 文件,
- 一个纯文本文件,
- 其他一切。
CodeProject 的所有文章都具有相同的外观和感觉,这是通过最基本的 HTML 功能实现的。如果你发送的 HTML 文件包含不同的字体、颜色和花哨的元素,它们很可能会被全部删除,以使其符合 CodeProject 的标准。所有文档都**手动**编辑,因此在大量复杂的 HTML 中进行审查可能是一场噩梦。
许可
上传文章时,你需要了解其中涉及的风险和法律问题。我们生活在一个充满诉讼的世界,所以你需要保护自己免受那些可能(或不可能)因你的文章而寻求损害赔偿的人的侵害。仅仅说“代码免费使用”已不再足够。什么是“免费”?是否存在任何限制?如果我的代码损坏了我的系统并导致我损失金钱,怎么办?
以下是 CodeProject 当前支持的许可证的粗略指南:许可证。
Zip 文件
请确保使用最大压缩率压缩所有文件,并从项目文件夹中删除所有不必要的文件(*.opt, *.ncb, *.obj, *.aps, *.plg, .suo 等)。如果可能,请将提交的文件保持在 300KB 以下。
**通过电子邮件,我们无法接受 .exe 文件或包含 .exe 文件的 zip 文件。我们的电子邮件提供商将退回这些电子邮件**。如果你想提交编译好的演示代码,最简单的方法是通过 文章提交表单 发送给我们。
**文件名约定:** 如果你的投稿包含 HTML 文章、源代码和一张图片,为了方便我们,请遵循以下文件名约定。假设你的文章名为 coolcode.html。文件名应为以下形式:
coolcode.html
你的文章的 HTML 文档
coolcode.zip
你的文章的压缩源代码
coolcode.png
伴随你文章的图片
或者,如果你有源代码、一个演示项目和多张图片,那么你的文件名将如下所示:
coolcode.html
你的文章的 HTML 文档
coolcode_src.zip
你的文章的压缩源代码
coolcode_demo.zip
你的文章的压缩演示项目
coolcode1.png
伴随你文章的图片
coolcode2.png
伴随你文章的第二张图片
顺便说一句,不要使用 coolcode 这个名字,尝试找一个更相关的名字 :-)
源代码指南
首先,代码真的能正常工作吗?我们确实有时会收到由于各种原因无法正常工作的代码。请检查你发送的源代码能够干净地编译,并且如果是更大的演示应用程序的一部分,请确保应用程序本身运行正常。
我们要求你遵守你所用语言的一般约定,以便其他程序员能够轻松理解你的代码。有助于其他程序员阅读你的代码的约定包括:
- 在 MFC 中使用匈牙利命名法(例如,变量前缀,如“n”表示 int,“d”表示 double 等)
- 使用 Win32/Visual C++ 类型,如 UINT、LPCTSTR 等。
- .NET 代码中使用驼峰命名法
另外,代码是否可以在警告级别 4 下干净地编译?
示例项目
**示例可执行文件:** 如果提供示例可执行文件,请确保它与**发布**库链接(即,**确保它不与 Unicode 或调试库链接**)。演示可执行文件的全部目的是为开发人员提供代码的快速介绍。如果他们必须重新编译才能使应用程序在其系统上运行,那么提供可执行文件就毫无意义。其次,请尽量保守你上传的示例的大小,一个 4MB 的示例不太可能引起很多人的兴趣。
**示例项目:** 建议你也包含一个示例项目。创建示例项目 zip 文件时,请不要包含 Debug 或 Release 目录。它们只会增加 ZIP 文件的大小。另外,不要包含 *.clw, *.ncb, *.opt 等自动重新创建的文件。
提交基于他人作品的文章
使用他人的代码作为基础是可以的,只要你明确说明部分/大部分代码不是你的。**如果你使用了别人的代码,请勿删除他们的版权声明**。这里有很多代码重用,毕竟这就是目的。就我们在此发布的文章而言,我们希望看到应有的署名,在代码和 HTML 中适当标注。
如果你提交的是对他人作品的修改、扩展或更正,我们希望你先尝试联系原作者,然后尝试与他/她协商,以发布对原文章的更新。这样,我们就可以保持与原文章的连贯性,并减少需要发布的全新页面数量。
提交已在其他网站上发布的代码
你非常欢迎提交已在其他网站上发布的代码,**前提是**你拥有该文章的版权,并且你没有授予其他网站独家使用你文章的权利。
CodeProject 提交模板
该 模板 zip 文件 包含一个 HTML 模板,用于向 CodeProject 提交文章。我们建议使用 Microsoft Expression Web、Dreamweaver 或你喜欢的文本编辑器来编辑此文件。请注意,所有额外的格式(例如,花哨的颜色、绝对定位等)将被删除,以保持统一的外观并帮助我们的读者。
使用这些模板将帮助我们更快地发布你的文章。我们在服务器上使用 MS IIS 和 ASP 页面,这使我们可以简化用于创建文章的模板。
要填写模板,只需按照下面的 3 个简单步骤操作:
- 填写文章描述详细信息
- 添加指向你的图片和下载的链接
- 包含主要文章文本
就这么简单!所有格式都将由 ASP 脚本引擎完成。
外语投稿
CodeProject 是一个英语网站。虽然我们欢迎来自所有文化和各种背景的人,但我们要求只发布英语文章。
技术博客提交
博客条目与文章的目的相同:帮助开发人员解决与编码相关的问题。在决定是否提交你的 博客源 并标记你的博客条目时,一个好的通用指南是:是否存在与你的博客主题相关的部分?
必备项
- 具有某种技术基础(不得涉及餐厅、好啤酒或日常事务)
- 提出一个问题并提供解决方案
- 简要描述你的代码,包括它是什么、它的功能以及它在你的项目中是如何使用的
- 至少达到 1000 个字符
- 比快速提示或更适合 FAQ 的简短条目
其他注意事项
- 不需要提供可下载的源代码。
- 代码片段总是受欢迎的
- 图片也总是受欢迎的
- 你的技术博客条目将根据你在个人资料中设置的默认许可证进行许可。点击“我的设置”,然后点击“文章”来更改此默认设置。