致敬平凡的程序员--《SOD框架“企业级”应用数据架构实战》自序
? “簡單就是美”
??? “平凡即是偉大”
??? 上面兩句話不知道是哪位名人說的,又或者是廣大勞動(dòng)人民總結(jié)的,反正我很小的時(shí)候就常常聽到這兩句話,這兩句話也成了我的人生格言,而且事實(shí)上我也是一個(gè)生活過得比較簡單的平凡人物,當(dāng)然這不能說我跟“偉大”有什么關(guān)系,我覺得絕大部分人都是像我一樣的平凡人物,但正是這些絕大多數(shù)平凡的人,創(chuàng)造了我們現(xiàn)在這個(gè)美好的世界,說他們是偉大的一點(diǎn)也不過分。在我身邊,也有一群平凡的程序員,用他們?nèi)諒?fù)一日,加班加點(diǎn),簡單而平凡的工作,編寫了許多有價(jià)值的商業(yè)軟件,付出了青春和汗水,除了相應(yīng)的薪水,還有什么更大的回報(bào)嗎?不排除程序員中有一些出類拔萃的人,他們?nèi)〉昧斯ぷ魃系某晒?#xff0c;在能力上獲得了很大的成長,當(dāng)了公司高管又或者是自己創(chuàng)業(yè),事業(yè)上取得了一定成就。但是這些出類拔萃的程序員是很少的,在本書第一章,筆者根據(jù)《2018年中國程序員生存現(xiàn)狀報(bào)告》進(jìn)行了分析,年薪超過30萬的程序員不超過10%,年薪10萬左右的占比最高,并且年薪10萬到15萬之間5到10年工作經(jīng)驗(yàn)的程序員占比最高。如果按照社會(huì)上普遍的以收入來衡量一個(gè)人是否成功的標(biāo)準(zhǔn),大部分程序員的職業(yè)人生都是不成功的,他們并沒有隨著工作年限的增長而獲得相應(yīng)成長,這是一個(gè)無奈的現(xiàn)實(shí)。然而換一個(gè)角度來看待,大部分程序員雖然每天都做著簡單而重復(fù)的“增刪改查”工作,但他們用平凡的工作為自己服務(wù)的公司創(chuàng)造了利潤,為社會(huì)創(chuàng)造了價(jià)值。
??? 身處平凡階層的您,又何嘗不想能夠成功,能夠成長,并且獲得成就呢?
??? 然而,您可能沒有名校背景,沒有大廠(比如BAT系的公司)履歷,沒有做過像樣子的大項(xiàng)目,沒有拿得出手的成果,像現(xiàn)在流行的大數(shù)據(jù)、人工智能、機(jī)器學(xué)習(xí)、區(qū)塊鏈這些炙手可熱的新技術(shù)更是不懂,又怎么能夠輕易的實(shí)現(xiàn)上面這個(gè)愿望呢?這應(yīng)該是大部分普通的程序員所面臨的現(xiàn)實(shí)問題,而我,也算是這其中的一員,但不妨礙我能夠?qū)崿F(xiàn)自己上面這個(gè)愿望。在回顧自己的程序員生涯時(shí)不會(huì)覺得虛度光陰,在某一方面也能有拿得出手的東西,獲得了一定程度的成功和成就,得到了顯著的成長,而我的“秘籍”就是,如果你覺得一個(gè)東西有點(diǎn)復(fù)雜,你就先用簡單的方式把它做好,做深入,慢慢你就會(huì)發(fā)現(xiàn),原來這個(gè)簡單的東西也可以構(gòu)建一個(gè)復(fù)雜的系統(tǒng),等你回過頭來再去看之前你覺得復(fù)雜的東西,你會(huì)驚奇的發(fā)現(xiàn):原來這樣做跟我的設(shè)想一樣啊!(PS:其實(shí)這并不是什么“秘籍”,這正是LISP黑客所擅長的工作方式:先從最小的地方用最簡單的方式將它運(yùn)行起來,采用自底向上的方式一步一步的構(gòu)建自己的語言,這種定制的語言抽象程度越高就越接近問題的本質(zhì),從而最終構(gòu)建出一個(gè)復(fù)雜的系統(tǒng)。筆者對(duì)LISP這種工作方式很推崇,筆者的SOD框架中的OQL語言的設(shè)計(jì)深受這種思想的啟發(fā)。)
??? 其實(shí)這是經(jīng)過長期而不斷的努力,才能突然領(lǐng)悟到別人設(shè)計(jì)的精妙,思想的深邃,你會(huì)發(fā)現(xiàn)這些設(shè)計(jì)思想都是自然而然的,一氣呵成的,有時(shí)甚至?xí)南伦约旱哪X袋:原來是這樣啊,為啥我之前沒有想到呢?也許,這就叫做“頓悟”吧!
??? 對(duì)于別人看一眼就能懂的問題,而我總是要從簡單的東西開始慢慢來領(lǐng)悟而不得“悟”,直到某一天才能突然明白,這期間走了不少彎路,付出了比別人更多的努力才能取得成功,我常常自嘲自己這是“笨鳥先飛”。我想“笨鳥”應(yīng)該像“聰敏”的鳥兒一樣總是少數(shù),那么身處絕大多數(shù)普通“鳥兒”中的“您”,一定能夠很快看懂我這本書提供的這些簡單的方案,把自己每天做的“增刪改查”工作,做的更好更深入,然后去構(gòu)建自己強(qiáng)大的復(fù)雜的應(yīng)用,“飛”得比我更高,更遠(yuǎn)。我說的這個(gè)方案便是本書要介紹的數(shù)據(jù)開發(fā)框架:SOD框架,它追求的目標(biāo)是簡單與效率的平衡,體現(xiàn)在代碼的精簡,開發(fā)、維護(hù)的簡單與追求極致的運(yùn)行效率。這種平衡,就像太極圖中的陰陽平衡一樣,體現(xiàn)在框架的設(shè)計(jì)上就是不僅要有方便快速的ORM功能,還要有處理復(fù)雜數(shù)據(jù)查詢的功能,包括數(shù)據(jù)映射工具、窗體數(shù)據(jù)綁定功能等,不能僅僅強(qiáng)調(diào)某一方面的功能,這樣使得它具有支持企業(yè)級(jí)復(fù)雜數(shù)據(jù)開發(fā)的能力。這也是為什么SOD框架的LOGO以太極圖為基礎(chǔ)設(shè)計(jì)的原因。
??? 但是,在筆者10幾年一線的開發(fā)工作中,發(fā)現(xiàn)有不少項(xiàng)目并沒有根據(jù)實(shí)際情采用靈活的解決方案,要么全程ORM,要么SQL一路寫到底,都是開頭爽然后很快就遇到硬骨頭,企業(yè)實(shí)際的開發(fā)項(xiàng)目遠(yuǎn)不是某個(gè)框架的教程示例代碼那么簡單,有時(shí)候?yàn)榱私鉀Q一個(gè)問題要花費(fèi)很多時(shí)間來尋找解決方案,比如本來全程ORM的,突然一個(gè)復(fù)雜查詢ORM處理不了不得已在幾個(gè)地方又手寫了SQL查詢,相信有框架潔癖強(qiáng)迫癥的朋友都能體會(huì)這種感覺。筆者認(rèn)為,一種方案解決不了所有問題,軟件研發(fā)必須要?jiǎng)?wù)實(shí),要明白簡單和復(fù)雜的關(guān)系,要重視開發(fā)效率與維護(hù)效率、運(yùn)行效率的關(guān)系,一個(gè)軟件項(xiàng)目就像人一樣有它固有的生命周期,就應(yīng)該尊重它內(nèi)在的規(guī)律,放在人身上是“陰陽平衡”,軟件項(xiàng)目也是這樣??蚣苁枪P者10幾年開發(fā)經(jīng)驗(yàn)的總結(jié),筆者想將這些經(jīng)驗(yàn)分享給廣大讀者,讓大家少走一些彎路,少淌一些坑,這便是筆者決定寫這本書的原因。?
--------------------------------------分界線----------------------------------------------
注:上圖是筆者自擬的圖書封面,設(shè)計(jì)的比較難看(出版社會(huì)自行設(shè)計(jì)一個(gè)好看封面),但圖書的內(nèi)容不會(huì)讓你失望。
本書有幸邀請(qǐng)到了.NET Linux 大神--宇內(nèi)流云和博客園著名的.NET隊(duì)長-- 張善友先生以及Java資深專家申毅先生的鼎立推薦,在圖書即將出版之際,對(duì)他們的支持表示誠摯的感謝!?
本書寫作了一年半,又碰上疫情原因出版社復(fù)工問題,到現(xiàn)在快2年時(shí)間了才進(jìn)入了出版倒計(jì)時(shí),因此也要感謝家人的支持和出版社編輯的理解。當(dāng)然,必須感謝SOD框架的用戶朋友對(duì)此書的支持和期盼!
總結(jié)
以上是生活随笔為你收集整理的致敬平凡的程序员--《SOD框架“企业级”应用数据架构实战》自序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 详解.NET Core 依赖注入生命周期
- 下一篇: 跟沈剑学习如何带领技术团队作战