码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 一个文件的开源项目,开启你的开源之旅


    你是否记得:刚学完编程基础那会儿,特别想写个东西,但动起手来却发现到处碰壁?

    你是否找到:一个好玩的开源项目,结果卡在了部署环境、安装依赖上?最后"含恨而终"!

    我刚学编程的时候,不止一次打开 IDE 看着闪动的光标发呆,大脑和空白的页面一样,一片空白毫无头绪。想写点东西根本无从下手,想玩别人的项目也跑不起来。一下子从书本抄代码的阶段,转变到自己构思、设计、编写代码,这跨度着实有些大。当时感觉自己学的那些什么语法规则,都吃完拉了什么都没留下。

    有没有人和我一样,有过上面的经历或者正处于这种状态。我当时就在想有没有那种,比书上的实例代码长一些,有些实际用途的开源项目。即:

    一个文件、运行简单、一看就懂,有趣的开源项目!

    因为一个文件的项目基本上复制代码到编辑器里就能跑,还可以通过调试看每步的结果更容易读懂代码。重点是它要有实际用途,不是代码例子,这样就可以拿出去给别人看和使用,学起来很有动力。代码中再多来点注释,相对于干巴巴的教程文章,我更喜欢代码中的注释,简洁直给解惑效果更佳。

    功夫不负有心人,终于让我找到它们了:

    OneFile 汇集了仅一个文件,好玩的开源项目。

    项目地址:https://github.com/521xueweihan/OneFile

    官网:https://hellogithub.com/onefile/

    这里有游戏、编译器、服务器、工具、实用库等,它们运行简单甚至复制代码就能跑。

    下面让我们一起来把玩下吧!

    1、点击停球

    消磨时间的小游戏,只需将球停在有颜色的区域即可得分。所有代码就只有一个 HTML 文件,玩累了还可以右键“显示网页源代码”,研究下源码如何作弊。

    试玩:https://hellogithub.com/onefile/code/cc759276aefe4bad87ac259940042581

    2、番茄时钟

    纯 Python 实现的命令行番茄时钟,另外还支持安装扩展实现桌面通知。复制代码到 PyCharm 右键即可运行。

    源码:https://github.com/521xueweihan/OneFile/blob/main/src/python/tomato-clock.py

    3、迷你编译器

    用 JavaScript 写的迷你编译器,实现将 LISP 转化成 C 代码。每一步写的特别详细注释比代码多,人人都能看懂的编译器项目。打开浏览器的“开发者工具”跳转到“Console”页面,把代码粘贴进去即可运行。

     *                  LISP                      C
     *
     *   2 + 2          (add 2 2)                 add(2, 2)
     *   4 - 2          (subtract 4 2)            subtract(4, 2)
     *   2 + (4 - 2)    (add 2 (subtract 4 2))    add(2, subtract(4, 2))
    

    源码:https://github.com/521xueweihan/OneFile/blob/main/src/javascript/the-super-tiny-compiler.js

    4、字符视频

    打开网页授权开启摄像头,你将看到实时转化成 ASCII 码的图像。浏览器右键“显示网页源代码”,即可查看全部源码。

    试玩:https://hellogithub.com/onefile/code/126093303b6b414dbab9d623c957fdd4

    5、太空侵略者

    原版的《太空侵略者》由大约 2k 行的 8080 汇编代码写成,但汇编语言太过底层不方便阅读,今天讲解的开源项目 si78c 是按照原版汇编代码用 C 语言重写了一遍。这个项目虽然核心文件只有一个,但运行稍微复杂,不怕我们有配套讲解文章。

    源码:https://github.com/521xueweihan/OneFile/blob/main/src/c/si78c.c


    万事开头难,但这些项目一点都不难!

    无数次想写东西却无从下手...无数个卡住的夜晚...无数次想砸电脑的冲动...

    它们都将成为过去式,希望本期推荐的一个文件开源项目,能让你重拾信心发现编程的乐趣。点击发现更多!

    开启开源之旅

    每个开源项目都是从一个文件开始,通过不停迭代才成为了被人熟知和喜爱的知名项目。

    如果你发现某个痛点或者灵光乍现,仅需创建一个文件把它记录下来,然后不断更新迭代并开源出来。最终,它可以帮助到更多人,未来的某一天会惊艳到包括你在内的所有人!

    如果让你只用一个文件展示“平生所学”,编程语言不限!你会交出什么样的作品呢?

    一个文件的编程挑战,要求如下:

    • 单个文件、不可压缩、体积小于 1 MB
    • 代码结构清晰,包含注释,行数小于 5000 行
    • 不限编程语言,不可仅包含 Markdown 文件
    • 不引入任何外部文件(图片、视频、CSS 等)
    • 项目功能完整,具有学习或使用价值
    • (可选)最多依赖一个开源库或框架

    轻点 即可参加,开启你的开源之旅。

  • 相关阅读:
    Web APIs——焦点事件以及小米搜索框
    ros2与windows入门教程-创建工作空间和功能包
    sql语句优化总结-避免全表扫描
    【WSN】基于蚁群算法的WSN路由协议(最短路径)消耗节点能量研究(Matlab代码实现)
    抗疫众志成城网页设计成品 抗击疫情感动人物网页制作模板 大学生抗疫静态HTML网页源码 dreamweaver网页作业致敬逆行者网页设计作品
    JAVA_内部类 学习笔记
    Hadoop-HDFS分布式文件系统基础
    算法设计(一) : 搜索算法实现八皇后问题
    项目管理是什么?
    信用风险识别问题(MATLAB)
  • 原文地址:https://www.cnblogs.com/xueweihan/p/16042489.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号