1024code¶
1024Code 是一个免费的、协作式的、基于浏览器的 IDE 环境,支持 10 多种编程语言,支持 Spring 、Vue 、React 等框架,还支持很多图形库,是刚入门的程序员学习编程,与朋友一起创造作品,分享交流的最佳选择。
background¶
1024code 全新在线开发环境, 值得体验, 以及判定最合适来折腾什么
goal¶
- 关键功能体验
- 记录直觉痒点
- 规划小规模使用策略
tracing¶
几个工程过程中的体验
Jerry¶
可能的爆点
- 不知道基于哪种级别的 GPT
- 至少对自然语言的理解和生成是足够流畅的, 生成回答也足够及时
- 当然, 少不了其它 AI 回答时的车轮话
~/app$ nix-env -i htop
nix-env: /nix/store/jsp3h3wpzc842j0rz61m5ly71ak6qgdn-glibc-2.32-54/lib/libc.so.6: version `GLIBC_2.33' not found (required by /nix/store/mc6f3fxw7zv1gshdff7wyb17kyxhymnd-gcc-10.3.0-lib/lib/libstdc++.so.6)
PS:
Jerry 有了, 就等 Tom 了...
PPS:
针对 Jerry 给出的各种提示语建议, 可能是整个系统中最有意思的地方:
我需要你扮演编程专家的角色。我会提供关于我的编程问题所需的所有信息,你的角色是解决我的 XX 题。你应该运用你的计算机科学、网络基础设施和编程领域相关知识来解决我的问题。在回答中,使用智能、简单和易于理解的语言对各个层次的人都会有帮助。最好用分步和项目符号解释您的解决方案。尽量避免过多的技术细节,但在必要时使用它们。我希望您以解决方案的形式回复,而不是写任何解释。
如果可以有机制推荐用户们使用最多, 最有效果的提示语, 那么, 随着时间的积累, 1024code 很可能成为最大的中文编程提示工程库... 这个市场空间可比普通的在线 IDE 要有想象现在了...
囧:¶
~/app$ cargo build
在 shell 中并没有合适的自动完成支持, 导致所有常用指令只能人工记忆全部键入, 不吻合日常工作效率期待
warning: build failed, waiting for other jobs to finish... error: build failed
Rust 工程中最常见的依赖追加行为:
- 修改 Cargo.toml
- cargo build 或是其它指令
- 自动下载/编译/安装模块
失败了...
[dependencies.ncurses]
git = "https://github.com/jeaye/ncurses-rs.git"
尝试其它形式的模块依赖, 也无法正确安装...
标签
一般 IDE 在打开的文件有内容变化时, 再打开其它文件,将保留原有 tab 以便提示开发者要保存...
现在 1024 中, 因为有高速自动保存, 所以, 永远只能打开一个文件? 那么, 想快速切换文件时, 就只能在目录树中每次人眼定位打开...
IMHO¶
头42小时初步直觉...
简单说 1024code 可以认为是一个 SaaS 服务:
- 提供立即可以开始的基础开发界面
- 相对完备的真实 Linux 运行时
- 配套 VSCode 风格的编辑器以及 Vim/Emacs 等常见快捷键支持
- 足以日常使用的 git 支持, 并可以流畅关联/引入/绑定 外部仓库
- 原创惊喜:
- 直接有 MySQL 真实数据库资源可以随时启用
- Jerry AI 助手
- 内置聊天窗口
- ...
也就是说:
- 作为一个 demo 级别的探索开发/自习室, 足够了
- 问题在, 又无法解决独自学习时难以坚持的无反馈问题
- 但是, 是否能作为一个轻量级别的正式项目开发时, 得观察
- 毕竟 Nix 并不是流行的发行版环境, 如果真进行正式项目的开发
- 那就要首先解决了和其它 Ubuntu/Gentoo/... 常见发行版的 DevOps 兼容问题
如果是日常开发, 比如 Python , 也都有越来越完备的最佳实践: 比如: Hypermodern Python Cookiecutter documentation
但是, 无论哪种组合, 日常要自行构建起来, 都不是一件容易的事儿, 如果 1024code 能针对每种开发语言社区中探索出来的实践经验, 事先配置好, 那么, 大家可能越来越习惯在这儿开展开发, 不得以时, 才迁移回本地...
进一步的, 可以作为更好的在线课程发布平台呢?
- 如果是公开课程, 感觉比以往只有视频或是只有代码和文字的, 要好一些
- 有点像更加吻合日常开发过程的 Jupyter 界面, 虽然缺少一些可能关键的特性, 但是, 已经比自己构建这种环境要可用的多了
- 但是, 课程和开发并不是一个逻辑
- 不说其它反焦虑的伪课程哈
- 一般课程就两种类型:
- 通用入门
- 专用技能
- 前者面对小白, 后者专注具体框架/系统/应用/问题
- 不过, 都要解决一个核心问题:
- 如何知道自己知道的过程是对的?
- 或是说, 过程中如何及时获得针对性合理的反馈
- 当前虽然有 Jerry 触发式反馈, 可有触发门槛
- 也有聊天窗口, 可这个窗口是随机的, 还不知道是否是集中式的:
- 也就是说, 如果有多名学习者同时打开一个工程时,
- 大家在聊天窗口输入是所有人可见的
- 针对工程发布者, 另外有管理界面, 可以回顾/总结/统计/私聊/...
- 否则, 这个关键功能很难和课程配套起来
- 这个渠道, 有点儿像开源工程中真实用户的反馈
- 正确的反馈, 都可能引发课程内容的追加和增强
- 另外其它付费可见, 打赏 ... 配套功能先不论
- 单说以 1024codr 为背景一个可用课程的过程:
- 导师先构建课程, 包含所有阶段的问题, 引导, 示例
- 可能分解到不同分支, 或是目录
- 通过
README
进行引导 - 不过, rust-lang/rustlings at 5.0.0 这种和代码结合起来的闯关式环境是更加好的交互
- 当然, 这要求语言本身能支持
- 又如何确保每个学员有自己的进度, 不影响导师的构建?
- 这是另外一个问题了...
- 学员随机或是组织进入
- 跟随
README
探索并调试- 定期进行直播回答聊天中提出的问题, 或是组织进行相同节奏问题的共同尝试
- 这其中小组结对编程, 又是编程课程的关键场景, 在 1024code 中如何实现?
- 完成所有课程内容后, 经过一定的考核, 获得对应 证书/徽章
- 进一步的, 如果能允许优秀学员可以获得对应工程的联合维护权限, 那么以在线代码仓库为核心的编程课程, 就可能形成完全不同的体验了...
- 导师先构建课程, 包含所有阶段的问题, 引导, 示例
- 以上 MVP 流程中最大的问题在:
- 导致不知道有谁在学习
- 学习者不知道如何自然的接触导师和其它同学
- 学习者的探索行为无法自然记录下来并共享在课程空间/组织里:
- 比如, 一个学员打开了课程
- 在一个文件中进行了修改, 触发了 bug
- 那么此时, git 是无法操作的, 这是导师的仓库
- 如果 fork 为自己的, 可以记录变化
- 但是, 又没有理由 pull-request 回去, 这是自己学习过程中的个性问题
- 同时, 也没有什么可追踪的邀请方式, 来请导师或是其它同学过来一起解决
- 也就是说, 学习过程中真实的学习行为, 没有一个合理的流程进行记录和针对性分享/追踪, 并进一步变成课程本身的知识积累...
logging¶
- 230520 ZQ 吐糟阶段小结
- 230514 ZQ 尝试开辟
- 230513 ZQ init.
Comments