精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

程序員為什么一定要去造幾個輪子

開發 前端
我覺得作為程序員,在能力范圍之內,一定要嘗試去造幾個輪子。哪怕剛開始因為能力不足造輪子困難,或者造出來的東西不好用。

最近在教一名學生封裝 2D 可視化渲染引擎的時候,無意間了解到了他一個的想法:

我們封裝的這個東西,別人已經有非常成熟的實現了,為什么還要自己重新封裝一遍?如果面試官問這個問題,我都不知道應該怎么回答。

通過進一步聊天我的感受是,他覺得重復造輪子在我們行業里其實是一件不那么光彩的事情,他一直以來聽到的都是不要重復造輪子。

很顯然,確實在我們行業有很多人會旗幟鮮明的反對重復造輪子,這句話影響也是非常大的,我們會發現很多人在面對新需求的時候,常常腦袋里的第一反應就是:有沒有什么庫能直接幫我搞定這個需求。

但是我的觀點卻恰好剛剛相反,我覺得作為程序員,在能力范圍之內,一定要嘗試去造幾個輪子。哪怕剛開始因為能力不足造輪子困難,或者造出來的東西不好用。

說一下我的理由。

一、找輪子花費的時間也不少

其實我們會花大量的時間在找輪子上。

這件事情我比較有體會,因為我以前經常干這個事情。這里面最痛苦的事情是當你找到一個輪子之后,到底好用不好用其實你自己也不知道,然后用了一半之后發現不完全是自己想要的,有的功能實現不了。

然后你就只能重新找。

有可能要反復幾次之后才能找到完全符合當前需求的東西。但是也有可能找不到,最后只能妥協需求,實現一個大概差不多的東西。

雖然最終也交差了,但畢竟給同事留下了一個不好的形象。甚至會直接影響自己的升職加薪和年終績效。

二、別人造的輪子并不完全符合心意

最近有幸能有機會參與到 openInula 技術方案的探討會議中去,在幾位華為、騰訊大佬的討論過程中我也學習到了很多東西。

在設計一個東西的過程中,我能很明顯感受到的一個現象就是,每個人都有自己的技術偏好。哪怕是在設計一個小小的語法上,大家也會有不一樣的喜好。

就拿我自己來說,我并不喜歡 React 語法里 useState 用數組來解構,每次看到幾個的數組解構堆在一起我就覺得渾身不舒服。

const [loading, setLoading] = useState(true)
const [param, setParam] = useState('')
const [list, setList] = useState([])
const [error, setError] = useState('')

所以我在使用 React 的過程中,做得最多的事情就是想辦法把這些 state 藏起來,用自定義 hook 重新封裝,并一定要改成對象解構的語法來使用。

const {
  loading, 
  setParam,
  list = [],
  error
} = useFetch(searchApi)

又比如有的人覺得 solid.js 非常驚艷,是他理想中的樣子。但是我還是覺得 solid.js 的語法比 React 更讓我無法接受。

const [count, setCount] = createSignal(0);

一方面是因為沿用了 React 的數組解構,另外一方面是因為返回的 count,他不是一個值,而是一個獲取值的方法。

因此我們使用的時候必須這樣用。

<div>count()</div>

但同時,他又可以是一個值,例如我們這樣用的時候。

setCount(count => count + 1)

這違背了我一直嚴格遵守的語義化和單一性,所以我主觀上不接受這樣的語法設計。

包括 solid.js 在 props 的處理上,為了確保修改之后的 props 具備響應性,不得不新增了兩個語法,mergeProps splitProps,這也是我不愿意接受的語法設計。

這種偏好其實非常主觀,但是確實是每個人都會或多或少有這樣的怪癖,會覺得別人的語法寫起來不舒服。

三、不完全符合需求

有的時候一個優秀的輪子你對他贊不絕口,然后用了半年之后,突然來了個需求,它滿足不了。賊難受。

于是很多程序員這個時候又不知道咋跟產品經理溝通,他會犯一個經典的職場錯誤:直截了當的告訴產品這個事情他做不了,甚至有的人會更夸張,還會解釋說這個需求我用的組件庫不支持所以我做不了。

