跳转到内容
View in the app

A better way to browse. Learn more.

彼岸论坛

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
欢迎抵达彼岸 彼岸花开 此处谁在 -彼岸论坛

[程序员] 与其说动态类型语言代码不易维护, 不如说带有副作用功能逻辑混在一起的代码不易维护

发表于
从帖子 https://v2ex.com/t/1056990
吐槽说弱类型代码不易维护启发。

python 的 list-dict ,php 、js 的 array ,都能往里面塞各种类型任意对象。这时候就是一种功能逻辑实现混淆副作用。
于是,有经验的动态类型语言程序员,都会有“防御型”编程的习惯,比如在编写代码之前先检查校验一遍传入数据的类型是否符合接下来要编写代码的数据类型要求。

这是很容易解决的,真正麻烦的是遇到功能实现混淆在一起时硬耦合的情况,就像一个有聊天与截图功能硬耦合的软件,当我单纯只想要截图功能时还是不得不附带安装这个聊天功能一样恶心。比如处理订单导出需要遍历订单数据,处理订单不同用户但同一小区地址合并数据的逻辑也需要遍历订单数据,于是程序员决定在处理订单导出的遍历里也处理订单小区地址合并数据,遇到特殊情况特殊处理,然后他就写了一堆特殊处理的代码,这就是让人恶心的功能实现混淆达成了硬耦合。

强类型静态类型都会有这些问题,还很常见,解决办法没有银弹,只能是 code review ,与经常性重构,才能保证代码不会腐败。

如果说接过的多手代码,从不重构,已经完全腐败,无法重构,那确实除了屎上雕花,祈祷不出 bug ,没有别的办法。

Featured Replies

No posts to show

创建帐户或登录来提出意见

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.