學習如何使用 Redux

Redux 是一個狀態管理器,通常與 React 一起使用,但並不限於該庫。通過閱讀這個簡單且易於理解的指南,來學習 Redux。 為什麼需要 Redux 何時應該使用 Redux? 不可變的狀態樹 Actions Action types 應該是常數 Action creators Reducers 什麼是 reducer Reducer 不應該做什麼 多個 reducer reducer 的模擬 狀態 一系列的 actions 每個部分的 reducer 整個狀態的 reducer Store 我可以使用服務器端數據初始化 store 嗎? 獲取狀態 更新狀態 監聽狀態變化 數據流 為什麼需要 Redux Redux 是一個狀態管理器,通常與 React 一起使用,但它並不限於該庫 - 它也可以與其他技術一起使用。React 有自己的狀態管理方式,你可以在 React 初學者指南 中了解有關在 React 中管理狀態的方法。 將狀態向上移動到樹中適用於簡單的情况,但在複雜的應用程序中,你可能會發現你需要將幾乎所有的狀態向上移動,然後再使用 props 將其向下傳遞。 React 在 16.3.0 版本中引入了上下文 API,從不同部分訪問狀態的用例中,這使得 Redux 變得多餘,因此可以考慮使用上下文 API 而不是 Redux,除非你需要 Redux 提供的特定功能。 Redux 是一種管理應用程序狀態並將其移至外部全局存儲區的方法。有一些概念需要掌握,但一旦掌握,Redux 可以非常簡單地解決問題。...

學習程式設計中的悲傷之谷

我正在找一個線上學習計劃,以成為一名開發人員。 這個計劃是免費的,且組織成每週一個影片的系列。 第一個影片有50,000次觀看。 第二個影片有30,000次觀看。 第三個影片有20,000次觀看。 幾個星期過後,第13週只有8,000次觀看。 再幾個星期過後,第30週只有1,000次觀看。 這讓我思考起來。 在過去的4年裡,我開過16個線上課程。 這裡總是重複出現的模式。 第一週,大家都非常熱情,每個人都加入了 Discord(總是一個專門的 Discord),每個人都在介紹自己。 第二週,因為課程的初步材料開始展開,活動很多,人們都很興奮地開始學習。 到了第三週,參加的人越來越少,直到只有一個核心小組真正有動力並成功完成課程。 最初對每個人來說,這些都是新奇有趣的事情。這是一個很有趣的偏離你日常生活的機會。 但改變習慣是很困難的。 像一個以群體為基礎的密集課程想要時間、付出和努力。 註冊的人中有很大一部分無法完成課程。 想要註冊並學習程式設計是一回事。 真正去做它是另一回事。 無論這個計劃有多好。 有多少人擁有一個Udemy課程的作品集呢?我肯定有。我報名了很多不同的課程(不僅僅是程式設計),但其中許多我甚至沒有開始。我想我從來沒有百分之百地完成過一個課程。 購買課程很容易。 它是一個快速解決方案。 它很令人興奮。 它讓你感覺更好。 它讓你成為一個更好的人。 “我要成為一位更好的吉他手”! 這是一件很好的事情。它有激勵、啟發性,讓你夢想。 有時候我報名一個課程,是因為我想進行一個改變,無論是學習在iPad上繪畫還是彈奏鋼琴。 但之後就是真正的工作。你必須出席。這並不容易。 這就是悲傷之谷。 難的部分是度過那個階段。 然後就是一片幸福。

學習編程需要時間

編程是一項困難的活動。 學習編程需要大量時間。 沒有簡單的捷徑。 如果你從零開始,並且想把編程當作一個職業,成為一名軟體工程師,那麼它將需要大量的努力和奉獻。 沒有其他選擇。 如果你想成為一名開發者,你需要學習許多東西。需要長時間的學習。 好消息是,學習主要只需要時間。 沒有特別的需求。 你不需要具備特定的身體特徵,也不需要年輕,就像你在體育運動中所需的那樣。 你不需要高級設備。只需要一台筆記本電腦和一個互聯網連接。 這也是大多數人放棄的原因,而這就是你的巨大優勢。如果你能堅持下去,如果你能每天投入那些小時,那麼你已經在曲線之前。 這就是熱情可能起作用的地方,因為熱情能幫助你花費所有時間在電腦前。但是熱情也可能在你花費了很多時間後才顯現出來。你不必已經“擁有它”。 結果需要時間來顯示。但他們將會顯示出來。重要的是專注於達到目標的過程。在投入足夠的時間後,你必然會有成果。