這種溝通方式最大的問題,就是在跟同事暴露你技術能力不行。你可以用別的任何理由去拒絕這個需求,但理由一定不能是我實現不了這個需求。

如果一年中,你有 2 次出現這種情況,你就會發現你的年終績效會受到很大的影響。一年兩次這樣的頻率其實非常低,真實情況可能遠不止兩次。但是即使只是兩次,別人也會覺得你能力有問題。

所以別人的輪子往往會限制我們,哪怕他滿足了你 99% 的需求,如果突然來了一個需求滿足不了,就會讓你很難受,直接面臨職場危機。

四、遇到 BUG 難以修復

有很多輪子是不得不用別人的。然后就經常遇到的一個問題就是,如果在特定場景之下遇到一個 bug,輪子作者也不會馬上幫你把這個 bug 給修復了。

你提的 issue 可能輪子作者隔了半年才反應過來可能會修復你這個問題。

有的時候修復這個 bug 也非常不容易。因為你特定場景的 bug,作者要復現可能比較困難,甚至會因為溝通問題,比如你提供的信息、版本、環境不充分,而導致作者根本就復現不了,導致最終也改不了你這個問題。

這個時候是最難受的。

所以我以前經常 fork 別人的輪子,然后去把他的源碼給改了,改個名字重新上傳到 npm 上,當成自己的輪子用。這樣雖然勉強解決了問題,但其實也并不是一個好的方案,因為后續的版本就開始完全分道揚鑣了,后續所有的改動都要你自己動手操作了。慢慢的也走上了造輪子的道路。

五、場景不匹配

有的時候我們會發現別人的輪子跟我想要的場景不太匹配。

例如我需要一個圖表庫,我希望他能在網頁上跑,又希望他能在小程序上跑,還希望在 React Native 上也能跑。這樣對我來說,項目的維護成本是最低的。

實際上如果是我自己寫的輪子的話,我要做的兼容成本非常低。但是這種特定的需求可能別的輪子就不會專門幫你做這個事情。

于是我們就不得不在不同的平臺使用不同的輪子。難受的是,如果遇到定制化 UI,有的輪子支持得就不那么好,就會出現一個詭異的現象,明明能在 web 上做得非常好的功能,在 RN 上就搞得缺點意思,給人一種很古怪的感覺。

六、自己造的輪子,可以更輕量

成熟的開源項目往往會考慮更多的因素,因此你常常會發現許多開源項目的源碼讀起來非常痛苦,各種條件判斷特別多。原因就是成熟的開源項目他需要兼顧更多的場景和需求。

但是在你的項目中,有可能不需要考慮那么多。

這樣我們自己造的輪子其實是可以更輕量,更簡單。例如我自己封裝的一個狀態管理器 mozz,只有 10 多行代碼,在特定的場景下結合我自己的項目架構思路,用了 5 年了也沒出什么問題,非常舒適。

所以我一直以來,對別的 React 生態中的狀態管理并不是很關注,因為他們內部到底是怎么實現的,具體的優缺點是什么,是否是我的項目所必要的我大概心里也有數。

在我公眾號文章里,前面介紹了幾種封裝狀態管理器的思路「半成品」,其實就覆蓋了好幾種狀態管理的實現原理,例如基于 reducer 和 useSyncExternalStore 的 zustand,基于 Atom 的 Jotai,只是在最終實現上,語法設計上會有所不同。

七、提高技術競爭力

最最主要的原因是,造輪子能提高我們的個人技術能力。能造輪子的人,技術能力肯定是要比不能造輪子的人更強。

實際上很多人會覺得造輪子可能比較浪費時間。其實恰恰相反,這東西是可以不斷累積的。工作時間長了之后,你就會發現你需要親自造的輪子會越來越少。

然后到了后期,很多時候都是出了一個新框架,新平臺,你需要自己動手去做遷移和重寫。就比如這次鴻蒙開發起來了之后,我們的交流群里面就有幾個大佬在著手把以前自己寫的輪子重新在 arkUI 上寫一篇,花的時間也不是很多。

