成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

六年之后:回到底層編程

開發 前端
我本來不想再花時間寫一篇相關的文章。只是呢,最近發生的一些事情,或許和每個 IT 人息息相關。我便想著,再花點時間思考一下:我們的行業以及行業背后的 IT 體系。

[[338208]]

一個月以前,我加入到 ThoughtWorks 已經進入了第 7 個年頭。我本來不想再花時間寫一篇相關的文章。只是呢,最近發生的一些事情,或許和每個 IT 人息息相關。我便想著,再花點時間思考一下:我們的行業以及行業背后的 IT 體系。

從某種程度上來說,我更可能是在彌補一塊重要的短板 —— 一來,不是從事相關的領域;二來,平時的開發中真的用得少。

Web 開發的核心:CRUD?

在我先前的文章《項目初期的最優技術實踐》里,我把產品開發的生命周期分為了:

  1. 技術準備期
  2. 業務回補期
  3. 成長優化期

從技術維度來看待的話,我們會發現隨著時間的推移,整個項目對于人能力的要求會越來越低,直至大家都變成 CRUD、Copy/Paste 程序員。唯一經常還被提及的難點就是:對于數據庫的各種優化,又或者是對于遺留系統的遷移,又或者是對于某個開源軟件的優化。

所以啊,我們聽過別人提及一個明確的大公司技術發展路線:成為一個技術 + 業務專家。回過頭來看,事實也是如此 —— 在大部分的公司里,成為一個技術專家,是一個投入大收益低的事情。對于個人來說,不一定有足夠的回報,不一定有用武之地,不一定能找到相匹配的工作;對于組織來說,難以創造更高的價值。

可是呢?對于多數人來說,他們真的還是技術專家嗎?如果不寫代碼的話,他們只是一個技術決策者,而技術決策者和技術專家是兩種不同的發展路徑,只是他們做的某些事情是重疊的。

所以,在 CRUD 之外,我們的一個側重點還在于對基礎設施的優化,而這些基礎設施大多數是開源的。

開源是否在扼殺技術創造力?

自由軟件和開源軟件運動,解放了我們在整個行業的生產力。過去,我們關注于如何實現某個功能,現在我們可以轉而關注于某個業務的具體實現。

不可避免地,在國內的一些大公司里,受過訓練的、編程能力極強的程序員,變成了一個會寫代碼的業務專家。他們帶領著大量的平均水平一般的外包程序員,一起編寫著業務價值巨大的低質量代碼。

這一切看上去似乎非常合理,但是行業總體的創造力在下降。特別是,如果中國的 IT 公司在開源領域的影響力過小時,整個市場都將充斥在水平一般的程序員。

所以,這樣一來,我們又不得不考慮一個問題,開源是否在不斷降低組織的技術創造力?對于個人來說,可以通過學習造輪子來提升,對于組織呢?

閱讀源碼的本質:解析字符串?

這一年里,受項目及公司大佬的熏陶,我開始尋求以半自動化的方式來理解代碼。這其中的一個過程產物就是 Coca,以及 Chapi。往往復復的練習之后,對于類似工作的自動化,有了更充足的把握。

在機器執行一段代碼之前,我們要進行一系列的前端轉換:詞法解析、語法解析、語義分析、生成中間代碼,隨后再交由編譯器后端處理,直至目標程序。而對于人類來說,我們理解的過程是相似的,稍有區別的是,生成的中間代碼是人類語言。

而對于一個新的項目來說,我們要做的就是把理解匯制成架構圖,又或者是它們之間的調用關系。于是,Coca 和 Chapi 就是用來做這部分工作的自動化 —— 解析字符串。

所以,我一直想寫一個工具,用于自動化生成不同語言的代碼結構。只是吧,一直缺乏一個明確地用戶場景,理論有了,技術有了,就差有人買單了。

可執行的背后:二進制?

起先,因為在完成之前的一個 Todo 列表,我便開始折騰寫一個 TLV 編碼、解碼器。TLV,即標識域(Tag/Type)+ 長度域(Length)+ 值域(Value),它是用在通信協議的一種編碼格式。