擁有成功的博客的好處

我們都有限制在嗜好、家庭和朋友之間的時間。那麼為什麼你要每週抽出幾個小時來經營你的博客呢?而且不僅僅是一兩個小時,如果你想讓博客成功,你需要投入大量時間。 與生活中的一切一樣,你需要評估利與弊。 讓我們來分析一下好處。 個人滿足和滿意 首先,博客能給你個人滿足感和滿意感。 許多人喜歡在空閒時間玩拼圖或解字遊戲。或者他們喜歡修補木工或電子設備。 在博客上寫作可以給你同樣的感覺。 此外,它還給你一種成就感。 有時候寫一篇博客文章很容易。 其他時候可能很困難,也許是因為主題,或者是因為你在寫作中迷失了方向。 但是當你終於完成時,會有一種真正的好感。 你可以讓自己名聲大噪 博客也能讓你讓你名聲大噪。 當人們在谷歌上搜索你的名字時,如果你用自己的名字寫作,人們會發現你的博客是第一個搜索結果。這在面試時給人留下了很好的印象。 即使你目前已經就業,擁有一個博客就像是你個人品牌的延伸,可以幫助人們認為你更有學識。 這就像寫一本書。一本沒人讀的書是一回事——但是寫一本被很多人讀的成功書籍是完全不同的事情。 博客也是如此。有些博客不太受歡迎,可能是因為主題或其他因素(我們稍後會談到更多)。但有些博客很成功,而且其他博客更是非常成功。 你可以與更多人交流 通過在博客上寫作,你可以發布被全世界人閱讀的東西,而你的作品可能能幫助他們實現他們的目標。 不僅這對於個人滿足和實現感很棒。這也是被認為是你所在領域專家的一種很棒的方式。 而且你能夠接觸和影響的人越多,對你來說越好(對他們也一樣!)。 博客是你的平台 你的平台,你的發射台。在今天的世界上,有太多的噪音。 我們從各種媒體上接收到信息,作為一個創作者,真的很難脫穎而出。 博客可以成為你下一個項目、下一個冒險、下一個(或第一個)公司的很好的起點。它是你的。 任何產品的目標都是被人們使用。 盡可能多的人使用。不是每個東西都能像硅谷風格的“改變世界”,但是你的小項目、產品或服務對於它所面臨的目標人群的一小部分可能會有很大的影響。 但是第一步總是困難的,包括找到一個好的點子。 你的博客可以是你找到對於你認為值得創建的東西的初步用戶的方法。 將想法發布出去。看看人們對它的反應。 你可以成為社區的一個積極參與者 在每個社區中,有一小部分人領導,稍微多一些人貢獻,而更多的人則是追隨者。 想想你所在的社區。1%或0.1%的人在“核心”上工作。他們組織活動,建立軟件項目,主持播客,從事產品開發。另外9%將參與到社區中並成為積極的一部分。90%的人只是消費者。 作為一名博主,即使你不是那1%的領導者,因為你不想要責任或權力,或者你不能承擔承諾,你仍然可以做出貢獻。你可以添加自己的觀點,在一個渴望有人願意脫穎而出的世界中被聽到。 寫下你非常熱情的事情。創建一個有用的資源。人們會對此非常感激。包括那1%或0.1%的領導者,他們沒有時間、資源或意願創建這些資源的時候。 一個值得注意的例子是Jeffrey Way。他創建Laracasts來為Laravel(一個越來越受歡迎的編程框架)進行培訓。 現在他是該框架生態系統的重要組成部分,也是其流行的推動力量。

歷史API

