主頁 > 軟體設計 > 不評刪帖是非,只說“簡單即是美”,對代碼完全掌控的重要性!

不評刪帖是非,只說“簡單即是美”,對代碼完全掌控的重要性!

2020-09-17 12:55:42 軟體設計

    最近這一段時間園子里面有關ORM的話題被某大佬連續發的有關他的ORM框架的文章帶火了,不能不說不僅作者的框架備受推崇,原始碼Star很多,作者的文章話題帶動能力也強,其中一篇文章回帖操過100樓,愚作為早期ORM框架開源的一員(PDF.NET,后來改名SOD),去捧場觀戰自然義不容辭,在與園友回帖討論程序中難免會提到自己的框架,無奈被原文作者以廣告嫌疑刪帖了,辛苦碼字的回帖說刪就刪,盡管愚一開始就申明SOD框架不僅僅是一個ORM框架,它是一個簡單的但又全功能資料開發解決方案,但是別人家的地盤別人做主,愚也不好指責什么,各人有各人的是非標準,別處不能說,索性就自己發一篇隨筆,來說說愚認為的重要問題:“簡單即是美”,對代碼完全掌控的重要性!

    實際上,這個觀點不是我獨有,也不是我原創,至于是誰最先這樣說的無從考證,那么就只好看誰“志同道合”了,很幸運在上面說的某大佬文章回帖中,就有這樣一位朋友,請看下圖:

    幸好愚認為這個觀點很重要,就截圖在我的QQ群里面分享了,要不然這個回帖被刪了甚是可惜,下面文字是上面圖片的內容,貼出如下:

參考--------------------------------------
@架構師修行之路
  做了這么多年,始終覺得,對于資料庫持久化而言,簡單即時美,完全掌控才是王道,用過ef,不太喜歡,一個簡單的sql需要胚子和不少東西,可能我已經老了吧
