番茄项目5:已初步完成了python+tkinter版的番茄项目
本文分享了作者借助AI工具快速完成Python番茄钟项目开发的经历。原计划耗时一周的项目,在一天内就完成了核心功能开发,包括任务管理、番茄钟记录、中断处理等功能。重点记录了界面布局问题的解决过程:通过调整与AI的提问方式,最终定位到Canvas布局问题并修复。文章还列出了近期和远期的开发计划,涉及功能优化、代码重构和Web移植等。作者反思了AI辅助开发的利弊,认为虽然能提高效率,但也需保持自身代码
项目状况
代码量
TomatoController.py 60行
TomatoModel.py 162行
TomatoView.py 389行
项目文件夹大小:440kb
本来预计用纯python开发这个项目也还需要好多天,没想到上周正好有一天的空闲时间,一下子就把这个项目做得差不多了。
上周的todolist也都完成了:
TodoList
开始任务时的番茄钟记录功能
添加修改任务的方法
添加删除任务的方法
添加中断的方法
添加记录干扰的方法
添加任务完成的方法
其实功能性的内容,好早就做完了,但是界面上的调整还花了我接近一天的时间,因为遇到一个bug,一直没有解决,就是原来的界面,按钮一直是紧挨着文字后面的,但是我想把文字放到界面的右边,结果一直没成功,问了AI也没解决,最后还专门去了解了下tkinter 的布局,还没解决。最后我来了灵感,换了个思路问AI:
我让他告诉我调试方法,后来我按照他教我的调试方法,最终定位到问题所在。
所来是我的程序里用了画布来实现滚动,画布里面又创建了窗口,但窗口的大小不受上层pack方法的影响。
最终原因是:
canvas.create_window()创建的窗口项默认不会随Canvas尺寸变化而自动扩展。即使内部Frame设置了fill=tk.BOTH, expand=True,它也只能跟随内容尺寸(由子组件决定),而不是Canvas的尺寸
经过半天的研究,我终于解决了这个问题。
本来预计要一周以上才能实现这个项目,结果借助ai,我在一天就实现了这个项目,也确实大大提高了工作效率,这在以前是不可想象的。
下一步计划
- 实际使用一段时间,测试下相关功能。 我做这个软件主要是自己用的,如果自己不用,那做了也就没多大意义,所以我需要一直用下去。
- 在用的过程中,想想需要改进的地方。
- 完善界面的部分,因为界面的代码好多是AI生成的,并且界面的代码我还不太熟,有些地方不是十分理解,造成代码感觉有些无序,难以改造,有时间的话,我要重写界面部分的代码。(目前感觉用AI生成代码问题不大,但需要自己看得懂,能修改,不然出bug了都不会改)
- 等纯python版的番茄工作法做好后,我再考虑移植到web上去。
Todolist:近期
- 增加番茄钟下方按钮的大小
- 在主番茄钟开始时,点击下方任务的始按钮,逻辑上的处理问题。
- 测试任务的几个按钮的功能是否正常,是否有必要的提示,尤其是删除和完成的时候。
- 整理程序的界面部分代码,让代码变得更加清晰。
- 打包程序,让程序能独立运行。
Todolist:远期
- 添加统计数据,显示今天总番茄数量,在任务列表中展示每个任务已经完成的番茄数。
- 显示干扰列表
- 显示中断列表,后期数据多时,还可以加上查询条件,比如日期,关键字
- 建立远端数据库,让数据可以跨电脑共享
- 把整个项目移植到web端
几点思考
- 开发过程中如果借助AI的能力?
- 一直依靠ai是不是会降低自己的能力,长期反而会降低自己的开发效率。因为花了太多的时间处理bug上的,而一个熟念的开发者写出的代码bug应该是少于ai的。
- 程序有没有必要做太多的统计分析功能?程序应该做适度的统计功能,但更复杂的功能是没必要的,可提供数据给用户自行分析。就比如我所在的行业的系统就分一个生产系统,一个查询系统,生产系统里也有查询,但只做必要的查询。
更多推荐
所有评论(0)