主頁 > 資料庫 > 一周XX思考(第12期)

一周XX思考(第12期)

2020-11-16 00:31:34 資料庫

大家好,這里記錄,我每周碰到的,或想到的,引起觸動,或感動的,事物的思考,這是 [一周XX思考] 的第12期,不見得都對,但開始思考總是好的,

借鑒和傳承

先有的SOA,再后來出現微服務,那么實際上微服務是SOA的升華,

再拿前端開發來說,從Windows原生的直繪界面到基于QT的Web混合開發,再到小程式、Flutter等移動跨平臺方案,

那么還能夠舉出N多這樣的例子,后面也會有層出不窮的新技術,新架構,

但這些大都會沿襲傳承和借鑒,

"吾生也有涯,而知也無涯, 以有涯隨無涯,殆也",

所以,我們要善于找不變的內容,去思考有哪些是不變的,才能以不變應萬變,

計算機為什么能執行無限個可能

這里的計算機,就理解成我們的PC吧,

計算機如何組成的呢,PC=CPU+存盤+I/O設備,

計算機運行的原理是什么樣的呢,CPU從存盤中讀入指令,然后按照指令執行命令,再然后就一條指令一條指令的執行下去,

那計算機是怎么執行無限個可能的呢,這里的無限個可能,就是不固定,你輸入什么,他就可以執行什么,只要不報錯,

能夠達到這個目的,這里面最主要的是可編程,

本周看極客專欄中的文章《架構設計的宏觀視角》一文看到如下描述,

CPU 指令是一個很有限的指令集,但是CPU執行的執行序列,我們也叫它程式,并不是固定的,而是依賴保存在存盤中的資料-由程式員撰寫的軟體來決定的,

而,指令序列的可能性是無窮的,這也就意味著電腦能夠做的事情的可能性也是無窮的,

架構的作用

談論架構的作用,可以有好多個維度,

這周,我看到下面這句話,也是在《架構設計的宏觀視角》中讀到的,

“在越強大的基礎架構支撐下,應用程式開發需要關注的問題就越收斂,我們的開發效率就越高“

這句話呢,理解起來,跟我們經常說的,分層架構的主要目的之一是:隔離關注點,有些相同,這句話中提到的”收斂“其實,某個程度上也是關注點的”味道“,

要舉一個例子來說明上面這句話的觀點,有很多方式,比如無論分層的MVC架構,還是向內依賴整潔架構,更或者是六邊形架構,能夠很好的闡述這個觀點,

不過呢,文中舉了一個例子,我到覺得很妙,

一位程式員之所以能夠舒服的編程并能夠讓代碼在計算機上運行起來,最底層是依靠的馮諾依曼體系架構,在上面是作業系統和編程語言,再往上是中間件類基礎軟體,比如Dubbo、MySQL等等,再往上是應用程式框架比如spring框架等,最上面是什么呢,就是我們的業務架構了,

試想,如果沒有業務架構下面那些各層的基礎架構,我們能夠很舒服的寫代碼么,有能夠讓我們寫的代碼很方便的跟其它軟體系統互動通信么,

編程的本質是什么

很抱歉,這周問題似乎多了些,可是當你這樣想的時候,你是怎么理解的呢,

編程的產出就是軟體,軟體的作用是解決問題,我們一般都是怎么解決問題的呢,分解,

就是,如果遇到大問題,我們就會拆成小問題,如果發現小問題還是大,就繼續拆成更小的問題,“大事化小”,

然后,我們就會給出這些小問題的解決方法,也就是我們撰寫解決這些小問題的代碼,

最后,就出現了編程的本質:我們要把這些代碼片段復合起來,從而產生那個原始的大問題的解法,

反之,如果我們不能把這些代碼片段復合起來并還原回去,那么當初我們對問題的分解就沒有任何意義,

關于這個論點,大家可以搜索《函式式編程與面向物件編程[5]:編程的本質》這篇文章,有更詳細的敘述,

同時這篇文章還提到了代碼的面積和體積,我確實第一次看到這個說法,

代碼的面積和體積

我個人覺得講的有點太好,我直接引入原文的內容:

那么,對于程式的復合而言,正確的代碼塊是怎樣的?它們的表面積必須要比它們的體積增長的更為緩慢,我喜歡這個比喻,因為幾何物件的表面積是以尺寸的平方的速度增長的,而體積是以尺寸的立方的速度增長的,因此表面積的增長速度小于體積,

代碼塊的表面積是是我們復合代碼塊時所需要的資訊,代碼塊的體積 是我們為了實作它們所需要的資訊,一旦代碼塊的實作程序結束,我們就可以忘掉它的實作細節,只關心它與其他代碼塊的相互影響,在面向物件編程中,類或介面的宣告就是表面,在函式式編程中,函式的宣告就是表面,我把事情簡化了一些,但是要點就是這些,