當然前期受限于技術能力和工作時間,造輪子會比較困難,甚至有的人會覺得無從下手。

那么我們有幾個方式可以走,首先就是先從簡單的輪子開始,例如在我職業生涯的早期,我自己寫了一個專門操作 cookie 的庫。

或者搞一個更簡單的,寫一個專門用來創建 css3 動畫的 JS 庫。

然后慢慢的逐漸深入,寫一個拖拽庫,或者寫一個動畫庫,寫一個輪播圖庫。

這些都是比較簡單就能做到,不需要太高昂的學習成本。只是很多人內心深處覺得這些事情根本沒必要,完全是在浪費時間而已。

打個小廣告:你也可以直接付費找我學習從零開始基于 canvas 打造一個 2D 可視化渲染引擎,費用 2000 元,助你快速提高技術能力,在面試時手握利器,不用為項目亮點而擔心。

八、直接和薪資,績效掛鉤

有人不知道年終總結怎么寫,自己一年下來都在寫頁面,好像對團隊也沒什么特別的貢獻,想漲工資又不好意思找老板提。

想要晉升也不知道用什么去談。

我其實都沒怎么遇到過這種煩惱,因為每年都有產出和貢獻。這就是經常自己造輪子的一個非常大的好處。

因為實際上團隊內部有自己的技術沉淀這件事情本身就是非常重要的。因此你總會發現一些好的團隊總是非常熱衷于自己造輪子,然后你還會發現很多人會嘲諷這種現象。

對于這種嘲諷我們完全不需要理會,一方面是他們并不理解團隊技術沉淀的重要性,別人的技術終究是別人的,不管是從團隊角度或者從個人角度出發,盡可能少的受限于他人,本身就是我們應該追求的目標之一。

另外一方面是因為你拿到手上的是真金白銀,那些嘲諷的人又不會給你發錢。

九、總結

總之在能力范圍之內,嘗試自己造輪子是我比較推崇的觀點。他的好處我有切身的體會。你也有機會認識更多的大佬,能更輕松的找到工作等等。

但是一定要操作得當,不要因為造輪子而導致任務總是 delay,一個好的方式就是把造輪子的事情上升到公司層面的需求,而不是自己私下悄悄搞,這樣的話就不用擔心任務 delay 這個事情了,你也有充足的時間和正當的理由來做這個事情。

當然這樣做也有壞處,就是以后你造的輪子就是屬于公司了,所以我當年這樣做雖然可以大量利用上班時間來通過造輪子提高自己的技術能力,但也導致了很多東西不能開源出來,屬于是有利有弊吧,自己權衡就好。

責任編輯:姜華 來源: 這波能反殺
相關推薦

2018-08-24 09:02:26

2011-05-30 14:50:56

程序員

2015-08-06 10:14:15

造輪子facebook

2018-05-28 09:05:17

程序員北京戶口加班

2019-02-20 11:14:08

程序員技能溝通

2015-05-27 09:45:59

程序員

2021-03-05 11:02:14

iOS 14.5蘋果更新

2018-08-15 13:25:18

Java開源工具

2011-05-10 15:51:34

SEO

2022-04-24 09:54:24

ProxyReflect前端

2022-01-10 13:06:13

微服務API網關

2018-08-31 15:44:39

程序員技能開發者

2024-11-13 00:58:28

2024-02-22 14:22:17

數字化轉型企業架構

2019-06-25 10:02:44

程序員經驗編程

2017-08-17 11:11:41

深度學習弱智能機器學習

2024-10-10 05:00:00

2019-01-29 11:02:30

消息中間件Java互聯網

2022-05-26 09:24:09

volatile懶漢模式
點贊
收藏

51CTO技術棧公眾號

