BY: 雷电法王杨永信(在B站名字)
在初中最后一年
只是失去了应试优势, 体育优势
而敌人就在京城下
这并不意味无法反击
敌人的应试优势只是暂时
它们的欺凌更是暂时
在极端复杂的软件工程领域中夺回来
它们所谓应试优势, 死记硬背在这里必将脆弱不堪
让伟大长期主义胜利旗帜飞过我们头顶
2023初三九班侵略者必将彻底失败
Под знаменем Ленина двигаться к победе
此版本为UI, 没有业务逻辑,UI是纯代码布局, 你也可以学习如何使用代码来布局。
请注意: 业务逻辑的实现非常不稳定! 暂时只开源UI, 业务逻辑稳下来后再开源。
后续我会push一些测试的例子, 位于Test目录下。
2022年03月12日 初二时期, 熙柠游戏网站立项, 标志着熙柠系的开始
2022年04月左右 熙柠云剪辑立项
2023年08月20日 Unity引擎版本创建
2023年11月04日 UE引擎(虚幻引擎)版本创建
2023年11月30日 QT版本创建, 现存, 很早期的C++入门项目, 也是我的第一个Qt项目。
2024年04月03日 23时52分46秒 开始设计欢迎界面图片 2024年04月07日 16时28分25秒 欢迎界面图片设计完成 2025年07月14日 16时54分37秒 纯UI版分支创建
- 目前还在实现一些底层所需要的, 包括一些些小框架, 所以这个仓库将会很长一段时间不更新, 希望您知道
- [已放弃] 我尝试只使用Qt的QWidget模块, 其余的一律不用, 属性, 哈希表, 队列, 动态容器等等都是自己使用C语言实现的
- 为什么放弃? 拆黑盒自己实现不是很可靠, 还是用QT提供的模块吧。
- 暂时先基于shotcut研发, 当前可用的熙柠剪辑fork自shotcut, 是shotcut的衍生品, 逐一摸透后再自研, 避免盲人摸象, 因为网上精讲NLE底层资料的实在太少了, 啊啊啊啊啊啊啊啊啊啊!
- 2026-02-04 03:06:37 [大规模更改] 部分布局由工具栏取代, 以及多个细节, 啊啊啊啊啊
于2025-08-31 19:43:34提出软件版本的
首先,使用Markdown编辑器或者具有Markdown功能的编辑器把规范完整的打一边, 然后, 全部删除掉, 不能按下Ctrl+Z, 立即关闭你的编辑器, 彻底的删掉
然后呢, 现在可以开始了
- 关键字
- 禁止使用auto关键字
- 缩进
- if语句超过三层, 说明程序开始朝不好的方向发展, 需要修复, 请尝试使用策略, 卫语句或者其他的方法来优化
- 代码必须有缩进, 至少4个空格甚至更大, 因为更大的缩进可以让你很舒服
- 变量名
- 禁止使用aa,bb,cc,abc来命名
- 禁止使用汉语拼音来命名
- 禁止将变量名全部大写或者全部小写, 除非使用了下划线作为分割
- 如果你使用了上面三种方式, 说明你的程序已经严重混乱, 你必须立即进行修复, 当然, for循环等流程控制除外, 比如for (int i = 0; i < 114514; i++)
- 正确的方法是你应该使用专有的英文名来命名并遵守命名规范
- 函数
- 如果函数有返回值, 那么无论如何都要有返回值
- 性能
- 你应该尽量避免线性, 特别是逐个遍历, 在遍历前, 你应该尝试寻找一种不需要遍历的处理方式, 尽可能的将时间复杂度从**o(n)降到o(log n)**来提高程序的速度, 除非只能使用遍历, 没有其他的更优方法
- 冒泡排序法你不应该使用, 因为时间复杂度是糟糕的n的平方, 这意味着是非常低效且非常糟糕的, 你因该让快速排序和Timsort等高效的排序算法来取代冒泡排序
- 安全
- 在堆中申请的内存块, 你应该在不需要的时候释放它, 归还给操作系统, 并立即赋于NULL来避免野指针, 你务必知道: if语句是无法检查出野指针的, 来看下面的例子
#include <stdio.h> #include <stdlib.h> int main() { int *Number = (int *)malloc(sizeof(int)); /* 申请一块内存 */ *Number = 114514; printf("%d\n", *Number); /* 正常打印是114514 */ /* 然后我们释放它, 不赋为NULL */ free(Number); /* 如果不释放, 将会引发内存泄漏, 你可以通俗理解为占着茅坑不拉屎, 造成了公共的资源浪费 */ /* 判空 */ if (!Number) { printf("无效的数字!\n"); /* 是不会打印这句话的, 因为没有赋为NULL, 这就是非常危险的野指针 */ } /* 比如小明约好了你去奶茶店, 你需要找到小明, 小明告诉你地址是奶茶店门口的长椅, 你去了奶茶店, 长椅上坐的并不是小明而是其他顾客,这个小明, 又TM放我鸽子 */ }
- 在使用任何递归算法时, 必须进行评估, 确保不会爆栈(递归深度过大导致堆栈溢出); 如果出现爆栈, 则不应该使用递归, 而是由迭代取代递归
主要分为四个核心模块
- 管理系统
- 编辑器
- 设置
你务必知道: 不同的模块有着不同的协议, 以MIT居多
- 根目录
- [DIR] Doc
- [DIR] RoutingArchitecture 页面路由架构
- [DIR] Assets 资源目录
- [DIR] Images 图片
- [DIR] ClipHall 剪辑大厅
- [DIR] Public 公共的
- [DIR] Welcome 欢迎屏幕
- [FILE] XncutClipHall.qrc 剪辑大厅资源文件
- [FILE] XncutPublic.qrc 公共的资源文件
- [FILE] XncutWelcome.qrc 欢迎屏幕资源文件
- [DIR] Images 图片
- [DIR] Src 源代码目录
- [DIR] XncutWelcome 欢迎
- [FILE] XncutWelcomeScreen.h 欢迎屏幕
- [FILE] XncutWelcomeScreen.cpp
- [DIR] XncutPublicWidget 共有部件
- [FILE] XncutListView.h 列表视图
- [FILE] XncutListView.cpp
- [DIR] XncutPublicStyle 公共样式
- [FILE] XncutCustomTabStyle.h TAB样式
- [FILE] XncutCustomTabStyle.cpp
- [DIR] XncutClipHall 剪辑大厅
- [FILE] XncutClipHallWidget.h 剪辑大厅部件
- [FILE] XncutClipHallWidget.cpp
- [FILE] XncutUserInfoWidget.h 用户信息(实际上是布局)
- [FILE] XncutUserInfoWidget.cpp
- [DIR] XncutProjectManager 工程管理器
- [FILE] XncutProjectManagerWidget.h 工程管理部件
- [FILE] XncutProjectManagerWidget.cpp
- [FILE] XncutProjectCreateWidget.h 创建工程
- [FILE] XncutProjectCreateWidget.cpp
- [FILE] XncutProjectModifyWidget.h 工程管理
- [FILE] XncutProjectModifyWidget.cpp
- [DIR] XncutEditor 编辑器
- [DIR] XncutTitleBar 标题栏
- [FILE] XncutTitleBarWidget.h 标题栏部件(实际上是布局)
- [FILE] XncutTitleBarWidget.cpp
- [DIR] XncutBins 素材箱
- [DIR] XncutMaterialField 素材领域
- [FILE] XncutMaterialFieldWidget.h 素材领域部件
- [FILE] XncutMaterialFieldWidget.cpp
- [FILE] XncutBinsWidget.h 素材箱部件
- [FILE] XncutBinsWidget.cpp
- [DIR] XncutMaterialField 素材领域
- [DIR] XncutProjectMonitor 工程监视器
- [FILE] XncutProjectMonitorWidget.h 工程监视器部件
- [FILE] XncutProjectMonitorWidget.cpp
- [FILE] XncutVideoWidget.h 视频部件
- [FILE] XncutVideoWidget.cpp
- [FILE] XncutEditorWidget.h 编辑器部件
- [FILE] XncutEditorWidget.cpp
- [DIR] XncutTitleBar 标题栏
- [FILE] Main.cpp 入口
- [FILE] Xncut.h 主窗口,此文件等价于MainWindow.h
- [FILE] Xncut.cpp
- [DIR] XncutWelcome 欢迎
- [DIR] Test 测试例子
- [DIR] XncutThreeLayerLayout 三层垂直布局部件
- [DIR] XncutAbstractTabItemView 抽象标签视图部件
- [DIR] XncutTitleBar 标题栏 MIT协议
- [DIR] XncutPenTool 钢笔工具
- [DIR] Data 一些配置
- [DIR] Doc 开发文档
- [FILE] CMakeLists.txt Cmake的构建配置
- [FIEL] COPYING.AGPLv3 AGPL协议
- [FILE] README.md 就是这个
- [DIR] Doc
- 喜欢的话记得点个Star吧
- 如果你有更好的建议,issues吧,这对我非常重要!
- 高中生活自由又自在,嘿嘿~
- 你一定要记住, 先开始, 后完美
- 奈何网络就是我的弱点啊, 尝试搓个网络模拟器吧, 感谢彭老师留的时间
- 高二的时光过的真TM快啊, 好好珍惜吧~
哈哈, 我当然怕, 让我尝试一下, 万一成功了呢?
如果成功了, 剪映VIP是啥? Pr订阅费用是啥? 我不知道
我不同意, 在工业领域, 绝对不行,
苛刻规矩是为了守住生命线, 守住客户的信任,
如果规矩宽松, 就是拿生命开玩笑,
正所谓差之毫厘, 缪以千里,
测试场景必须覆盖全面, 少一个都不行
精度必须最高, 少一分都不行
每一条规矩的背后都是血和泪的教训
是学校啊, 那太对了.
