面向开发人员的前 7 个示例代码库网站
从初级开发人员到高级开发人员,大多数程序员从他们过去的项目或在线查找示例代码片段。您想学习或创建项目吗?在本文中,我将向您介绍 10 个最佳站点,以访问您的项目的免费代码示例。
大多数开发人员都有一个他们最喜欢的网站列表,除了寻找免费的示例代码之外,他们还可以在其中与其他开发人员进行交互以建立一个出色的开发人员社区。有很多这样的网站可用。
StackOverflow 是一个面向专业和爱好者程序员的问答网站。超过 90% 的软件开发人员使用 StackOverflow。它无疑是最受开发者协作的平台。无论您是刚刚学习第一门编程语言还是维护现有应用程序,StackOverflow 都有很多内容供您参考。该平台为全球超过 1 亿开发者提供服务。然而,大多数访问该站点的开发人员只浏览他们的错误的解决方案并快速返回他们的工作。只有少数人选择提供支持并帮助其他程序员修复他们的程序错误。您可以立即加入该平台,通过向其他开发人员提供建设性的答案来为代码库做出贡献。
数以百万计的人积极为 SourceForge.net 上的大型示例代码库做出贡献。该网站的内容可供所有用户免费使用。甚至软件也可以由程序员在他们的开发部分发布。在该网站的主页上,将鼠标悬停在 Open-Source Software 选项卡上并选择 Development。您对浩瀚的开源项目的发现会让您惊叹不已。最大的免费代码示例和代码片段集合之一可以在 SourceForge 上找到,它在“开发”标题下有超过 100,000 个列表。
Askyourcode 是快速增长的代码库搜索引擎之一。该站点可帮助您搜索所需的代码段。结果是从 GitHub 获取的代码示例列表。这个惊人的平台是免费的 GitHub 是一个用于版本控制和协作的免费代码托管平台。所有软件包和开源库都托管在 GitHub 上,几乎 83% 的开发人员都在使用 GitHub。这在使用 Askyourcode 时为您提供了广泛的代码示例。该站点将为您节省大量在线搜索代码片段或在 GitHub 上从您自己的项目中查找代码示例的时间。Askyourcode 允许其用户请求将新的代码库添加到平台。用户还可以在注册 github 并授权 askyourcode 访问他们的私有仓库后搜索他们的私有仓库。
Flowbite 是一个流行的 UI 组件开源库,基于实用程序优先的 Tailwind CSS 框架,具有暗模式支持、Figma 设计系统等。我向 React 前端开发人员,甚至是使用 Tailwind CSS 的 React Native 开发人员推荐这个网站。市场增长最快的开源 CSS 框架之一是 Tailwind CSS,它在 NPM 上的每周下载量超过 350 万。这个 UI 工具包为任何项目提供了坚实的基础,从最流行的 UI 元素(如表单和导航栏)到适用于桌面和移动设备的整个应用程序屏幕。Flowbite 拥有大量开源组件,您可以在主页上或直接从文档侧边栏菜单中浏览。您还可以使用 ctrl + k(或 cmd + k)关键字组合直接搜索您想要使用的任何组件。该站点允许您在将代码示例复制到项目之前预览其输出。
Bootsnipp 常被 HTML 和 CSS 开发人员使用,他们将 bootstrap 用于他们的网页。该站点包含数百万个可在项目中使用的 Bootstrap 代码片段。流行和搜索最多的片段,如导航栏、搜索栏、页脚、模式、轮播、表单等,都可以从这个网站方便地使用。该站点还允许您在代码中使用之前预览要复制的代码示例。
如果你想成为一名软件开发人员,为什么不向互联网巨头学习呢?在其开源门户网站上,Google 提供了您可以参与的多个项目,以及有关如何创建自己的项目并使其公开可用的指南。google 开源和 Google 的 Developer Portal 共同为所有开发人员提供了大量重要数据。这是新手免费学习编码的理想方法。
CodePen 是一个在线开发者社区,允许用户测试和显示 HTML、CSS 和 JavaScript 代码片段。开发人员可以在这个在线代码编辑器和开源学习环境中创建代码片段。有数以千计的“笔”可供浏览以支持您的代码。它基本上都是关于开源的。任何人都可以将您提交给 CodePen 的代码用于他们选择的任何目的,但如果他们这样做,代码还必须遵守他们的许可条款。这是为了促进开放代码共享。CodePen 还用作在线代码编辑器,用于在线编辑和运行代码片段,然后再将它们复制到您的代码中。
在这些提到的广泛使用的站点的帮助下,即使是新手也可以掌握编程。如果您明智地使用它们,您无疑会发展成为一个可靠且称职的编码器。
快乐黑客!
Bentil here提到的哪个网站是你最喜欢的?没有提到你最喜欢的吗?在下面评论它。它也可能对其他人有帮助。我很高兴在评论部分收到您的来信。
成本降低90%!Claude上新提示词缓存,一次性记住整个代码库
克雷西 发自 凹非寺
量子位 | 公众号 QbitAI
Claude深夜上新重磅功能——API长文本缓存。
新版API可以“记住”一整本书或整个代码库,不需要再重复输入了。
这样一来,不仅处理长文本的延时更低,更是能节省最高90%的成本。
来看看这降本的效果~
△假定重复部分为1万Token,模型为3.5 Sonnet,只计算输入
今年5月,谷歌在Gemini更新中提出了这项功能,然后是国内的Kimi和DeepSeek团队,总之现在又轮到了Claude。
值得一提的是,厂商Anthropic的推文当中提到,提示词缓存功能可以让用户用更长、更有指导性的提示词对模型进行“微调”。
有网友看了之后感慨,人们本来就很难分清提示工程(prompting)和微调(fine-tune),这下更不好区分了。
当然在这种场合下,也难免会有人点名或不点名地cue起隔壁的OpenAI。
提示词缓存的作用,就是一次给模型发送大量prompt,然后让它记住这些内容,并在后续请求中直接复用,避免反复输入。
对此,博主Dan Shipper做了这样的一个比喻:
假设你在一家咖啡馆,第一次点单的时候需要告诉店员自己点的内容,但是接下来再去只需要说一句“和平常一样”就可以了。
不过需要注意的是,缓存的有效期为五分钟,但每读取一次计时都会被重置,一直连续提问时无需担心。
在Claude的官方文档中,也介绍了几个典型的应用场景,非常适合代码和长文档处理。
- 对话:降低扩展会话的成本和延迟,尤其是包含长指令或附有文档的会话;
- 代码助理:通过在prompt保存的对代码库的总结,改善代码自动补全和问答功能;
- 大型文档处理:在提示中纳入完整的长格式材料(包括图像),而不会增加响应延迟;
- 详细的指令集:(在多个对话中)共享详细的指令、过程和示例列表以进行微调Claude的回应;
- 搜索和工具调用:增强涉及多轮工具调用和迭代更改的场景的性能;
- 长文本对话:将整个文档(书、论文、播客脚本等)嵌入到提示中并让用户提出问题,从而对知识库进行增强。
由于不需要反复输入重复的脚本,提示词缓存具有速度更快、成本更低这两大优势。
比如在基于一本10万Tokens的图书进行对话时,以往模型需要11.5秒才能生成首个输出Token,但有了提示词缓存就只需要2.4秒,降低了79%,成本更是减少90%。
在其他场景中,延时和成本也有不同程度的降低。
定价上,原有的输入和输出Token价格不变,提示词缓存的价格则分成了写入和读取两个部分。
最小的Haiku每百万Token的写入和读取价格分别是30美分(约合人民币两块一)和3美分。
3.5 Sonnet则是写入3.75美元,读取0.3美元,最大号的Opus是18.75美元和1.5美元。
可以看出,初始写入的价格相对于输入要高一些,但读取的价格只有重复输入的十分之一。
换言之,缓存被反复读取的次数越多,相比于重新输入节约的成本也就越多。
举个例子,假设要发送1万次请求,重复部分包含1万Tokens,如果不用缓存,总输入是1亿Tokens,用Sonnet需要300美元。
但如果开启缓存,就只需要1÷100×3.75+1×10000÷100×0.3=30.03美元,节省了近90%。
还是假设重复部分包含1万Tokens,那么从下图可以看出,随着调用次数的增加,成本优势将越来越明显
对于开发者来说,这无疑是一项重大利好。
AI写作工具HyperWriteAI创始人兼CEO Matt Shumer就表示,这项更新相当重大。
这意味着人们可以用更低的成本把一整个代码库喂给模型,然后要求增加新功能;或者突破一次只能RAG 5个的限制,直接输入大量文档;又或者直接给出数百个示例,以得到“比微调更好的结果”。
目前该功能支持3 Haiku和3.5 Sonnet,Opus则将在稍晚一些更新。
这项功能并非是Claude首创,今年5月,谷歌的Gemini就已经支持了上下文缓存。
后来国内月之暗面的Kimi和深度求索团队的DeepSeek也进行了跟进。
值得一提的是,DeepSeek团队把这项技术的存储介质换成了硬盘,还降低了存储成本。
触发方式也有所区别,比如DeepSeek是由系统自动判断哪些内容需要缓存,Claude则是要在调用时手动添加标记。
虽然在细节上各家有各自的做法,但这种新模式,已经受到了国内外顶级玩家的青睐,未来可能会成为大模型厂商的新标配。
参考链接:[1]https://twitter.com/anthropicai/status/1823751314444021899[2]https://www.anthropic.com/news/prompt-caching[3]https://twitter.com/danshipper/status/1823790134745289106
— 完 —
量子位 QbitAI · 头条号签约
关注我们,第一时间获知前沿科技动态
GPT-Engineer一夜爆火!一个提示生成整个代码库,GitHub 19k星
编辑:桃子 好困
AutoGPT之后,又一个明星项目诞生了!
GPT-Engineer一夜之间火遍全网,GitHub项目已经狂揽19k星。
这是一个根据指示生成代码的AI工具,你只需要「动动嘴」,就能直接构建整个代码库。
项目地址:https://github.com/AntonOsika/gpt-engineer
甚至,它能学习你的代码风格,短短几分钟就能让你搞定编码项目。
网友表示,我们离AGI又进了一步。
程序猿又要被淘汰一波了。
一句提示创建代码库
短短一周,GPT-Engineer在GitHub热度狂飙,引众多开发者围观。
究竟有多大的魅力?
项目主要作者Anton Osika在6月11日首次推出GPT-Engineer,并介绍了这款AI工具最大的特点:
– 一个提示就能生成一个代码库
– 提出需要澄清的问题
– 生成技术规范
– 编写所有必要代码
– 易于添加自己的推理步骤、修改和实验
– 项目开源
– 分分钟让你完成编码
畅想下,未来无需编写一行代码,开发者创建一个项目就像和好友聊天那样简单。
这不仅仅是一个项目,而是对未来的一瞥。
GPT-Engineer预示着未来软件创造将是一个人机共话的时代。
另外,根据GitHub介绍了GPT-Engineer主要项目理念:
– 简单易用,能够为用户提供价值;
– 灵活且易于添加新的「AI步骤」;
– 支持高级提示,可以记住用户反馈;
– 能快速在AI和人类之间快速切换;
– 所有计算都是「可恢复的」,并持久地保存到文件系统。
这个项目独特地方在于,开发者在文本文件中提交需求,GPT-Engineer不是无条件接受这些要求,而是提出许多详细的问题来让程序员澄清缺失的细节。
整个过程分两个阶段执行,即(1)需求细化促进阶段和(2)软件构建阶段。
第一阶段的步骤是:
用户提供的包含软件需求的文本文件被提交给GPT-Engineer,并被放置在OpenAI的GPT的初始消息中,同时还包括确定澄清问题的指示。
GPT-Engineer系统接收来自OpenAI GPT-4的反馈,了解哪些需求需要澄清,并回应提示用户澄清的问题。
GPT-Engineer会将这一过程循环,直到所有问题澄清到OpenAI GPT-4满意为止。
第二阶段的步骤是:
前一阶段提炼的需求被打包,并与OpenAI的GPT指令(即系统提示)和另外一套GPT-Engineer希望看到的输出指令(即用户提示)一起包装起来。
GPT-Engineer收到来自OpenAI GPT-4的响应,然后…
GPT-Engineer为用户提供指令的软件项目创建源代码文件。
贪吃蛇上手实操
说了这么多,不如上手试练一番。做一个多人可玩的贪吃蛇网页版游戏。
你只需要输入一些关键提示:
使用有MVC组件的Python后端,视图需要将状态流传输给所有玩家,用你所生成的代码直接直接运行html和js。
对于这个游戏代码生成,GPT-Engineer就会让你继续回答一些细节的问题。
游戏规则和机制:确切给出贪吃蛇如何移动、生长,以及与其他玩家如何交互,有没有什么power-ups,或者特殊游戏元素?
玩家互联:有多少玩家能加入游戏,是否有游戏大厅或者匹配?
游戏状态更新:多久更新一次游戏状态,多久把状态流传输给玩家,延迟率是?
用户界面:游戏界面长什么样?有任何特别设计需求和喜好吗?
游戏控制:玩家如何控制蛇?是否有其他控制或设置?
游戏结束状况:游戏如何结束?是否有评分体系或排行榜?
代码结构:对Python后端、HTML和JavaScript代码的组织有什么具体要求吗?
当你简单回答完这些问题后,GPT-Engineer就根据这些信息,给出了能够实现目标所需的文件、类和方法的列表。
具体步骤唰唰唰地来了。
最后一款完美的贪吃蛇游戏代码就完成了。
网友热评
网友表示,「澄清问题」是真正使GPT-Engineer脱颖而出的原因,因为修复生成代码中的问题往往比编写代码本身需要更多的时间。这似乎是朝着正确方向迈出的一大步。
真希望我上学时候就有这样利器了。
还有网友对GPT-Engineer和GPT-4的区别感到困惑。
然而,这个项目火虽火,一位网友测试了GPT-Engineer,给出了体验:
难设置
实际上不是创建文件,只是让你从命令行中运行一次(即不能调试)
与ChatGPT4的能力相当
最后总结,理想很丰满,现实很骨感。
还有网友对基准指出了问题,
gpt-engineer做了几个简单的编程任务,并将它们作为基准。它可以为你快速开发一个currency_converter,但不能正确编码一个pomodoro_timer(还没有!)
安装方法
要么选择稳定版(stable),要么选择开发版(development)。
对于稳定版本:
– pip install gpt-engineer
对于开发版:
– git clone git@github.com:AntonOsika/gpt-engineer.git
– cd gpt-engineer
– make install
– source venv/bin/activate
设置
使用GPT4访问权限的API密钥运行:
– export OPENAI_API_KEY=[your api key]
运行
创建一个空文件夹。如果在repo中,你可以运行:
– cp -r projects/example/ projects/my-new-project
– 在新文件夹中填写 main_prompt 文件
– 运行:gpt-engineer projects/my-new-project
结果
– 检查 projects/my-new-project/workspace 中生成的文件
限制
使用额外的思想链提示,如Reaffon,应该能够让其更可靠,并且不会错过主要提示中请求的功能。
你可以通过编辑 identity 文件夹中的文件来指定AI智能体的「身份」。
编辑「身份」和改进 main_prompt 是让智能体记住项目之间的事情的方法。
steps.py 中的每个步骤都将其与GPT4的对话历史记录存储在logs文件夹中,并且可以使用 scripts/rerun_edited_message_logs.py 重新运行。
项目主要作者
Anton Osika
Anton Osika是Depict.ai的首席技术官。这是一家创建机器学习推荐系统的初创公司,通过尖端的机器学习、计算机视觉和自然语言处理来理解产品。
就在4小时前,他还发了一条动态称,GPT-Engineer已经跃升到17k星,一点也没有减速迹象。
参考资料:
https://github.com/AntonOsika/gpt-engineer
https://twitter.com/rowancheung/status/1670829363137499137
https://twitter.com/antonosika/status/1667641038104674306
https://twitter.com/antonosika
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。