视频二区欧美| 1区2区3区在线视频| 久久资源在线| 久久九九亚洲综合| 日本不卡视频一区| 最新欧美色图| 亚洲欧洲性图库| 成人欧美一区二区| 无码免费一区二区三区| 亚洲精品国产成人影院| 日韩av一区在线| 孩娇小videos精品| 超碰在线cao| 国产精品卡一卡二卡三| 国产精品三区在线| 在线观看毛片网站| 中文在线不卡| 欧美成人午夜激情| 久久午夜福利电影| 草莓视频一区二区三区| 欧美日韩高清影院| 波多野结衣家庭教师在线播放| av在线资源站| 91热门视频在线观看| 亚洲sss综合天堂久久| 中文字幕在线欧美| 精品福利av| 久久精品电影一区二区| 国产欧美在线观看| 久久国产精品高清| 中文字幕av影院| 午夜精品久久99蜜桃的功能介绍| 亚洲情综合五月天| 国产人妻精品午夜福利免费| 99精品在免费线偷拍| 欧美日韩中文字幕| 999一区二区三区| 午夜在线视频播放| 国产人成一区二区三区影院| 精品免费一区二区三区蜜桃| 不卡的日韩av| 国内精品写真在线观看| 国产精品久久久久久久一区探花| 国内免费精品视频| 欧美日韩在线大尺度| 日韩最新在线视频| 呻吟揉丰满对白91乃国产区| 一道本一区二区三区| 亚洲激情第一页| 国产精品久久久久野外| 日韩亚洲国产免费| 欧美日韩日日夜夜| 亚洲污视频在线观看| 综合在线影院| 在线视频欧美精品| 国产成人综合一区| 欧美三区四区| 色老汉av一区二区三区| 精品国产成人av在线免| 345成人影院| 一本久道久久综合中文字幕| 国产a级一级片| 26uuu亚洲电影| 在线观看免费一区| 精品亚洲一区二区三区四区| 草民电影神马电影一区二区| 欧美日韩免费视频| 亚洲精品国产一区二区三区| 五月天色综合| 欧美一区二区三区婷婷月色 | 日韩亚洲在线| 欧美亚洲成人免费| 无码视频在线观看| 免费成人在线网站| 91中文在线观看| www香蕉视频| 91在线精品一区二区三区| 久久国产精品 国产精品| 国产一二三在线观看| 欧美激情综合五月色丁香| 久久免费视频2| 尤物yw193can在线观看| 激情懂色av一区av二区av| 超碰网在线观看| 国产成人午夜性a一级毛片| 欧美一二三区精品| 亚洲天堂网一区二区| 国产欧美一区| 欧美激情高清视频| 亚洲熟女综合色一区二区三区| 蜜臀久久99精品久久久久久9| 91在线色戒在线| 日本人妻熟妇久久久久久| 久久久亚洲欧洲日产国码αv| 一区高清视频| 激情图片在线观看高清国产| 色综合色综合色综合色综合色综合 | 在线一区二区三区四区| 天堂av.com| 国内精品国产成人国产三级粉色 | xxxx日本免费| 亚洲一区二区| 欧美专区在线视频| 国产男女无套免费网站| 99精品一区二区| 亚洲免费在线精品一区| 国产精品原创| 91精品国产欧美一区二区成人| 无码任你躁久久久久久老妇| 久久av网址| 久久久久久久999| 中文字幕福利视频| 99久久精品免费精品国产| 亚洲激情一区二区三区| gogo高清在线播放免费| 欧美日韩国产中文| 国产ts在线播放| 韩日精品在线| 国产在线视频2019最新视频| 午夜一区在线观看| 亚洲欧美激情在线| 999精品视频在线| 精品亚洲自拍| 欧美大片va欧美在线播放| 久久精品偷拍视频| 91美女精品福利| 97在线国产视频| 精品国产亚洲一区二区三区在线| 国产一区二区三区在线播放免费观看 | 日本美女一级视频| 亚洲精品国产视频| 97人人爽人人| 久久成人综合| 国产精品日韩欧美| 精品亚洲成a人片在线观看| 亚洲福利电影网| 91福利视频免费观看| 国产精品久久观看| 国产精选久久久久久| 精品av中文字幕在线毛片| 亚洲成人自拍偷拍| 日批视频免费看| 欧美日韩午夜| 99视频在线播放| 手机电影在线观看| 日韩欧美一级在线播放| 亚洲波多野结衣| 国产在线精品免费| 伊甸园精品99久久久久久| 激情久久99| www亚洲欧美| 亚洲图片欧美在线| 国产精品久久久久天堂| 亚洲污视频在线观看| 日韩精品网站| 国产精品专区一| 欧美黄色激情| 欧美一区二区三区系列电影| 成人免费毛片东京热| 国产黄人亚洲片| 成人av在线不卡| 欧美激情影院| 欧美又大又硬又粗bbbbb| 日韩在线免费播放| 在线观看日韩电影| 人妻无码一区二区三区免费| 精品一区二区在线视频| 亚洲啊啊啊啊啊| 好吊妞国产欧美日韩免费观看网站 | 激情视频一区二区| 综合另类专区| 中文字幕亚洲综合| 精品欧美在线观看| 精品久久久久久中文字幕一区奶水| www.久久国产| 免费成人在线观看| japanese在线播放| 欧美久久精品| 国产精品三级美女白浆呻吟| 免费在线看a| 精品少妇一区二区三区免费观看| 国产成人亚洲欧洲在线| 国产欧美一二三区| a级大片免费看| 日韩午夜在线电影| 婷婷久久五月天| www国产精品| 青青在线视频一区二区三区| 欧美性猛交xxx乱大交3蜜桃| 日韩你懂的在线播放| 精品国产一区二区三区四| 国产精品福利影院| 妖精视频一区二区| 免费在线观看成人| 成年人深夜视频| 亚洲婷婷丁香| 亚洲最大福利网| 欧美黄色网页| 九九视频直播综合网| 毛片在线能看| 日韩视频永久免费| 99久热在线精品996热是什么| 一色桃子久久精品亚洲| 无码人妻精品一区二区三区温州| 麻豆成人av在线| 91好吊色国产欧美日韩在线| 欧美黄色大片在线观看| 国产日韩一区欧美| 欧洲亚洲精品| 欧美壮男野外gaytube| 伊人精品影院| 在线a欧美视频| 蜜桃av噜噜一区二区三区麻豆| 欧美日韩专区在线| 国产视频91在线| 亚洲精选视频免费看| 精品人妻一区二区三区蜜桃视频| 粉嫩13p一区二区三区| 国产精品一区二区小说| 午夜一区二区三区不卡视频| 97免费视频观看| 国产精品成久久久久| 日韩欧美电影一区二区| 全球av集中精品导航福利| 亚洲综合一区二区不卡| 成人一区视频| 国产成人a亚洲精品| 波多野结依一区| 色综合久久88色综合天天看泰| 午夜激情视频在线观看| 亚洲欧洲在线观看| 亚洲色图狠狠干| 亚洲精品国精品久久99热| 黄色小视频免费观看| 日韩精品一区二区三区中文不卡 | 亚洲国产精品久久久久久| 国产欧美日韩综合精品一区二区三区| 欧美色中文字幕| 亚洲视频 欧美视频| 精品久久久中文| 一级片中文字幕| 婷婷国产v国产偷v亚洲高清| 日韩乱码人妻无码中文字幕| 亚洲伊人色欲综合网| 欧美人与禽zozzo禽性配| 亚洲男人天堂av| 91麻豆免费视频网站| 亚洲免费在线观看视频| 婷婷激情四射网| 亚洲精品va在线观看| 久久黄色免费视频| 亚洲成年人影院| 毛片毛片女人毛片毛片| 欧美日韩一区免费| 狠狠人妻久久久久久综合| 色哟哟在线观看一区二区三区| 国产成人无码av| 欧美三级中文字幕| 亚洲特级黄色片| 日韩视频免费观看高清在线视频| 99国产精品99| 欧美va天堂va视频va在线| 国产自产一区二区| 亚洲精品美女网站| 国产女主播在线直播| 中文字幕视频在线免费欧美日韩综合在线看 | 久久久久久香蕉| 免费成人av在线播放| 成人黄色一级大片| 国产精品小仙女| 日韩成人av一区二区| 久久久久国产成人精品亚洲午夜| 久久精品视频18| 中文字幕亚洲一区二区va在线| 69av.com| 日韩欧美国产激情| 97超碰国产在线| 亚洲成人av资源网| 韩国三级在线观看久| 久久久精品影院| 极品在线视频| 国产精品自拍小视频| 99ri日韩精品视频| 欧美精品七区| 91日韩在线| 一区二区传媒有限公司| 蜜臀va亚洲va欧美va天堂| 国产伦理在线观看| 国产无一区二区| 九九热精品免费视频| 欧洲亚洲精品在线| 99精品视频免费看| 亚洲欧美日韩直播| 综合久久2019| 国产精品久久久久久久久久久新郎| 亚洲图片小说区| 欧美日韩亚洲一区二区三区在线观看| 色777狠狠狠综合伊人| 欧美在线一区视频| 精品一区二区av| 国产又爽又黄无码无遮挡在线观看| 日韩毛片一二三区| 九九精品免费视频| 精品区一区二区| 免费在线看黄色| 国产精品爱啪在线线免费观看| 日韩影片在线观看| 亚州欧美一区三区三区在线| 91久久综合| 四虎国产精品免费| 国产精品久久久久久一区二区三区| 五月天婷婷网站| 5月丁香婷婷综合| 极品美乳网红视频免费在线观看 | 国产91精品精华液一区二区三区| 中文字幕伦理片| 欧美视频在线免费| 不卡视频在线播放| 久久久91精品国产一区不卡| 日韩精品影片| 精品福利影视| 国产一在线精品一区在线观看| xxww在线观看| 国产日韩欧美亚洲| 天天操夜夜操视频| 亚洲电影天堂av| 少女频道在线观看免费播放电视剧| 国产精品日韩在线播放| 任你弄精品视频免费观看| 国产爆乳无码一区二区麻豆| 国精产品一区一区三区mba视频| 538精品视频| 在线视频综合导航| 暖暖视频在线免费观看| 97视频免费在线看| 激情亚洲另类图片区小说区| a级黄色小视频| 成人中文字幕在线| 欧美精品乱码视频一二专区| 日韩欧美亚洲另类制服综合在线 | 激情婷婷综合| 欧美极品欧美精品欧美图片| 不卡高清视频专区| 国产在线观看你懂的| 精品乱码亚洲一区二区不卡| 日韩另类在线| 国产伦精品一区二区三区四区视频 | 欧美亚洲另类色图| 91麻豆福利精品推荐| 日韩精品一区二区亚洲av| 日韩精品欧美国产精品忘忧草| 天堂√中文最新版在线| 欧洲一区二区在线| 天堂成人免费av电影一区| 亚洲а∨天堂久久精品2021| 91福利国产精品| av资源网在线观看| 亚洲va电影大全| 国产专区一区| 黄色国产在线观看| 色综合久久88色综合天天6| 经典三级在线| 国产精品日韩在线观看| 一区二区三区午夜视频| 日本黄色www| 精品久久久视频| 国产高清视频免费最新在线| 国产精品视频资源| 一区二区三区网站 | 国产喷水吹潮视频www| 欧美精品videosex性欧美| 日本韩国欧美超级黄在线观看| 99免费视频观看| 亚洲欧美国产毛片在线| 六月婷婷综合网| 日韩美女主播视频| 亚洲精品99| 亚洲av无码一区二区二三区| 欧美色精品在线视频| av电影免费在线观看| 精品欧美一区二区精品久久| 日韩电影在线看| 九九热国产在线| 亚洲午夜未删减在线观看| 欧美久久亚洲| 97视频在线免费播放| 亚洲欧洲在线观看av| 亚洲人午夜射精精品日韩| 国产精品一区二区三区久久久| 欧美午夜一区二区福利视频| 中文字字幕码一二三区| 日韩三级视频在线观看| 欧亚av在线| 台湾无码一区二区| 国产亚洲综合性久久久影院| www.天堂av.com| 国产成人免费av电影| 黄色成人精品网站| 男女全黄做爰文章| 亚洲精品日韩久久久|