歷史API是瀏覽器讓你與地址欄和導航歷史進行交互的方式。 介紹 訪問歷史API 導航歷史 向歷史記錄中添加條目 修改歷史記錄條目 訪問當前的歷史記錄條目狀態 onpopstate事件 介紹 歷史API允許你與瀏覽器歷史進行交互,觸發瀏覽器導航方法並更改地址欄的內容。 它在現代的單頁應用程序中特別有用,這種應用程序通常不會為新頁面發出服務器端請求,而只是內容發生變化而已。 如果一個在瀏覽器中運行的現代JavaScript應用程序不明確地或在框架層面上與歷史API進行交互,將會給用戶帶來很差的體驗,因為前進和後退按鈕將無法使用。 同時,當導航應用程序時,視圖會改變,但地址欄不會變化。 且刷新按鈕無法使用:刷新頁面時,由於缺少深度鏈接,瀏覽器會顯示一個不同的頁面。 歷史API是在HTML5引入的,並且現在所有現代瀏覽器都支持。IE自10版就支持,如果你需要支持IE9及更早版本,可使用History.js庫。 訪問歷史API 歷史API可在window對象上使用,所以你可以像這樣調用它:window.history或history,因為window是全局對象。 導航歷史 先從歷史API中最簡單的操作開始。 返回上一頁: history.back() 這將返回到會話歷史的前一個條目。你可以使用以下方式前往下一頁: history.forward() 這和使用瀏覽器的前進和後退按鈕是一樣的。 go()方‌​法可讓你多級路徑地返回或前進。例如: history.go(-1) //等同於`history.back()` history.go(-2) //等同於連續兩次調用`history.back()` history.go(1) //等同於`history.forward()` history.go(3) //等同於連續三次調用`history.forward()` 要知道歷史記錄中有多少條目,你可以調用: history.length 向歷史記錄中添加條目 使用 pushState() 方法可以以程式方式創建一個新的歷史記錄條目。你需要傳遞3個參數。 第一個參數是一個對象,可以包含任何內容(然而有大小限制並且對象需要可序列化)。 第二個參數目前由主要瀏覽器未用到,因此通常傳遞空字符串。 第三個參數是與新狀態相關聯的URL。請注意,該URL必須屬於與當前URL相同的起源域。 const state = { name: 'Flavio' } history.pushState(state, '', '/user') 調用此方法不會更改頁面的內容,也不會引起任何像更改window.location一樣的瀏覽器動作。 修改歷史記錄條目 pushState() 可以添加新的狀態到歷史記錄,而replaceState()則可以編輯當前的歷史記錄狀態。 history.pushState({}, '', '/posts') const state = { post: 'first' } history.pushState(state, '', '/post/first') const state = { post: 'second' } history....

獨立開發者的思考

關於作為一名軟體開發者獨立工作的一些想法 在過去的10年中,我在許多不同的團隊工作過。起初,我是一個自由工作者,原本打算獨自為一家小型企業從事網站開發和前端工作,但最終我發現許多團隊都需要我不同的專長。每次加入一個團隊,我都會發現不同的動態,並充滿不同程度的共鳴。我參與過一些很棒的時刻,也參與過一些不太好的時刻。 但我一直都是獨立工作,意味著我從來沒有受僱。我只是作為一名承包商工作,享有其優點和缺點。 自由 作為獨立工作的最大好處就是自由。如果你是一名雇員,你有一個老闆。如果你是一名承包商,你有一個客戶。你也可以有多個客戶。我從來沒有多個客戶,因為我一直想在副業上建立自己的事業。作為一名雇員,在某些國家,根據合同,你的雇主可能對你在閒暇時間創造的所有東西擁有權利。這很瘋狂。作為獨立承包商,你可以自由地從事副業項目。實際上,你擁有的東西越多,越好:你的作品集增加了,你的價值感增加了,你的個人品牌增強了,你的下一份合同將支付得更多。 靈活性 一種自由的程度就是靈活性。靈活性是很棒的。作為一名雇員,公司可能只給你2到3週的假期。想象一下:你在夏天休假了3週,然後在接下來的344天裡都沒有放一天假。在某些國家,例如歐盟國家,對於雇員來說情況會更好一點,但如果你需要休假,你仍然需要許可。 工作是一個高薪的牢籠。人有各種不同的個性,有些人喜歡這樣,尤其是因為工作中還涉及到一定程度的社交網絡(同事,老闆),而有些人則討厭。我屬於後者。 第一個靈活性的好處是工作時間。根據你的客戶(提示:明智地選擇你的客戶),你可以有非常靈活的工作時間。我需要放一天假嗎?我可以在下週工作六日來彌補失去的工時。下週我放假,我願意減薪25%。 如果你決定遠程工作,自由度就會增加,並且有一個全新的靈活性層次。你的客戶可能在美國,而你在歐盟,所以你可以利用所有的早晨休息,每天工作5個專注的深度工作時段,而不是效率低下的8個小時,並且你可以在下午2點到晚上7點工作。或者如果這更適合你,你可以從下午5點工作到晚上10點。 你提供的是價值,不只是工時 但作為一名承包商,你真的是按小時工作嗎?還是你提供的價值與工時無關?也許你的能力就足以在1個小時內完成初級或中級開發者需要5個小時才能完成的工作。並且更好,因為你有豐富的經驗和技能。 你的價值 作為獨立工作的另一個好處是你不太可能在一個客戶那裡工作多年。你更有可能發展一個人脈網絡,隨著你的職業生涯發展,獲得更大的機會。 每次機會出現時,你都會從過去的專案中獲得所有的經驗,並且有能力提高收費。 關於你的價值,有很多要說的。準確來說,是你的價值感。在一個雇員團隊中,每個團隊成員的付出導致最終結果之間可能存在一個模糊的界線。作為一名技術熟練的承包商,你的價值可能更加明確。但這完全取決於你,取決於你如何建立對自己的印象。當你獨立工作時,害羞的開發者很難有立足之地。你可能會認為自己是黑客類型,通宵碼字到凌晨3點,大家都知道你在幹什麼,即使你在Slack聊天中保持安靜。不,溝通是需要大量注意力的,尤其是在遠程工作時。在這方面,你需要超級主動,如果你需要與團隊一起這麼做,那麼你需要與外界多次進行此類溝通。 個人品牌 在今天的世界中,建立個人品牌是至關重要的,而且從未如此容易。你只需展現出自己的特點。YouTube,博客,播客,社交媒體,像 dev.to 等網站,只需要挑選適合你個性特點的工具。 個人品牌在決定你的價值,以及當客戶詢問你時的價格時是一個重要因素。你如何決定這個價格?這很困難。這幾乎和估計項目時間一樣困難!你只需要自我意識並且自信。並且了解你的價值,以及你為客戶提供的價值。價格也會根據你居住的國家和客戶所在的國家而有很大差異。也許你住在東歐,而你的客戶來自舊金山。按舊金山的計時工資合理嗎?相對於生活在矽谷的同樣的你,你應該得到微不足道的工資嗎?這是一個值得思考的好問題,但恐怕我沒有答案。 這很困難 這很困難,你可能還沒有準備好。然而,要獨立維持生計,你必須要找到客戶。一直都要找。你有一個可以推薦和介紹你給他們自己網絡的人脈嗎? 你有人們願意為之付費的技能嗎?人們知道你有這些技能嗎? 如果你不感到自信,也沒有一個安全網,那就從事副業開始。為自己的想法做點事。或者從慈善機構和其他能為本地公益組織做的工作開始。 另一個較簡單的開始方式是與當地的開發機構和公司聯繫,他們可能非常希望請承包商而不是全職員工。 值得嗎? 是的。

