猿创征文 | Python 开发工具进化之旅

article/2025/8/18 10:14:58

前言

我为什么会接触Python?

小元是开发驱动底层的,比驱动还底层,没错就是底层设备内部程序。驱动层以下都是 C 的天下, 我为什么会接触到 Python?

2010 年的时候, 那时候 python 还没火, 那时候我就跟着MIT公开课认识了python。

2018 年,在我的客户那里看到客户测试我们的eMMC 存储器,用的是python, 可直接执行单个测试用例,给我的感触很大。因为在这之前我的上层软件都是 C++ 写的, 修改测试用例后,需要把整个项目编译一遍,Time is too long。

小元感觉到 python 是新趋势,觉得要学好 Python 了~

1. Python

如何让电脑理解我的python语言

在 w3cschool 课堂学了点Python 语法, 小元决定要小试牛刀了。

美好的编程从 “Hello World 开始”。

我应该先找个翻译,没错,就是将我的代码翻译给机器来执行。 看来先要装一个 python 软件。
在这里插入图片描述
在这里插入图片描述

Python 是很容易理解, 上手简单。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。

新问题
理论上我可以在这个黑框中,一行一行敲入我想执行的任何指令。不过这样效率太低了。 如果我敲错一句话, 就要重复把前面的语句再输入一遍。

2. Notepad++

我可以建立一个 .py 文件啊。 编辑 .py 我选择 NotePad++
在这里插入图片描述
可以高亮文字,突出函数和变量,可读性好多了。
Notepad++ 不仅有语法高亮度显示,也有语法折叠功能, 还是免费的。

装了 Notepad++,不光编程时候可用,平常编写文档/搜索文字也超方便。

新问题:
代码显示解决了, 可代码编译还是要在这个黑框里一步一步敲。Python 这个界面就像 DOS 界面一样,丑爆了。

3. PyCharm

有没有又好用、又好上手的集成 IDE ?
有的,PyCharm 登场了。 在这里插入图片描述
在这里插入图片描述
PyCharm是一种Python IDE(集成开发环境),可以帮助小元在开发时提高效率,比如调试、语法高亮、智能提示。

说到这个智能提示就很有意思, 当代码有语法错误,它会建议你怎么修复。当有package 没有包含时, PyCharm 也会提示,可以一键 install package。真是一个好帮手。

新需求
玩了一段时间,小元已经不满足于写个 hello world, 写个排序算法了。能不能用python做点好玩的? 比如写个游戏。

我明明可以凭实力从无到有,构建一个游戏大厦的。但我偏不,所谓站在巨人的肩膀上,才能看得更远。这个“巨人”就是 Pygame

4. Pygame

如果用 Python 做点好玩的

Pygame包含图像、声音。游戏研发无需被低级语言(如机器语言和汇编语言)束缚。所有需要的游戏功能和理念都(主要是图像方面)都完全简化为游戏逻辑本身。小元只需关注游戏规则即可。
在这里插入图片描述
Pygame 让游戏开发像比写个冒泡排序还简单,瞧瞧这多有趣。如果你会美工,自己可以做漂亮的图就更美轮美奂了。

新问题
欢乐是欢乐,但我也有一个快乐的烦恼。

5. Source Insight

随着功能越来越多,代码工程也越来越复杂, 代码文件、资源、函数、变量数目成千上百地增加。这时候搜索变量引用,函数调用层级就很头疼。坦白讲 PyCharm 在这方面很不灵活。

代码如何高效地阅读/查找代码
还好我找到一个好帮手, Source Insight.
在这里插入图片描述
Source Insight是项目开发的程序编辑器和代码浏览器。能分析源代码并在工作的同时动态维护它自己的符号数据库,并自动显示有用的上下文信息。

            # 子弹碰钢板if tank_player.bullet.stronger:if pygame.sprite.spritecollide(tank_player.bullet, map_stage.ironGroup, True, None):tank_player.bullet.being = Falseelse:if pygame.sprite.spritecollide(tank_player.bullet, map_stage.ironGroup, False, None):tank_player.bullet.being = False

想知道哪里引用了子弹的 stronger (超强子弹可穿钢板)属性, 就可以一键全搜出来。在这里插入图片描述

6. UltraCompare

代码备份与差异对比

如果改代码怕改错了怎么办? 有时候我们可能加个调试代码,有时候修个缺陷,有时候改个新特性, 又或者重构下代码?
但是糟糕, 第二天忘记改了啥了。。。

咋办呀? 今天把代码备份下, 或者在修改之前, 把当前正常运行正常的代码备份下。 文件夹A 复制一个副本 文件夹B. 就可以用 UltraCompare 比较了。
在这里插入图片描述
一天两天备份文件夹还行,如果几个月每天备份, 又或者每天修改多个功能? 这么多文件夹就凌乱了。 而且回退代码要一行一行复制粘贴回去,多麻烦了?
有咩有好的代码版本管理工具?

