Re: [討論] 請大家聊聊 JavaScript的缺陷
※ 引述《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.cc), 來自: 58.114.218.170 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1605503287.A.B73.html
※ 編輯: 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
推
11/16 13:47,
3年前
, 1F
11/16 13:47, 1F
→
11/16 13:47,
3年前
, 2F
11/16 13:47, 2F
→
11/16 13:53,
3年前
, 3F
11/16 13:53, 3F
推
11/16 13:57,
3年前
, 4F
11/16 13:57, 4F
→
11/16 13:57,
3年前
, 5F
11/16 13:57, 5F
推
11/16 15:21,
3年前
, 6F
11/16 15:21, 6F
推
11/16 16:19,
3年前
, 7F
11/16 16:19, 7F
推
11/16 20:28,
3年前
, 8F
11/16 20:28, 8F
推
11/18 00:53,
3年前
, 9F
11/18 00:53, 9F
推
11/18 01:43,
3年前
, 10F
11/18 01:43, 10F
推
11/18 08:36,
3年前
, 11F
11/18 08:36, 11F
討論串 (同標題文章)