選擇性無知

一項能夠真正改善你日常生活技能之一就是培養選擇性無知。 選擇性無知是「有意選擇性地忽略分散注意力、不相關、或其他不必要的資訊」的概念。 Tim Ferriss在他有名的《4小時工作周》一書中描述了一個類似的概念,他稱之為「資訊飲食」。但我認為選擇性無知略有不同。你選擇深入研究某個事物,有意無視其他許多事物。 這是在一個許多人和公司都喜歡大聲宣揚並試圖推銷自己敘事的世界中保持理智的方法。 我認為任何人引入選擇性無知到他們的生活中都會受益,但開發人員尤其可以從中受益。 我們與電腦、平板電腦、智能手機一起工作。我們也通過它們進行溝通。今天每個人都在使用這些設備進行溝通。 我們用它們來工作、為工作進行溝通,然後也用它們來做一些個人的事情。 我們使用社交媒體來發展我們的職業生涯,以保持最新動態,形成我們所從事行業的社群。 我整天都在使用Twitter,既發布我正在做的事情的更新,又檢查人們談論什麼,看看我的行業專家在忙些什麼,有哪些趨勢。但同時我總是分心。 我每天都會檢查Hacker News,對於一則我有興趣的文章,可能會有50則我毫不在意的事情。 我應該限制使用這些工具,但我繼續檢查它們,因為有時候會發現真正有價值的東西。 現在我在工作(課程)上我只關注JavaScript和React。其他東西都是分散注意力的東西,我對它們採取選擇性無知。 有時候我會有點偏離軌道,比如我寫了一系列關於Swift和另一個關於Python的文章。但那是有目標的,目標是學習這些語言並為初學者創建一個有用的資源。 我喜歡談論編程和獨立創業/線上業務範疇中的一切事情,當我覺得我能做些什麼來幫助人們深入一個主題時,我就會這麼做。 從前,我擔心自己會錯過什麼。我擔心我走錯了方向(而且事實上,我走錯了很多次方向)。 但如今?並不是那麼擔心了。如今我看到了一條捷徑,而且我絕對不介意忽視那些每個人似乎都在關注的事情。 我見過很多時尚興起又敗落的產品。那麼多技術由技術愛好者推廣,然後被拋棄。 我並不擔心我所做的任何事情在很快的將來會變得不那麼重要。 所以我專注於此。

選擇器 API:querySelector 和 querySelectorAll

使用 querySelector 和 querySelectorAll 訪問 DOM 元素。它們接受任何 CSS 選擇器,所以現在您不再受限於僅通過 id 選取元素 介紹 選擇器 API 基本的從 jQuery 到 DOM API 的範例 通過 id 選取 通過 class 選取 通過標籤名選取 更高級的從 jQuery 到 DOM API 的範例 選取多個項目 通過 HTML 屬性值選取 通過 CSS 偽類選取 選取元素的後代 介紹 過去,jQuery 和其他 DOM 函式庫由於提供了一種在頁面上選取元素的簡單方法而大獲成功。傳統上,瀏覽器僅提供了一種選取 DOM 元素的方法 - 通過其 id 屬性,使用 document 物件提供的 getElementById() 方法。 選擇器 API 自 2013 年以來,選擇器 API 允許您使用兩種更有用的方法: document.querySelector() document.querySelectorAll() 據 caniuse.com 告訴我們,它們可以安全使用,並且除所有其他現代瀏覽器外,甚至在 IE9 上也完全支持,因此除了需要支持 IE8(它只有部分支持)和更低版本之外,沒有理由不使用它們。...

應用於軟體產品的稀缺原則

什麼是稀缺原則?它如何幫助你發展基於軟體的業務呢? 本文是專注於心理學原則的系列文章之一,專門應用於軟體領域。 當你最後一次在網上查找某樣東西時,你所尋找的那個特定商品已經售罄了嗎?這增加了你對該商品的渴望嗎?你過了兩天、一個星期後還會再次查看嗎?你是否訂閱了“重新上架”郵件通知呢? 我肯定有這樣的情況,而且很多次。 當某個特定活動的門票供應短缺時,你會有種感覺,覺得既然即將售罄,那肯定是一個好活動。 如果商品有庫存,我就不會關心,並想“下周我再買”。 如果活動的門票有很多未售出,我會等到當天到現場購票。 有一種迫切感和緊迫感是由我們所謂的稀缺原則所產生的。 公司利用稀缺性來利用這種感覺,這是一種機械的感覺,它始終都有效 - 但是當你意識到它時,你可以控制它。 Booking.com會在酒店的最後一個房間上添加小彈窗,向你展示還有2個人正在查看這間房間-趕緊行動吧! 亞馬遜展示“想要明天收到嗎?在12分鐘內下單”。此外,亞馬遜每天都有在午夜結束的每日特價。每天不同的優惠,但每天午夜結束。幾乎所有的電子商務網站都瘋狂地使用稀缺原則,甚至包括服裝尺碼的供應。 拍賣(想像一下eBay)是基於稀缺原則設計的。一個產品,多個人想要,時間不多,出價更高! Udemy總是以95%的折扣來提供那些原價$189.99的課程,只需要$9.99,只有1天的時間,除非他們每週或定期重複這種促銷(對於消費者來說這非常好,對於可能再也無法以原價銷售的作者來說可能不好)。 我怎麼知道的?因為我在Udemy上發布了一門課程,從這個經驗中,同時通過與其他作者的交談,我意識到人們很少在該網站上以原價購買。 你也可以利用這一原則。 考慮一下時間。 帕金森定理告訴我們,工作量會隨著可用時間而擴大。 維基百科列出了這一定理的幾個推論: 如果你等到最後一刻,完成任務只需要一分鐘 工作會根據我們給予它的時間進行壓縮 在10個小時的工作日中,你需要完成的任務,會比5個小時的工作日多兩倍時間 執行任務所需的時間就是完成該任務所需的時間。 這就是為什麼黑客馬拉松如此有效。你有一個固定的時間,所以你會讓你的所有項目在那段時間內完成。24小時創業挑戰就是一個很好的例子。你有24小時來完成你的目標。 時間是有限的,隨著時鐘的滴答聲,你會感到更多壓力去交付,你會更加努力工作(更聰明地工作),消除分心、拖延,你只是做到了。 稀缺是一股強大的力量。你如何將其應用於你的業務呢? 最常見的情況是上市。你打響一個持續一周或幾天的上市活動。你通知你的用戶(希望你有一個潛在客戶或現有客戶的郵件列表),當你上市時,你有一個折扣,持續整個上市期間。上市期結束後,價格恢復正常。 這給人們一種緊迫感,以獲得折扣價格,這僅僅持續幾天(因此稀缺)。 重要的實踐是在一段有限的時間內重覆這種折扣實踐(例如黑色星期五、產品周年慶或聖誕節)。關鍵是不要經常這樣做,以避免人們總是等待折扣,從不以全價購買。 另一個選項是為上市設定一個截止日期。我計劃在即將開始的Node.js課程中這樣做-我不打折,以全價上市,銷售只開放4天,之後就不能再購買了。在這種情況下,折扣是不適用的,因為它總是全價(你不能說50%折扣並關閉銷售,因為這沒有意義)。 在所有個案中,我讀到的資料都表明,第一天和最後一天是你實現最多銷售量的時間。第一天通常是那些急於從你購買的人購買。最後一天是稀缺原則真正發揮作用的時候。 “明天我將失去上市折扣” “今天是我唯一可以購買的最後一天,然後他們就會從我這裡拿走!“ 這是我在過去幾年中發現的一個問題:你不能只是把一個產品放在那裡等待銷售的發生。上市是你的銷售大部分發生的時刻。重要的是要試圖定期重複上市,你如何做到呢?例如,進行大型版本發佈。每次進行大型發佈時提供折扣。如果你有一個應用程序,你的1.0版本是最好的銷售日。1.1版本是下一個重要的日期。2.0版本可以是你有史以來表現最好的一天。 在上市之前,稀缺性可以以私人測試版的形式出現:輸入你的郵件地址,我會將你加入下一批名單中。我們有很多申請者和有限的容量。稀缺(+社會證明)。 我目前是在一個開放和一個結束日期的情況下上市我的課程。4天的上市活動。在這4天的上市期間之外,你無法購買課程。稀缺。我為什麼這麼做?因為當我上市課程時,我需要100%投入,並確保在接下來的幾個月中,人們可以順利進入課程,消化內容,並向我尋求幫助和指導。 上市會重複出現。我在夏季上市了一門Vue.js課程,我計劃在明年夏季更新它,增加更多內容並重新上市。這將給我時間來發展我的郵件列表,為上市建立期待度,並進行大規模推廣。 除了上市之外,還有幾個想法? 有一個庫存售罄後將不再生產的產品。想想The Boring Company(不是一個)的火焰噴射器。數量限制為20,000個,並在很短的時間內售罄。不過,你不是埃隆·馬斯克,所以要按照你自己的規模進行操作。例如,對於我的在線課程,我有一個可選的指導封裝,我會檢查我分配給人們的項目和練習。由於這是一項耗時的活動,而且我沒有其他人與我合作,因此我對這些封裝的銷售量有一個固定的上限,例如100個。一旦銷售完畢,你就無法再購買了,而且我確保這個數量顯示在登錄頁面上,並隨著銷售的發生而自動更新。 只有獲得邀請的測試版本,儘管這只能在具有幸運的“病毒式”產品上適用,想想Mailbox應用程序。 有一個封閉的註冊過程。人們不能只是付款加入。他們需要加入等待列表,這會增加知覺價值。我看到過幾個這樣的例子。你需要填寫一個表格,告訴他們為什麼你絕對需要加入,然後等待一兩個星期。 無論你的業務模式是什麼,試著想一些自然的方式來融入稀缺性。

應用程式總是需要一個資料庫嗎?

關於資料庫需求的一些想法。也許你需要它,也許不需要。 應用程式總是需要一個資料庫嗎?當然不是。 就像科技中的一切一樣,在每個情況下都沒有一個理想的解決方案。 電腦提供了許多不同的資料儲存方式。最明顯的替代方案是檔案。 一個常見的例子是內容管理系統(CMS)。有些CMS使用資料庫來儲存資料(比如WordPress),有些則更偏好使用檔案來儲存資料(比如Grav或Statamic)。 在這種情況下不使用資料庫意味著更簡單的部署到一個虛擬主機服務上。 但是當處理大量資料時,資料庫絕對是簡化長期生活的好方法。 如果您正在開發一個macOS或iOS應用程式,您可能會決定只需要一個JSON或Plist檔案來處理資料,因為使用者不需要儲存大量資料。 或者可能Core Data(內部SQLite資料庫的封裝)對您來說是最適合的選擇。 總之,它始終是復雜性與便利性的平衡。