正交設計

從某個角度來說,軟體設計的本質就是分、合,

分開之后為什么要合,在上面[編程的本質]中我們也有提到,只不過那是拿代碼片段來闡述的,你可以理解為是微觀層面的角度,

如果你把單系統模塊化以后,跨行程的時候,再合起來,就是宏觀層面的角度,靠什么合呢,可以是API,

這些是合,不過正交設計,講的是在分的時候,到底該怎么分,也就是正交設計不是指導合的,

所謂正交設計,就是當我們把一個系統或者一個業務模塊,沿著兩個方向去拆分的時候,任一方向上的變化,都不能影響另外一個方向,就是正交(其實本是數學上的一個概念),

三人行必有我徒

”三人行,必有我師“,出自于《論語.述而》,意思大家都懂,一些人在一起,別人的言行舉止啥訓思想知識,一定有我學習的地方,

謙遜,敏而好學,不恥下問,這些都是美德,

那么,現在回到一個本質的問題,學習的邏輯,如何學習,如何學習好,

學習最好的方式就是主動學習,主動學習最好的方式之一,就是分享,然后得到反饋,然后再修正,這樣的路徑是最優的,

可是,如果總覺得,我目前已經掌握的知識,我總結的思想,很LOW,我分享了,別人也不會來看,更不會給出反饋,所以,我得向別人來學習,

這里的障礙就是,有過多的敬畏之心,

如何破除這個障礙呢,

這周看到一篇文章《學習的邏輯 3:三人行必有我徒》,對于分享有獨特的見解,

這個障礙其實可以很簡單的破除,就是降低分享和傳授的門檻,不要一提到分享和傳授,就想到PPT,投影儀,濟濟一堂的聽眾,沒那么復雜,分享就是聊天,當你有一個想法的時候,隨機碰到誰,就跟他/她聊,聽的懂正好可以給你反饋,聽不懂正好逼迫你尋找一種更容易理解的表達,而且要不止一次的聊,不止一個人的聊,聊多幾次,你會發現你的想法更完整了,一些新的點涌現了,

對于此,文章還給了一定的理論邏輯基礎:

三人行,必有我徒,因為師徒必然是同時出現,互為定義的,不存在沒有徒弟的老師,也不存在沒有師父的徒弟,因此,如果你認同三人行必有我師的話,自然也就明白三人行必有我徒,總會有人從你的分享中獲得有價值的知識,分享帶有分享者自己的經歷和視角,沒有兩個人的視角會完全相同,只要周圍不都是因人廢言的人,總有人會結合你的視角得出新的洞見,

不過也會有個”副作用“,就像文中描述的那樣:

一個副作用是,在周圍人的眼中,你變成了一個健談的人 :)

閱讀和寫作到底是什么關系

經常讀,經常看,就一定能寫好文章么,

結論是,閱讀和寫作不是因果關系,而是相關關系,

也就是并不是因為你讀了,你就能寫出來,但是讀的多了,看的多了,你就能在寫的時候發力,如何措辭,如何造句,就能用上了,是一種潛移默化的效果,

我記得,我在之前的XX思考中提到過,竹籃子打水并不是一場空,最后會發現“籃子變干凈了”,

關于這個問題的來由,是我這周在得到上看《小學生家長必修課》這個專欄的時候,看到了讀者留言以及作者的回復,

是呀,看家庭教育,沒想到還有這樣的識訓,具體的內容,截圖如下,

什么才叫真懂

讓我們一起看下,李誕的理解和解讀,下面是中國新聞周刊對李誕的一段采訪,我個人讀到的時候覺得很有道理,截圖如下:

雙輸

去高鐵站,在滴滴上打車,選了快車、出租車、特惠快車,特惠出租車,其中特惠出租車顯示8.5元,這個結果比平時少了4元,

當到達目的地的時候,提示付款,結果只有選擇滴滴支付才有這個優惠,但是必須要幫銀行卡,這就有點麻煩了,因為之前都是用的微信支付,

司機師傅說,盡量下車前支付吧,我當然也想著趕緊進站,

只能作罷,還是選擇了微信支付,我沒有得到優惠,滴滴支付沒有新增用戶,

雙輸,

那我在想,滴滴為什么不在我當時選車的時候,優惠那里,提示一下呢,要讓用戶提前綁上銀行卡什么的,這樣我在路上,就可能操作好了,

本周完,

題圖:葫蘆時刻

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

標籤:其他

上一篇:如何實作一個連接池?一文帶你深入淺出,徹底搞懂!

下一篇:領域驅動落地方法論

標籤雲
其他(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)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more