回帖---------------------------------------
高度贊同,簡單就是美,完全掌控才是王道,這也是SOD框架的設計哲學,在Java開發領域,Hibernate不可謂不強大,然而很多開發員主要用的是mybatis就很能說明問題,Hibernate對于大多數Java開發人員而言太復雜了,

 

    回到正文,為什么說簡單就是美,完全掌控才是王道,簡單的東西才容易駕馭,才容易完全掌控;完全掌控的事情才能最大程度保證成功而不依賴來運氣和人品,這個道理其實不僅僅是對資料庫持久化而言,對軟體專案,對任何事情都是成立的,

    之前園子里面有一篇文章《[漫談] 軟體設計的目標和途徑》,作者說到:“軟體設計的目標是避免軟體的失控,那么是什么東西導致的失控? 你面臨的業務太復雜?專案遺留的代碼太爛?團隊成員水平參差不齊?工期太緊張導致你無暇做設計規劃?也許吧,這些或多或少都確實是已經存在的事實,”經過一番分析,作者得出結論:“所以是什么導致的失控?現存的無力維護(bug、新功能都是維護)的代碼導致的失控,同時這也是失控的表現結果,那么你為什么會無力維護這些代碼,因為它的真實行為和你理解的行為出現了偏差,你覺得它不可控了,這時候就是真的失控了,代碼爛不爛其實并不是重點,只要你還能維護,這些都不是問題,”

    對這個觀點,愚很認同,以前愚也常常維護別人寫的遺留專案,那種填別人挖的坑的感覺確實很無力,一個看似很小的Bug牽一發而動全身,尋找蛛絲馬跡猶如大海撈針,有時候這種Bug看起來就像是“薛定諤的代碼”--測驗說有Bug而你怎么都不能復現,Bug修復了好像又沒有修復,如果這種代碼太多了或許這個專案真的就失控了,這種事情就曾經發生在筆者身上過,還好老板英明,又把原開發人員請回來兼職一段時間給我們講解系統到底有那些坑,找到了雷修復起來就很快了,這個案例說明,之所以很難維護別人的遺留系統,是因為你難以在有效的時間內完全掌控系統,對系統的設計原理和代碼運行流程不熟悉,也就不了解現有系統設計和代碼的缺陷在哪里,總之就是這個系統對于你來說太復雜了,無法完全掌控;如果是你設計開發的系統,你熟悉所有的細節,那么你會說“這個很簡單”,“那也很簡單”是不是?你沒有說過這樣的話也一定聽別人說過這樣的話,所以在一定程度上,“簡單”就等于“完全掌控”,你能完全掌控那就是簡單,但你認為簡單別人不一定覺得簡單,所以要讓大多數人都覺得簡單的事情,就變得非常不簡單了,著名科學家霍金有句名言:多寫一個公式就會嚇跑一半讀者,霍金在他的科普書里面幾乎沒有使用多少公式,將復雜的宇宙科學講得人人都能看懂,將宇宙寫得美輪美奐,他寫的《時間簡史》火爆全球,銷量經久不衰,愚認為“簡單就是美”一定是霍金寫科普書的“寫作哲學”;同樣,愚也將“簡單即是美"始終作為SOD框架的設計哲學--一個不需要反射、不依賴.NET高級特性(比如LINQ)、核心組件不依賴第三方框架,極度精簡的資料開發框架,

    世界上有兩件最困難的事情:一個是你把你口袋里面的錢放到我口袋里面來,一個是我把我腦袋里面的想法放到你腦袋里面去,所以對本文的觀點你肯定不會那么容易相信,畢竟這是最困難的事情之一,如果你不信,請繼續聽我說,

    話說一圖勝千言,圖樣圖森破,先看下圖:

    (圖片來自網路,侵刪)

    上面是文章《“越復雜越不穩定”》的插圖,不規則的石頭一層堆砌一層,越來越高越來越小,總覺得搖搖欲墜,相反如果石頭堆砌矮一點就一兩層,或者石頭結構標準四四方方,這堆石頭就很穩定,堆砌的層數少我們堆砌石頭的作業簡單,石頭結構標準也就是石頭形狀簡單,簡單的方式讓我們對堆石頭這件事情上能完全掌控,這堆石頭就能非常穩定而屹立不倒,文章說道:“我們地球出現45億年,從單細胞動物發展到我們今天,成就了人類和成千上萬種生物,但存在更持久的還是最早的單細胞生物,在今天還有存活,而后來演化的很多生物卻在這程序逐步滅亡,即便是我們人類號稱自己牛逼,也不過是才存在了幾十萬年,要知道恐龍可是存在了上億年的歷史,但最終也逃不過物種滅絕,這理解起來就是越復雜越不穩定的物種進化案例,”

    不論是小孩過家家堆石頭這樣的小問題,還是大到生物圈物種滅絕這樣的是問題,都說明簡單的重要性,越簡單越穩定,越復雜越不穩定,這個道理符合大多數人的認知,道理就是這樣,之所以讓我們認同,就是因為我們看到的現象可以用這個道理來解釋,當然這個道理在某些特殊場景下可能不成立,請參考另外一篇文章:《隨筆:關于系統穩定性的思考》,這個道理僅僅這樣說可能還不夠,有很多時候我們“眼見未必為實”,錯覺是常見的,所以現代科學更講究數理邏輯,假設系統整體最佳的穩定性為1,系統由N多節點元素相互依賴而成,系統整體的穩定性由系統內每一個節點的穩定性系數相乘而來,假設每一個節點的穩定性都是0.9,那么2個節點組成的系統穩定性是 0.9 * 0.9 =0.81,10個節點系統穩定性約等于0.3486784401,這么低的系統穩定性肯定沒法用了,將系統每一個節點的穩定性提高一個數量級達到0.99,那么2個節點組成的系統穩定性是 0.99 * 0.99 =0.0.9801,10個節點系統穩定性約等于0.904382,看起來系統穩定性還不錯,但是如果100個節點系統穩定性將下降到約等于0.36603也變得不可用,

    如上圖復雜的系統節點關系,如果一個系統設計成這樣,在考慮上面的系統節點穩定性演算法,這樣的系統幾乎就是不可靠性,穩定性非常差,如果一個專案代碼是這樣,那這樣的專案很容易失控,但是一個系統是由簡單的節點關系組成,并且節點可以遞回定義,即一個節點又是一個簡單的子系統,那么系統整體結構上不僅依然很簡單,而且這樣一種結構圖還很優美,如下圖:

    如上圖,一個規則的六邊形結構,通過節點組合的方式,最后組合成了一片優美的類似雪花樣子的結構形狀,這是不是“簡單既是美”很好的例子?無獨有偶,在軟體領域也有一個“六邊形架構”,或者類似的“整潔架構”,又叫“洋蔥架構”,有關這些軟體架構的介紹,可以參考愚寫的新書《SOD框架“企業級”應用資料架構實戰》里面的介紹,綜上所述,“簡單既是美”不管是從人的感性認知,還是從科學的數理邏輯層面,都證明了這是一個“金科玉律”,它跟墨菲定理、二八定律等一樣重要,這是人們認識世界、改造世界的最佳實踐,放在軟體領域,甚至放到前面說的ORM框架設計上,“簡單既是美”都應該成為一種設計哲學,SOD框架始終尊崇這一哲學,框架追求的目標是簡單與效率的平衡,這種平衡猶如太極圖

