PTT推薦

Re: [討論] 請大家聊聊 JavaScript的缺陷

看板Soft_Job標題Re: [討論] 請大家聊聊 JavaScript的缺陷作者
as30385438
(LCH)
時間推噓 8 推:8 噓:0 →:3

※ 引述《TonyQ (得理饒人)》之銘言:
: 是說應該要定義什麼是好什麼是爛,
: 我是覺得啦, 能解決問題叫好, 不能解決問題叫爛.
: 程式只是工具, 人才是決定 code 是不是垃圾的載體.

不太認同, 如果今天的task是計算1加到10000
從紙上開始 1 + 2 + 3...一直算到10000可以解決問題
用等差數列的公式也可以解決問題
寫段code直接寫個function讓function可以支援不同的min, max也同樣能解決問題

這些方法都能解決問題?難道他們都是好方法嗎?

回到程式語言, 我相信大部分人都覺得戰語言優劣很無聊
畢竟工程師都有自己偏好

但前端這塊就比較不一樣, 大部分人用JS不是因為喜歡或是適合
而是因為沒有別的選擇
前面在吵的web assembly目前來說生態系還差太遠
看起來它也是以補強而非取代JS為目的

為什麼近年TS開始紅起來
我認為不是像大大說的, 那是能力不足的人在用的
以同是動態語言的Python為例
typing模組不管是語言面和IDE的支援也都越來越完善
我待過的兩間公司也都規定新寫的code能加type hint就要加

不過Python雖是動態語言但卻是強型別, 跟JS還是有差就是了

在5人以上維護的專案中用了TS絕對對開發速度和維護性有顯著的幫助
光是在obj後面.一下就會跑出各種method和argument/return type
就不知道能避免多少低級錯誤和省下查文件翻code的時間了

所以說用TS會拖慢開發速度的人
我真的不知道他是在做什麼神奇的專案需要用到諸多JS的神奇特性
相關的webpack config也只要設定一次, 何樂而不為呢

當然你可以說, 只要平常規範足夠好, 大家團隊意識夠強
加上每個人記憶力超凡, 寫過的每個function是做什麼的都不會忘
每個人都是完美的JS programmer不會踩到一些不該踩的坑
那當然用JS也不會有太大問題

但我們都知道,
人 是一定會犯錯的

的確, TS不能解決所有問題, 但要把這鍋推給TS就有點詭異了
這個邏輯有點像:「反正用了也只是從30分到60分, TS真糞」

TS本來就是以盡量不破壞JS原有特性下改進JS的可讀性
拿any來說, 敝公司的tsconfig中是有設定nonImplicitAny
新寫的code中要用上any也必須給reviewer足夠好的理由
在prototype偷塞東西這種事情也是沒事不會做
除了一些很底層的模組, 例如支援mixin之類的
不要因一時貪圖方便造成後續難以維護

我認同大大說的, 的確沒有辦法控制整個世界照我們想要的規矩走
但這不是我們不能在力所能及的範圍內做到最好的藉口

--

※ PTT留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 58.114.218.170 (臺灣)
PTT 網址
※ 編輯: as30385438 (58.114.218.170 臺灣), 11/16/2020 13:09:47 ※ 編輯: as30385438 (58.114.218.170 臺灣), 11/16/2020 13:11:29 ※ 編輯: as30385438 (58.114.218.170 臺灣), 11/16/2020 13:15:25

alihue11/16 13:47推推,一些地雷在語言就應該設計好防呆掉,不是語言spec

alihue11/16 13:47寫爛了回來嗆開發者不夠熟語言

testPtt11/16 13:53其實很多語言寫爛了直接在後面版本叫你不要用舊的寫法

CoNsTaR11/16 13:57推,說實話,連自己寫的 function 的 type 是什麼都搞不

CoNsTaR11/16 13:57清楚的人才是真的能力不足

sharku11/16 15:21推這篇

LERICAL11/16 16:19

maik06011/16 20:28

viper970911/18 00:53推這篇

zxcasdjason111/18 01:43推言簡意賅

jack52911/18 08:36團隊開發用JS真的是災難