200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 【Ok周志】开源(程序功能:自动编写周志)

【Ok周志】开源(程序功能:自动编写周志)

时间:2022-10-20 00:08:03

相关推荐

【Ok周志】开源(程序功能:自动编写周志)

【Ok周志】开源代码链接地址:/Okroie/OkZZ.git

前段时间看了一本书名叫《大数据平台基础架构指南》作者是蘑菇街大数据平台负责人,他在书中这样说到:只有代码的开源那叫晒代码,真正的开源还要开放思想。所以这篇文章会说到三点内容,一是开发初衷,二是开发流程,三是开发感悟

一:开发初衷

大学实习期间每周会写一篇200字左右的周志,有时候因为学习或其它事情的原因没有时间写。当时想如果有一个程序可以自动编写,对于那些因为学习和实习工作繁忙的大学生来说就很方便了

二:开发流程

首先这是我做的第一个小规模的电脑程序,用了22天的时间

其实程序成型只用了一周多的时间,但很多事情真的没有想象的那么简单,比如每台电脑的细小差异,程序漏洞等问题

程序主要用到的技术是:Python +网络爬虫

程序构建思路:一篇周志大致分为四个部分,分别是:标题,开头,中间内容和结尾。

其实程序第一个版本只是半自动的,也就是用户需要输入中间的部分。因为当时考虑到它的普遍兼容性,比如每个大学生的专业,工作情况等都不一样,所以不能实现完全自动化

有一天,突然想到其实中间内容,可以使用一本书或一部电影的评论或介绍,于是通过编写爬虫程序从网上批量获取到了一些指定的内容,在整理后放入程序。

整个程序由三个Python文件组成,分别是AuRe.py(程序入口文件),AuRecord.py(主文件),AuReIn.py(资源文件)

(1)首先说程序入口文件(AuRe.py):

里面定义了一个Chief类,和默认方法,runn()方法。

值得说的是:因为程序只可以免费使用三次,三次后就需要输入密钥。我当时想了一会,然后用的是比较原始的方法,那就是根据程序生成的文件夹数量来判断程序运行的次数,也就是其实每打开一次程序,电脑就会生成一个文件夹,当然后期也做了优化,具体细节就不细说了,总之你想破解也没有那么简单,哈哈

(2)然后说一下主文件(AuRecord.py):

里面定义了两个类:ZhouZhi和Day,Day类的功能是将时间转换为汉字的大写数字,因为很多人都知道“走人户”,也就是别人家请很多人吃饭,而且需要付费,他们的收款记录就是用的汉字大写数字,所以想记住它,因为确实很少见到啊!

ZhouZhi类定义了默认,xe1(),write(),main()方法。程序的整体运行逻辑我是直接写在默认方法里面的,xe1()方法是全自动模式,write()方法是半自动模式,和将输出内容以文件的形式保存在电脑上,并将其自动复制。

值得说的是:程序会根据当前时间自动推算你参加实习的天数,和周数。还会自动保存你离开程序的时间,也就是说这个程序会有一点记忆的功能,主要用到了pickle库,它能以文件形式保存数据。还有就是程序自带的音乐打包过程也比较棘手,因为Python打包是不能直接加入媒体文件的,所以其实是先将音频文件通过base64库(Base64是一种基于64个可打印字符来表示二进制数据的方法),将媒体文件压缩成Base64格式的字符放入AuReIn.py(资源文件)中,在程序第一次启动的时候,自动将Base64格式的字符转换为媒体文件,保存在电脑里。将文本自动复制用的pyperclip库,播放音频用的pygame库,退出程序用的是sys库,rich库让界面有了颜色显示。

(3)最后再说一下资源文件(AuReIn.py)

里面存放了许多数据,比如名人名言等,通过外部的随机抽取调用

三:开发感悟