SOD框架

體現在:代碼的精簡,開發、維護的簡單與追求極致的運行效率,(詳見框架官網)

 

再回到ORM的話題上,因為開發人員需要完全掌控自己的代碼,所以大部分Java開發人員舍棄了功能強大的ORM框架Hibernate轉而使用半ORM框架(甚至不能叫ORM)的MyBatis框架,寧愿手寫SQL也不愿用全功能的ORM,用這種簡單粗暴的方式來快速解決問題,這樣別人接手專案也能快速上手而不至于造成專案失控,大家如果不相信這個現象,可以去各大招聘網站看看有關Java技術堆疊的招聘,不論從Java開發人員還是到JAVA背景的CTO,幾乎沒有幾家要求熟練使用Hibernate的,幾乎全部要求熟練掌握MyBatis框架,在Java界如此,那么在.NET界也就能很好的理解為什么.NET的ORM這么多了,因為造一個ORM輪子簡單啊,這可能得益于.NET的強大而又好用的特性,微軟對開發人員一向是保母型的:),不過,這也造成一個尷尬的情況,正如下面的朋友說的,我回復了這位朋友,不巧這也被本文開頭的那個ORM大佬給洗掉了,請看當時回帖截圖:

回帖內容如下:

參考-------------------
@JulyLuo
  哎,難怪人都說DotNetCore的人都再搞ORM,天天搞這些,,
