新工作安排我维护旧 Python 项目,但是本身对 Python 抵触,咋办?

308 天前
 IamBack
原因:
1. 需要对 python 要从 0 学习,我目前更愿意用我熟悉的语言,比如 java/golang 。
2. 以前临时小项目用 python ,吃过 python 的苦, 主要是如下苦:
2.1 相对于 java/golang 强类型语言。python 是弱类型,且函数是动态的。具体指:IDE 提示的方法/函数,在运行期间才知道存不存在,别人代码能用这个函数,我的代码用不了。IDE 编写代码期间看不出来。 (大家有没有好办法解决?)
2.2 各种依赖库/环境:冲突,下不下来,下载不完全 等等 (不完全是网络问题,找隔壁主用 python 的测试同学也没搞定)


求助:
1. 如何跟老板沟通? 若不得不接,如何委婉的告诉老板自己的倾向性,这次接后,下次不要再给我类似项目了。
2. 如何心理建设? 如何克服之前遇到的苦
2347 次点击
所在节点    问与答
36 条回复
so1n
308 天前
首先 Python 不是弱类型,其次你可以尝试用你喜欢的语言去重构
lululau
308 天前
换语言级别的技术栈属于调岗了,你说不接受调岗不就完了;我也非常不喜欢 Python ,与 Ruby 相比毫无美感可言,我宁可用 Java 也不想用 Python
dcsuibian
308 天前
mark ,要换我我也挺难受。
不过#1 说的没错,python 确实是强类型,不过是动态类型。像 javascript 那种莫名其妙地隐式转换的才叫弱类型。
mineralsalt
307 天前
用 python 捏着鼻子写写脚本就算了, 用这玩意开发项目打死我都不干, 最烦的就是缩进这种写法
lixinrui000
307 天前
作为曾经的 C++语法爱好者,我觉得楼主爱上 Python 可能和我一样只差一个 mypy ,用 mypy annotate 类型后,我再也没有遇到过 Python 运行时类型错误。...甚至可以直接静态编译 Python 代码
lixinrui000
307 天前
库的问题的话,我写了一个生成检查和修改 requirements.txt 的小工具,解决 pip freeze 导出扁平化、数量过多、不能处理跨平台的问题来处理: https://gist.github.com/hongwen000/a8d682b6d0be20af1f0c98087f2117d3
murmur
307 天前
python 我认为还是按弱类型算,因为他定义变量可以推导出类型,但是函数声明里没类型,所以还是按弱

扯远了,钱给够啥都好说,新人刚开始都是帮别人擦屁股的
Eiden
307 天前
六字真言
zmQAQ
307 天前
离职
IamBack
307 天前
@so1n 应该换不了语言重构, 其依赖的基架平台是 python 写的
xiyou007
307 天前
py 5 年了,也写过 Java 和 Go 。 我的感受是 py 挺自由了,但就是太自由了。而 Go 和 Java 再怎么写 也不会想 py 那么能写烂。

另外 op 可以考虑外包给我 (嘿嘿
coolair
307 天前
你可以外包给我,然后你摸鱼。
CodeCodeStudy
307 天前
领导安排做啥就做啥,多学一门语言也不是什么坏事
Martin123123
307 天前
1. 自身没有这方便经验,帮不到你不好意思
2. 得看项目内容还有具体 python 版本,以及项目运行的方式
2.1 python 是强类型语言,不管是从其他语言转到 python 或本身就开发 python 的,都建议标注变量类型,比如
def func(data: str) -> bool:
return True
即便是泛型也建议标注好
2.2 建议使用现代化一些的依赖管理工具,比如 poetry 之类的,不过这个主要还是看项目,大部分情况下 requirements 中的版本除了明确版本的包比如使用 django 的场景,其他并不需要指定版本,让 pip 自己选择依赖就好

如果可以的话,python 相关的项目还是建议通过 docker 的方式去开发、部署,毕竟 linux 、mac 下集成了 python ,对于新手而言,管理不同的 python 版本踩坑的可能性很高
Martin123123
307 天前
对了,补充一下,如果 python 版本较为落后,可以通过 typing 的方式去补充「 python 是动态类型,大部分情况下如果没有明确标注类型,对于 IDE 或自己开发都会带来灾难」

文档:
https://docs.python.org/zh-cn/3.9/library/typing.html
BingoXuan
307 天前
用 typing hint+stub ,就能让 ide 提示犹如 golang interface 那般。

如果 ide 没办法理解代码作出提示,说明代码真的写得太烂了。用 go 或 java 是因为语法规则和编译器阻挡了一部分问题
paopjian
307 天前
面向工资编程
X21541
307 天前
把这件事看作学习新语言,又有工资拿的机会。抵触 python ,这个想法就是一种内耗。
clf
307 天前
你只要接了,后面都会找你。我司也有类似情况,目前是小部分的修改可以,大块的东西不如考虑迁移。
xiaoxinxiaobai
307 天前
接外包,价格好商量

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/954428

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX