精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
“我不懂的,總有人懂”,軟件開發行業已經開始扭曲變形
userphoto

2023.11.07 江蘇

關注
InfoQ
2023-11-3 16:05InfoQ官方賬號 優質科技領域創作者

作者 | unixsheikh

譯者 | 核子可樂

策劃 | 李冬梅

如今,一批所謂的專家只知道無腦上馬那些炒作工具,但對其更深層次的運作方式卻一無所知。這是個大問題,甚至正在毀掉我們的未來發展空間。

方向盤就是個抽象概念,卻能幫助我們輕松駕馭車輛。動力轉向又是另一個抽象層次,用于進一步改善駕控體驗。所以抽象本身并沒有錯,只是在丹麥流傳著這樣一句諺語:

“無論太少還是太多,都會毀掉一切”。

如果抽象過度泛濫,那么如果有一天再沒人理解其底層實現邏輯,我們又該如何應對呢?

自動化和信息化讓程序員們變懶了

科技行業的一切其實都是以利潤為核心進行驅動,人們對其他任何事情都沒有興趣。所以廠商必須要盡快發布新的產品或者服務,也就必須采取更多的抽象和自動化元素、努力壓縮人手,對于整個系統底層的理解自然愈發淺薄。

如今,早就不存在什么程序員和系統管理員了,取而代之的是 DevOps 甚至是 DevSecOps。行業正努力把每項任務都塞進同一個職能角色的日常工作當中,就是說技術人員需要獨力完成開發(Dev)、安全(Sec)和運營(Ops),即整個系統管理流程。但由于沒有哪個人敢自稱真正的通才,所以我們只能匆忙上馬自動化方案,在節約資金的同時避免不同技術部門間的成員在復雜的交互中迷失方向。于是乎,現代技術人員被教導只使用特定的工具,而對其底層實現知之甚少。

所以一方面技術正變得越來越難以理解,另一方面我們的現代生活正越來越多地依賴于這些技術。那么,當科技行業的理解水平不斷下滑,大多數人甚至根本不知道該如何修復自己手頭的工具時,會引發怎樣的后果?

換言之,人們已經習慣了高度抽象的狀態,并認為這才是正確的方式。他們也很樂意添加更多抽象來加劇這種混亂。

也許會有傲慢的開發者嘲諷道:既然這樣,那咱們直接用回匯編語言得了!

毫無疑問,我們是需要抽象的,但每一個層次的抽象都有相應的代價。而且諷刺的是,出于利潤追求抽象最終可能引發巨大的收益損失。

現在,大多數“安全人員”對于安全知之甚少,只曉得如何使用某種預制的滲透測試工具。滲透測試工具的 Web GUI 板上顯示了一大堆綠燈,就代表系統運行良好。但也許某位心存惡意的技術大牛早就入侵了該系統,并不斷把有價值數據賣到暗網上去。整個過程看似毫無異常,也許會持續數年而無人發現,畢竟 GUI 儀表板說沒問題的嘛。

過度依賴抽象,埋得不深的真相永遠不會有人發現

我曾為一家公司推薦過第三方開發伙伴,那邊的開發人員知道怎么使用“現代框架”把網站和 API 組合起來,但對框架自身的編碼了解不多,對安全性更是一無所知。一旦出現問題,沒人能判斷到底發生了什么。于是在遇到問題并掙扎了幾個月后,他們最終放棄并選擇對外求助。

其實只要看看系統的真實運行情況,就能知道肯定是出了問題。我復制了所有內容來進行離線檢查,之后花了一個晚上直接查看系統文件中的各個代碼行,并把公司主機上運行的文件跟原始框架文件進行了簡單比較。

其實我并不是建議大家手動檢查所有內容,但保持這種手動檢查習慣能讓我們學到很多東西。真相往往埋得并不深,只要有點耐心就肯定可以找到。當然,這也要求我們對技術原理有基本的了解。

長話短說,我最終發現他們已經遭到黑客入侵,其系統被用作某種色情內容的后端分發數據庫。但性能問題并非源自黑客攻擊,而是由框架本身所引發,因為該框架速度極慢。另外,這次黑客攻擊也是高度離散,要不是我決定“四下打探”并認真查看了文件和代碼,很可能永遠發現不了。

寫給技術人們的建議:別跟風、保持好奇、不斷學習

  • 別總跟著炒作話題或熱門趨勢跑。
  • 保持好奇心。不要單純學習工具,更要了解其底層技術是如何起效的。
  • 如果可能,至少試著手動執行操作,例如如何配置工具來滿足實際需求。
  • 如果可能,請嘗試查看當前工具的代碼。對這些代碼的基本了解將非常有價值。
  • 培養良好的求知習慣、保持學習、不斷實驗,深入鉆研你感興趣的技術。最好能建立一個家庭實驗室,在這里探索并嘗試剖析一切。

記得質疑一切,特別是那些看似沒有意義的事情。不要簡單假設“我不懂的,總有人懂”——這只會讓你變成盲目的追隨者。有時候其他人確實懂,但這是不夠的。我們要勇敢起來,堅持追尋自己的理念和客觀事實,哪怕這會顯得跟其他同行格格不入。

我想在本文中強調的,并不是每個人都要從第一原理出發認識一切,或者說就不該使用便利的自動化工具。文章開頭我就提到,抽象當然是好的。而且不同的專業事務當然要由不同的專家來做,比如駕駛卡車有司機,修理卡車有技師。

我真正要說的,是工程師到底該用怎樣的態度對待技術工作,以及這種態度對于技術從業者們的重要意義。

以軟件開發為例,有太多的專業知識都被抽象了出來,進而被工具和自動化所取代。了解整個體系的人越來越少,很多人甚至連當前工作的往下一層都不愿深挖

這已經是個嚴重問題,導致很少有人能夠修復垂直領域中的技術細節。沒錯,大家捫心自問,究竟是不是這樣?

大約半年前,我偶然發現有些前端 Web 開發者根本不知道無需部署工具就能創建網站,甚至連 JavaScript 都可以不用。他們開發的可是賺錢的商業網站!帶著驚訝之情,我詢問了一位教授 Python 編程課的朋友,他的反應倒是很平靜:

別那么吃驚,這就是如今的常態。技術行業希望我們培養更多只知道“按按鈕”的從業者,而不是把專業學深、學透的人。

我知道,總會有人想要把專業學深、學透,但這不是重點。關鍵在于,我們的軟件開發行業已經開始扭曲變形:由于加入了太多的抽象層,大家已經看不懂整個體系在如何運作。最終,這個行業一定會搬起石頭砸了自己的腳。

我敢肯定,當一位 Web 開發者——無論是前端、后端還是“整合工作”——在制作網站時,完全不需要編碼、TCP/IP、DNS、HTTP、TLS 或者安全性知識,而只靠預制的工具和框架就能搞定的時候,那大麻煩恐怕就離我們不遠了。

網友怎么看?

這篇貼文在 Hacker News 上發布后,引來了諸多圍觀者。不少開發者在下方留言發表了自己的觀點。

有網友稱,文中提到的現象的確存在,但這不能完全怪開發者不去主動學習,因為一項優秀、可靠的技術需要很長時間的積累才能出現,開發者實際上不需要理解它就能操作它。

舉個例子,文中提到了“是的,讓我們都回到匯編編碼吧!” 事實是:在高級語言成為主流之后的很長一段時間里,開發者仍然必須了解匯編才能成為一名開發者員,即使你的大部分工作是用 C 或 C 語言完成的。這是因為高級語言的編譯器及其調試工具最初是一個“有漏洞的”抽象。當你的程序失敗時,你必須了解匯編才能找出問題所在。如今,編譯器和調試工具已經變得如此出色,那些日子已經一去不復返了,你真的不需要再了解匯編了。

但我們今天面臨的問題是:我們一層又一層地堆積有漏洞的抽象,卻沒有給它成熟所需的時間。我們的設計是為了縮短開發人員完成某件事所花費的時間,但其實這是個錯誤的假設,因為開發者只想要一切按計劃進行,不想花費大部分時間來調試計劃之外的工作。這些抽象就是復雜且無意義的。

ID 名為 figassis 的網友稱,自己一直不理解那些沒上過大學就能從事編程工作的開發者。figassis 表示自己看到了一個怪象:過去幾年還是十幾年間,不需要上大學就可以成為程序員似乎成為一種趨勢。figassis 稱:

“確實,我的大部分技能都是在大學畢業后獲得的,但是你從大學中獲得了某種全球系統的理解(在我的例子中是計算機+軟件+網絡工程),掌握了這些基礎技能,你可以快速縮小問題的潛在根源,包括 TCP/IP 堆棧、CPU 架構、內存管理,以及編譯器如何錯誤地優化某些代碼。它對于提出正確的問題也有很大幫助。如果你所知道的只是最新的框架/語言/工具,那么當出現問題時,周圍的整個世界都會'咬你一口’。關于抽象:我總是逃避那些鼓勵抽象的語言。Java 就是其中之一,即使在大學里,整個 OOP 趨勢對我來說也只是平淡無奇。我對框架(尤其是 JS)最大的恐懼是它們被抽象到這樣的程度,以至于我無法希望在不尋求論壇或 Github 幫助的情況下在合理的時間內解決問題,因為我甚至不理解這些概念。什么是效果?反應如何工作?等等。”

原文鏈接:

https://unixsheikh.com/articles/we-have-used-too-many-levels-of-abstractions-and-now-the-future-looks-bleak.html

本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
華為:產業興國,軟件當立
專為資源技術愛好者創一個交流群
老子云8月1日正式上線
為什么越來越多的人都會去學習編程?
JAVA別跑“等等”筒子們
DevOps詳解
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 德化县| 临夏县| 贞丰县| 华蓥市| 湘阴县| 芦溪县| 三原县| 东阿县| 绥阳县| 肃北| 金山区| 洪江市| 永靖县| 拉萨市| 新蔡县| 朝阳市| 崇阳县| 瑞丽市| 花莲市| 历史| 呼玛县| 鲁山县| 修武县| 汨罗市| 宁南县| 资阳市| 德昌县| 石狮市| 江山市| 巴彦县| 饶河县| 文水县| 涿鹿县| 吉木萨尔县| 衡东县| 福安市| 桐城市| 闵行区| 抚顺县| 涿州市| 山丹县|