回復--------------------
這可能是造一個ORM輪子門檻比較低,當然造一個強大的ORM還是不容易,需要時間和作者的毅力,比如像樓主這樣的毅力,不過,如果拋開ORM,去審視ORM背后的資料問題,就能發現一片寬闊的天地:資料、資料互動、資料控制元件、資料系結、資料的分部、事務/分布式事務、資料同步、資料復制、資料清洗、資料快取,,,,等等企業級應用開發需要處理的資料問題,SOD框架早就不是ORM框架了,它現在是一個簡單的但又全功能的資料開發與架構的解決方案,為此還寫了一本書:《SOD框架“企業級”應用資料架構實戰》,
----------------------------

    回到正文,上面這位朋友說的的確有這樣一個現象,除了前面說的微軟是.NET開發人員的保姆使得使用.NET很容易造ORM輪子之外,愚想問大家,絕大多數用.NET的公司為什么用.NET呢?為什么很多國內的公司初創期間用.NET而成熟之后紛紛轉投了Java呢?大家可能說這是生態問題,而愚認為,原因不僅如此,.NET容易使用,開發效率高是主要原因,初創公司節約成本是王道,同樣的原因,小公司經不起折騰為了確保專案成功,開發簡單代碼能完全掌控也是專案負責人首要考慮的問題,后期公司成熟穩定了有錢了就可以選擇生態龐大技術復雜的JAVA技術堆疊了,有N多高大上的框架可以來玩,誰還會再去造“很低級”的ORM輪子呢?如果更全面的看,造一個ORM框架技術含量的確比較低,但對于普通的.NET開發人員,他們沒有接觸大資料、云計算、機器學習、影像識別等等高大上技術的機會,不造ORM輪子還能造什么呢?80%的開發人員天天都在CRUD(請參考《軟體開發中的“二.八定律”》之1.2 大部分時間都在做重復的增刪改查),也只有ORM輪子是最容易造的了,技術想進步很難,這是.NET開發人員最難越過的坎,這個問題更詳細的討論可以參考我寫的《資料背后的二八定律,揭示程式員擔憂的主要問題》一文,愚不才,為了解決這個問題寫了上面回答JulyLuo的一段話,想告訴大家雖然都是同樣每天在解決資料CRUD問題,但是思考角度不一樣就能發現另一片廣闊的天地,這就是我這本書里面寫的全部內容,歡迎了解,

 

    本來是對某大佬文章讀者回帖的一個回復討論,沒想到大佬洗掉了我的回帖,也算是塞翁失馬,于是才有了這篇隨筆,告訴大家“簡單即是美”,強調對代碼完全掌控的重要性,在真正復雜的企業級專案開發中,選擇什么框架一定要好好想想你能否完全掌控它,確保專案開發不走彎路,不要為了“面向簡歷編程”而匆忙上馬使用流行的框架技術,如果你不能很好的掌控它,就選擇一個簡單的框架,或者向領導申請給予足夠的技術預研/調研時間,感謝大家的閱讀,希望在資料開發領域,SOD框架能成為你正確的選擇!

-----------------分界線----------------------

本文發布后,有好幾位朋友回帖批評愚說造ORM輪子不高大上的問題,愚認為大家表面上關注是否高大上的問題,本質上是在關注自己技術高低的問題,有沒有貶損自己技術能力的意思,這里特別申明一下:

是否高大上 不等于 技術高低

推論:=>

 

造ORM輪子 不等于 技術低

 

愚的觀點是,是否高大上跟技術高低沒有關系,因為前者是一個心態問題,后者是一個技術問題,高大上更多的是跟收入、薪水、社會需求度、社會地位等相關,就像我回帖說的,在招聘市場,大資料、云計算、人工智能、機器學習、影像識別等這些熱門技術不僅職位多,并且薪水基本要比普通的CRUD職位高出很多,形成鮮明對比,不信大家可以去招聘網站看看,由于這些熱門技術需求量大、薪水又很高,用大家的話來說就是行業風口,高薪+光環,自然就是覺得高大上,不是嗎?這不是我一人的觀點,也是我跟朋友們交流說到的,見下圖:

 

最后,愚的SOD有ORM功能,愚也算是造ORM輪子的人,怎么可能自己瞧不起自己,說造ORM輪子很低級呢?這邏輯上是說不過去的,愚絕對沒有任何貶損大家造ORM輪子的意思,希望大家仔細讀讀我文章內容,多多思考,如果是因為愚的表達能力沒有把問題說清楚導致的誤會,誠懇的給大家道歉,愚本不才,能力有限,所以自稱愚便是此意,再次謝謝大家的支持!

PS:

本文的中心思想是討論【“簡單即是美”,對代碼完全掌控的重要性!】這個觀點,而不是討論刪帖是非問題,然而評論區的話題被人帶偏,前面開篇就說了要不要刪帖是別人的權力,愚沒有指責對方的意思,甚至要感謝對方給了愚寫此文的貧訓,愚都沒有討論這個刪帖是非問題,所以請大家也不要激動,讀文章抓住重點,找到中心,謝謝!

 

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/65773.html

標籤:架構設計

上一篇:Python爬蟲實戰(二):抓取京東蘋果手機評價

下一篇:JavaScript(基礎、高級)學習筆記匯總表【尚硅谷最新版JavaScript基礎全套教程完整版(140集實戰教學,JS從入門到精通)】

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more