现在极其厌恶弱类型语言,弱类型就不适合中国的职场环境

67 天前
 willx12123

别的团队交接过来一个十几万行的 Python 项目,要重构成 Java ,我真的吐了,一点文档也没有。

Python 里面大量的访问各种 RPC 接口,关键是特别喜欢自己转换 rpc 返回的结构,还非要用字典去自定义结构!

现在好了,到处都是字典 + 字符串取值,这个字符串 key 还是尼玛自己定义的,和 idl 都对不上,得自己去代码里面到处翻找,看看到底是哪个接口返回的。

最离谱的是命名还会骗人,弱类型就算了,好歹命名漂亮点吧。"xxx_list" 是个字符串我真的服了,甚至就连 "user" 也能是个字符串……


现在国内的现状就是领导疯狂催,程序员疲于奔命,谁天天给你写文档,代码迭代几次连自己都不认得了,还搞弱类型,万一熟悉项目的人走了后面的人根本没办法看,都都读不懂。再加上英语水平有限,命名真的是一塌糊涂,更加重了理解问题。

12595 次点击
所在节点    程序员
119 条回复
awalkingman
67 天前
中国的职场环境。。。。
可惜我的 tag 容量放不下了
hez2010
67 天前
@yolee599 var 也不是通用类型。var 的类型是静态推导的,跟你直接写 int 和 string 没区别,编译的时候会被编译器自动替换成实际类型。
davehandong
67 天前
Java 不是也支持了 var 声明变量么,C/C++里现在也有 auto ,我是一直挺反感这个的.
一方面像 js 这种往 typescript 这方向走,另一方面本来是强类型的又非要引入弱类型的风格。
kenvix
67 天前
@DOLLOR #18 最麻烦的是没 type hint 文档还残废,真抓瞎
DOLLOR
67 天前
@yolee599
如果你说的 Java 的 var 和 C++的 auto ,它们都不是“通用类型”。
那只代表类型自动推导,开启 inlay hints ,或者把鼠标 hover 上去,就能看到真实的类型。
Biggoldfish
67 天前
加上 type annotation 并且 enable type checker 不就完了
deplives
67 天前
连动态类型和弱类型都分不清?
python 早就有了 hint 建议了解一下
[Python 里面也会经常在 if 里面直接放一个字典或者数组,`if dict` `if arr` 这样,这不算隐式转换吗]
你真的 了解一下啥叫 magic method ?
wangritian
67 天前
语言的约束作用始终有限,主要看开发人员水平,写 java 用 Map 一把梭不也受不了
mikewang
67 天前
@willx12123 #17 强弱应该是相对的,拿 if 举例,在 C 里面,我们也可以这样直接判断,C 是强类型。
struct st *foo = ... ;
if (foo) { ... }
villivateur
67 天前
有一说一,Python 是强类型语言,建议你自己点个“下沉”,不然太尴尬了,会被人笑的
yolee599
67 天前
@DOLLOR #25 但是这个功能需要编辑器支持才行,在网页上看到一段全是 var ,auto 的代码就要在脑子里推断很久,当然也可以拷贝下来粘贴到编辑器里,但麻烦就是了
vituralfuture
67 天前
python 是强类型,动态类型的语言
jlkm2010
67 天前
动态一时爽,重构火葬场
yb2313
67 天前
喜欢我**args 吗, 然后再通过各种不可名状的 magic 方法获取到一个值
kmyzzy
67 天前
你说的是静态类型 vs 动态类型,不是强类型 vs 弱类型。
CodeCodeStudy
67 天前
js 的坑更多,就算用 ts 也没办法完全规避,比如:

一个 number ,有可能是 NaN ,需要用 Number.isNaN 来判断

一个 Date 对象,比如变量名叫 d ,有可能是无效的,通过 d.toString() === 'Invalid Date' 或者 Number.isNaN(d.getTime())

这两个坑无法使用 ts 检测出来,因为 NaN 的数据类型也是一个 number ,Invalid Date 的数据类型也是 Date
whenov
67 天前
你转到 Java 时也转成字典不就好了
yanqiyu
67 天前
道理我都懂,但是 python 是典型的强类型语言。C++反倒是弱类型语言。你指的是动态类型和静态类型的区别
duluosheng
67 天前
js 就不如 ts 好阅读,强类型真是更适合大工程
Rehtt
67 天前
前段时间重构 php 也是同感

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

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

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

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

© 2021 V2EX