学习技能就要学有所用,编程也是一样。通过制作【Ok周志】这个程序,让我再一次系统地巩固了这门编程语言,这是我第一次做,对于编程大神来说,或许这就很So easy,但我相信大神也是从菜鸟阶段,努力思考加实践和日积月累而成为的,值得敬佩。再说一下之前给学校做那个游戏,第一个版本的背景音乐是《Final Song》,其实当时正好在学习Python的后端框架Django,然后有一天午饭后一位同学就问我会不会做类似的游戏,我其实不怎么会,但我直接说会。遇到不会的问题,一般是先百度,发现那个游戏已经开源了,然后再看b站发现居然还有教学视频,我现在感觉这真的是巧合吗?还是真的努力就会有回报。其实本质上还是相信自己的力量。你相信你可以完成你就可以完成。当时那个游戏的难点其实只有两个一是找对应图片的位置,二是链接跳转的问题。也正好磊哥把它认识的会JS的朋友几乎都推荐给我了,其中李涛先生帮助我解决了那个问题,因为QQ和微信是屏蔽了JS直接跳转网址的功能,于是我们使用的是一个弹窗。还有那个游戏虽然开源了,但是内置了很多广告,所以也将这些细节优化了一下。也就是说其实第一个版本的游戏涉及到的技术并不多,但是放假后我们又对游戏进行了优化升级,比如会有游戏操作提示,在开始页面点击屏幕可以有爱国等字幕显示,进入游戏后的下方还会有音乐播放功能。其实这些对专业的JS和HTML&CSS的人来说这并不难,但我的大学课程并未开设JS这门编程语言课程,所以游戏的整个开发对我来说还是有一点挑战,在这之前专门花时间去了解了一下这门语言,总的来说它变化挺大的。其实也没有开设Python这门课程,刚上大学我都不怎么了解编程,但给自己定了一些小目标其中就包括掌握Python这门编程语言,虽然这并不是一个非常明智的选择,因为有句话叫做:底层永不过时,技术一直在变。也就是说入门先学C语言是不错的选择。但反过来想一下,刚入门就直接接触比较枯燥的语言,有可能会出现“从入门到放弃”,哈哈,言归正传,不管是先难后易,还是先易后难其实都有好处,主要是看个人,因为编程语言的核心几乎都差不多,比如现在就感觉Java的打印不能跟逗号必须用加号连接,和每条语句后面跟的分号这些操作都很不人性化。但如果一开始你就精通了C再去学习C++,Java,Python等语言,你就会觉得,哇,太简单了。当然世界不存在完美,编程语言也是一样,每个语言都有适合它的领域。所以到底学什么还是要取决于你想从事什么职业。后面,还有位朋友问我还想做一个关于医疗方面的程序不,我说算了,暂时先做目前最重要的事情。因为我只要做了就停不下来了,比如在做这个程序的时候,感觉时间飞逝啊,所以真的要多锻炼,身体才是最重要的。仔细想了想一位校长说的话真的很有道理,你不只要模仿,还要去创造。确实啊,编程再厉害也只是一个“工具”,大神那就是一个“好工具”。所以我一直坚信,不想当老板的程序员不是好程序员。哈哈,言归正传,或许社会就是这样运转的,每个人都有自己的责任和义务,正因为有无数个不一样的角色才构成了地球这个大家庭。

再说一下,为什么常怀感恩之心的人通常都比较优秀,我想是因为他们知道一个人的力量实在太微弱了,改变世界也是先改变自己,家庭,国家。总之,需要感恩的人太多了,前提是先让自己变得优秀。

正如我的笔名Okroie其实是英文rookie的改写,中文指新手,菜鸟的意思。我深知优秀的的人实在太多了,更何况他们还很努力。

还记得一位院长说的不要读死书,确实啊,虽然书是人类进步的阶梯,阅读就相当于是站在巨人的肩膀上思考,但书的内容会受到一些规则的限制,所以实践也很重要。也就是人们所说的经验,所谓经验就是许多人通过思考或行动后总结的一致结果,但这并不代表适用于所有人,所以适合自己的才有可能是最好的。我写这些不是为了什么才写,而是心有所感,或许不全是正确的,但都是想表达的。当然,以上仅是个人的观点。最后,再引用那本书中的一句话:

It's never wrong to do the right thing.

做正确的事永远不会有错。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。