7. TortoiseSVN

因为公司用的代码管理工具是TortoiseSVN(简称 SVN), 第一个想到的是在家里电脑装一个Subversion 客户端 TortoiseSVN。

TortoiseSVN 的确是很强大,使用也很方便。下载Checkout、更新 Update、提交 Commit,日常学会这三个命令就可以了。

但一般要搭建代码服务器,TortoiseSVN 安装包也不是很好得到。

小元这就放弃了? 不存在的。

8. GitCode

小元经常在 CSDN, CSDN 有一个 GitCode 入口, 直达GitCode, 共用账密。 这不就是我要的代码管理工具吗?

真是踏破铁鞋无觅处,得来全不费功夫。

在这里插入图片描述
在这里插入图片描述
用上GitCode, 小元什么时候改了什么代码, 为什么修改, 都可一目了然
在这里插入图片描述
这个还允许我和我的伙伴们一起编写同一份项目代码, 优秀吧。

GitCode 怎么用? 小元教你
GIT教程(图文版)— 注册、安装、代码管理(项目创建、密钥、下载、提交,协作), 一一分解

9. 云 IDE

如何让我的小伙伴和我同步环境?

小元和伙伴们都在开发这个项目,即便是个人兴趣项目,我们还是遇到了一个困难。

新问题:
小元这边的程序运行好好的,上传GitCode 后。
小元的伙伴运行不起来,排查发现是IDE 不一致。
小元的伙伴运行出错, 排查是缺少package。

这种问题说起来小,但排查可是很费时间和脑细胞。小元不想再被这个问题纠缠了, 找到了一个外援——云IDE

GIT项目地址 https://gitcode.net/vagrant0407/tank_pygame
前面加 ide 改成
https:// i d e \color {#FF6D00}{ide} idegitcode.net/vagrant0407/tank_pygame

就打开我的 CSDN 云IDE 了。
在这里插入图片描述
云IDE 就是小元不需要在本地安装 IDE, 服务器上有集成 VSCode IDE(继承了很多语言的IDE), 省掉小元找安装包、安装、配置。

小元可以在线编译。哪天小元换了台电脑, 也不需重新装编译环境了。

云 IDE 有很多智能的快捷操作, 比如自动对齐,体验很好。云 IDE 的使用习惯和本地 IDE 使用习惯近乎相同。

云 IDE 还是一个新生事物,小元也在体验和探索中~

10. CSDN Blog

写在最后的话 —— 项目复盘
就像是我今天捡到一片枫叶,又像是我明天拾到一颗枝桠。这些积攒的枫叶、枝桠就只能是一堆柴火。 如果我跳出漂亮、奇特的枝叶,摆列、粘合,它们便能成为一件艺术品(树)。

​编程学习或工作的点点滴滴,也就像枝叶,如果不时常总结复盘,让知识点更有逻辑,更有条理,我们便会遗忘。学习的收益便大打折扣。

我会用记事本记录点滴, 记得多了, 针对某个专题就可以写博客记录分享, 像是 CSDN、头条都是很好的博客网站。
在这里插入图片描述


http://chatgpt.dhexx.cn/article/cDojuIRf.shtml

相关文章

猿人学第1题(一天搞一个)

文章目录 前言 1. 加密方法1.1 加密寻找准备1.1.2 抓包分析1.1.3 调用堆栈前期试验理解中期操作 1.2 加密内容 2. 代码实现2.1 完整版代码2.2 python函数总结2.3 注意 前言 对js的基础一窍不通,最近才开始看。所以本文只是复现,别人的操作的逻辑。 如果…

猿人学 第一题

地址:http://match.yuanrenxue.com/match/1 思路: 1.找到传输加密地址,发现加密字段m,,通过全局搜索没有找到m值 2.通过该地址访问过的js文件排查到request,再通过断电发现m加密地方 3.找到对应的加密方…

JAVA保姆级教学(一)[安装及使用]

一.首先我们常用编写java的是idea和eclipse,在这里呢我们主要讲解的是eclipse,它的安装及配置比较复杂,小伙伴们耐心看完这篇文章,少迷路~ 二.首先,我们去官网自行下载eclipse和jdk,有的人刚接触java可能不会下载,那么…

常用服务和开放端口对照表

常用服务和开放端口对照表 代理服务器常用以下端口: (1). HTTP协议代理服务器常用端口号:80/8080/3128/8081/9080 (2). SOCKS代理协议服务器常用端口号:1080 (3). FTP&am…

常用端口号\协议\服务对照表

转载于:https://blog.51cto.com/networktech/291211

常用端口号与对应服务