隨后,我便開始嘗試解析 Java 生成的 class 文件,嗯,我發現做的事情和 TLV 解析,又或者是 Coca 做的語法解析有些類似。Java .class 文件畢竟有固定的格式,所以反而比直接字符串處理更加簡單。

緊接著,我繼續擴展對于 Java 虛擬機的理解,嘗試模仿造一個簡單的 JVM,理解整個 Java 應用是如何運行起來的。

直到了,我發現有一個新的領域:Android 對于 Java 二進制的各種騷操作:class 轉換為 dex,對 dex 進行優化,dex 轉 oat 二進制……。

生活就是這么充滿樂趣。

Go、Rust 成為編程語言的新希望?

作為一個浪漫的程序員,我們無不時刻想著創建一個新的語言/DSL,以豐富我們的業余生活,調節一下 copy/paste 的乏味感。

在陸陸續續地學習 Go 和 Rust,并用它們創造了一系列的工具。我對于創建領域特定語言的事情,又有了一定的感悟 —— 適合的時機,適合的場景,便容易產生適合的語言。

特定的語言解決某一類特定的問題。當然了,新的編程語言還需要有一定體量的公司才能支撐起來。不過,領域特定語言就不需要了,你想干些什么,你就可以輕松上手了。

回到底層編程和基礎設施

所以,既然大部分 Web 開發都是重復性 CRUD 的。那么回到底層編程、系統編程,偶爾造造系統軟件,也是相當的不錯。特別是當前,整個市場的大環境對于基礎設施的需求,一直在持續不斷地提升。

創造和學習是一種樂趣。

 

嗯,我打算業余生活寫寫底層代碼,進行進行系統編碼。

本文轉載自微信公眾號「phodal」,可以通過以下二維碼關注。轉載本文請聯系phodal公眾號。

 

責任編輯:武曉燕 來源: Phodal
相關推薦

2012-08-27 13:42:07

軟件測試

2019-02-26 08:14:41

大數據HadoopSpark

2021-07-30 11:56:28

華為大數據

2018-12-04 15:12:07

NFV網絡功能虛擬化網絡

2024-08-30 10:02:06

事務HTTP編碼

2025-04-18 09:31:19

2023-05-17 00:13:48

2013-03-08 10:02:17

開發人員程序員

2015-11-05 11:45:35

物聯網復合增長率

2018-05-10 14:22:49

大數據AI人工智能

2009-02-23 11:22:29

系統架構師軟件開發經驗

2013-12-24 16:06:04

移動蘋果談判

2011-01-28 09:25:49

2017-06-29 09:17:43

建行信息技術互聯網

2024-10-12 13:50:00

圖像合成AI數據

2024-11-04 15:42:49

2024-01-10 11:56:51

SpringBootshell腳本命令

2012-10-16 10:01:40

碼農程序員編程

2015-11-03 10:20:08

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美三区视频 | 亚洲精品久久久一区二区三区 | 国产精品久久久久久 | 欧美亚洲视频 | 国产电影一区二区 | www.99精品 | 国产在线观看福利 | 国产美女在线观看 | 奇米av| 国产精品久久久久久久久久 | 国产专区在线 | 91精品久久久久久久久中文字幕 | 中文字幕综合 | 精品久久中文字幕 | 91久久精品一区二区二区 | 国产三区av| 午夜寂寞网站 | 亚洲va中文字幕 | 特级做a爱片免费69 精品国产鲁一鲁一区二区张丽 | 日本在线视频不卡 | 一区二区三区四区五区在线视频 | 99re在线视频 | 一级免费在线视频 | 久久成人一区 | 久久999 | 特级黄一级播放 | 99精品欧美一区二区蜜桃免费 | 99热精品在线 | 成人h视频 | 国产乱码久久久久久一区二区 | 国产成人网 | 精品视频在线观看 | 久久一区二区三区电影 | 欧美中文字幕一区二区三区 | 欧美在线看片 | 免费视频99| 国产中文在线观看 | 天天澡天天狠天天天做 | 夜夜爽99久久国产综合精品女不卡 | 国产视频二区在线观看 | 亚洲精品久久久9婷婷中文字幕 |