1、端口号 在网络技术中,端口(Port)包括逻辑端口和物理端口两种类型。物理端口指的是物理存在的端口,如ADSL Modem、集线器、交换机、路由器上用于连接其他网络设备的接口,如RJ-45端口、SC端口等等。逻辑端口是指逻辑意…

HTTP,TCP,UDP常见端口对照表大全

HTTP,TCP,UDP常见端口对照表,下面罗列了包括在Linux 中的服务、守护进程、和程序所使用的最常见的通信端口小贴士:CtrlF 快速查找 Http端口号(点标题可收缩或展开) No1.最常用端口 端口号码/层名称注释1tcpmuxTCP端口服务多路复用5rje远程作…

mysql实现跨服务器查询数据

在日常的开发中经常进行跨数据库进行查询数据。 同服务器下跨数据库进行查询在表前加上数据库名就可以查询到数据。 mysql跨服务器进行查询提供了FEDERATED引擎进行映射表,然后进行查询。 mysql数据库federated引擎是关闭的,首先需要先启用该引擎。my…

SQL跨表查询

目录 前言 方案一:连接多个库,同步执行查询 优点 缺点 代码执行 方案二:在主数据库增加冗余表,通过定时更新,造成同库联表查询 优点 缺点 相似实现场景 方案三:(极度不建议&#xff09…

跨库查询和多表查询

介绍如何使用MySQL进行跨库查询和多表查询(几张表的信息纵向连接在一张表中) information_schema MySQL内部使用的数据库 information_schema 和 mysql information_schema库保存了当前使用的MySQL的所有数据库,表信息,将这些信息…

Mysql不同服务器跨库查询解决方案

项目场景: Mysql在不同服务器实现跨库查询,类似dblink。 解决方案: 在两台不同服务器,实现跨库查询,其实现原理类似一个虚拟映射,需要用到mysql的另一个存储引擎Federated,FEDERATED存储引擎访问在远程数据…

Mysql跨库跨表联表查询

Mysql跨库跨表联表查询 查询两个库中两个表中的关联数据,如下图中,查询数据库dept中表dept和数据库emp中的表emp中关联的数据 SQL语句格式 SELECT * FROM 数据库1.表1,数据库2.表2 where 条件; select * from emp.emp a,dept.dept b where a.…

两不同服务器上的mysql跨库查询

业务场景:关联不同数据库中的表的查询 比如说,要关联的表是:机器A上的数据库A中的表A && 机器B上的数据库B中的表B。 这种情况下,想执行“select A.id,B.id from A left join B on ~~~;“那是不可能的,但业务需…

MySQL实现跨库join查询

MySQL实现跨库join查询 一.同服务器的不同库 只需要在表名前加上db_name select* fromuserdb.user u join orderdb.order o onu.id o.user_id;二.不同服务器的不同库 查看配置 FEDERATED SHOW engines;如果是NO,需要改为YES.默认是NO 在my.ini文件中增加一行,…

mysql怎么跨库查询_在MySQL中怎样进行跨库查询?

在MySQL中跨库查询主要分为两种情况,一种是同服务的跨库查询;另一种是不同服务的跨库查询;它们进行跨库查询是不同的,下面就具体介绍这两种跨库查询。 一、同服务的跨库查询 同服务的跨库查询只需要在关联查询的时候带上数据名,SQL的写法是这…

MySQL不同数据库不同表连表查询(跨库连表查询)

前提:文章为解决同一个连接不同数据库的表进行关联查询,本文以left join做示例其他的按照同样方法自己测试! 首先拿到这个表,简称表A吧, 表A在A数据库 然后这个是表B 表B在B数据库 红线框的看不懂的去重新学一下数…

navicat跨库查询

利用navicat进行跨库查询(2019 年 6 月 4 日,由 Robert Gravelle 撰写转载) 随着主从(Master-Slave)拓扑和数据库分片等现代实践变得越来越普遍,数据库管理员(DBA)和开发人员比以往更…

(Mysql)跨表查询和跨库查询

新建测试数据库:create database test_cour; 选择数据库:use 数据库名; 查看数据表:show tables; 创建数据表里面的字段(列)名: create table 表名( //列名 字符格式 约束 //注意末尾加逗号&…

在MySQL中怎样进行跨库查询?

在MySQL中跨库查询主要分为两种情况,一种是同服务的跨库查询;另一种是不同服务的跨库查询;它们进行跨库查询是不同的,下面就具体介绍这两种跨库查询。 一、同服务的跨库查询 同服务的跨库查询只需要在关联查询的时候带上数据名&…

mysql中的跨库关联查询

业务场景:关联不同数据库中的表的查询 比如说,要关联的表是:机器A上的数据库A中的表A && 机器B上的数据库B中的表B。 这种情况下,想执行“select A.id,B.id from A left join B on ~~~;“那是不可能的,但业务…