使用表單接受使用者輸入並將其存儲到數據庫

本教程是 Laravel 手冊的一部分。從 https://flaviocopes.com/access/ 下載。 現在我們將創建一個表單來向表中添加狗。 為此,首先我們需要創建Dog模型。 什麼是模型?模型是一個允許我們與存儲在數據庫中的數據進行交互的類。 每個模型代表數據庫中的一個特定表,我們使用它來創建、讀取、更新和刪除記錄。 從終端創建模型使用以下命令: php artisan make:model Dog 這將在 app/Models/Dog.php 中創建一個模型: 注意,該類中包含了一個"Eloquent"文件夾下的一些類。 Eloquent 是一個 ORM(對象關係映射器),一個工具,基本上它允許我們使用一個(在這種情況下是 PHP)類與數據庫進行交互。 模型有一個對應的表,我們沒有提及它,但是它是我們之前創建的 dogs 表,因為命名約定是 dogs 表 → Dog 模型。 我們將使用這個模型來將一個條目添加到數據庫。 我們將向用戶顯示一個表單,他們可以添加狗的名字,並點擊“添加”按鈕,狗將被添加到數據庫中。 首先,我們將把我們在表中添加的 name 欄位添加到一個名為 $fillable 的數組中: protected $fillable = ['name']; 像這樣: <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Dog extends Model { use HasFactory; protected $fillable = ['name']; } 模型是一個資源,一旦你定義了一個模型,你以後就可以創建一個新的資源、刪除它、更新它。 現在讓我們來建立一個表單來將新狗添加到數據庫中。 在 routes/web.php 中添加一個新條目: Route::get('/newdog', function () { return view('newdog'); }); 我們創建一個名為 DogController 的控制器:...

使用開發工具控制台和控制台 API

每個瀏覽器都提供了一個控制台,讓您可以與 Web 平台 API 進行交互,並通過打印由網頁中運行的 JavaScript 代碼生成的消息來查看代碼的內部結構。 控制台概述 使用控制台日誌格式化 清除控制台 計算元素的數量 記錄複雜對象 記錄不同級別的錯誤 在導航期間保留日誌 分組控制台消息 打印堆棧跟踪 計算所花費的時間 生成 CPU 配置文件 控制台概述 控制台工具欄很簡單。有一個按鈕可以清除控制台消息,您還可以在 macOS 上單擊 cmd-K ,或在 Windows 上單擊 ctrl-K 以清除控制台消息,第二個按鈕可以激活一個側邊欄,讓您可以按照文本或消息類型進行過濾,例如錯誤、警告、信息、日誌或調試消息。 您還可以選擇隱藏網絡生成的消息,只關注 JavaScript 日誌消息。 控制台不僅是您可以查看消息的地方,還是與 JavaScript 代碼和 DOM 進行交互的最佳方式,並且有許多時候還用於從頁面上獲取信息。 讓我們輸入我們的第一條消息。請注意 > ,讓我們在此處點擊並輸入 console.log('test') 控制台充當了一個 REPL(Read-Eval-Print-Loop) ,這意味著它解釋我們的 JavaScript 代碼並打印一些東西。 使用控制台日誌格式化 正如您所見,console.log('test') 在控制台中打印了 ’test’。 在您的 JavaScript 代碼中使用 console.log 可以幫助您調試,例如打印靜態字符串,但您還可以將變量作為參數傳遞給它,該變量可以是 JavaScript 原生類型(例如整數)或對象。 您可以將多個變量傳遞給 console.log ,例如: console.log('test1', 'test2') 您還可以通過傳遞變量和格式指定符來格式化漂亮的短語。 例如: console.log('我的 %s 有 %d 歲', '貓', 2) %s 將變量格式化為字符串 %d 或 %i 將變量格式化為整數 %f 將變量格式化為浮點數 %o 用於打印 DOM 元素 %O 用於打印對象表示形式 示例:...

房車生活: 電力

本文章屬於我的房車生活系列。請查看第一篇文章 在房車生活中,電力是一個非常重要的話題,因為你房車上的能源有限,你需要確保你擁有足夠的能量,並且在需要時能夠獲得更多的能源。 大多數房車都有兩個並行的電力系統,一個是230伏特系統,另一個是12伏特系統。 注意:我住在意大利,我們的電網是230伏特。你所在的國家可能不同,但概念是相同的。當你讀到230伏特時,請代表「你家里的電網」。 沒有連接電網時,12伏特系統可以令整個房車運作。 當你連接到電網時,230伏特系統就會啟動。在這種情況下,房車上的電子裝置會負責充電,而且在某些情況下,230伏特系統可以運行冰箱,如果是三能源冰箱的話。 當房車靜止時,三能源冰箱運行使用的是液化石油氣(是的,驚訝:液化石油氣,一種燃料,也可以冷卻!),在行駛時則使用12伏特,連接到電網時才使用230伏特。我以前使用過這種冰箱,現在換成了只用12伏特運行的壓縮機冰箱,我再也不會回頭。真的太好用了。 另外,一些房車還配備混合能源系統,可以從電池中產生230伏特的電力。這是通過一種名為功率逆變器的工具實現的。 電力系統主要需要用於以下12伏特直流設備的供電: 照明 12伏特壓縮機冰箱 水泵 在寒冷時供暖系統 然後還需要用於充電工具。作為開發人員,我隨身攜帶: iPhone iPad Kindle MacBook Pro 我通過在房車上安裝了一些USB插座來為前三者充電。我還可以將MacBook Pro連接到USB插座,但是它並不會充電。它只能保持當前的電量,這在大多數情況下都是可以接受的。 為了充電MacBook Pro,我使用了230伏特的功率逆變器(我使用的是純正弦波1500瓦的逆變器),這樣我就可以使用原裝充電器為MacBook Pro充電。 另一方面,MacBook Air可以從USB端口完全充電,這也是我喜歡2018年的MacBook Air的原因之一。它電池續航力很久,無噪音,沒有發熱問題……但是我也喜歡16英寸MacBook Pro多出來的3英寸屏幕。 有時我還會使用這個230伏特功率逆變器來使用吹風機。和吉他放大器,這樣我就可以在森林中過上搖滾樂手的生活,彈奏我心愛的特萊卡斯特吉他🎸。 使用我的配置,夏天我從來沒有出現過任何問題。冬天或者陽光不多的季節則出現過一些問題。 在過去的7年里,我使用了兩個100安培的AGM電池來為我的12伏特系統供電。它們非常適合我的需求。 在夏天,一個100瓦的太陽能電池板可以幫助我在房車上充電,但是在冬天幾乎沒有用處。 在冬季旅行期間,我經常會停在一個露營地或者房車區充電。這主要是由於水問題(我經常去寒冷的地方),我會在談到水的時候進一步解釋。 最近,我將這兩個AGM電池系統更換為一個單一的100安培鋰鐵鋰電池(LiFePo4電池)。在冬天,這徹底改變了一切。 你需要知道,由於AGM電池的放電曲線,你不能使用它的全部功率。隨著使用,供應給設備的電壓很快就會減少到這些12伏特設備無法運作的程度。 我們可以使用AGM電池的標稱功率的最多30%,因此,對於一個100安培的電池來說,我們實際上只有30安培。 LiFePo4,通常被稱為鋰電池,是非常不同的。一個100安培的LiFePo4電池可以使用其功率的80%,而且不會出現任何問題。這是因為即使在電量非常低時,其放電曲線仍然能夠保持較高的電壓。 最終,一個單一的100安培LiFePo4電池提供的能源比2個100安培的AGM電池還要多。這就是為什麼我用一個LiFePo4電池取代我原來的兩個AGM電池的原因。 這不是唯一的好處。 另一個優點是LiFePo4電池充電非常快。它能吸收所有能從太陽能電池板或者現在我最喜歡的能源來源 - 引擎上得到的能量。 在我的系統中,駕駛過程中,它可以從發電機接收多達75安培的電流。這是從引擎中獲得的100%免費能量,否則這些能量將被浪費。 我多次進行了測試,一個零下28攝氏度的夜晚,燈光、冰箱、充電手機和供暖系統以100%運行,我將電池放電到了其容量的70%。次日,我啟動了引擎,開著車繞著停留的城鎮行駛了40分鐘,電池恢復到了100%的電量。 在這樣的夜晚,只使用了電池充放電容量的30%。供暖系統整夜都要以100%的功率運轉。在普通的夜晚中,當供暖系統打開時,可能只會消耗電池電量的15%。而在夏天,只有冰箱打開時,消耗的電力更少。我將在後面解釋供暖系統。 這種自主性非常令人驚嘆。這是真正的獨立。我也完全不需要去連接露營地的電力,或者在出門旅行之前在車庫充電到100%。現在這是一個100%完全獨立的系統。如果發生了一些「行屍走肉」的事件,或者像我們在2021年2月聽說的德克薩斯州冬季風暴那樣停電,我只需要上車就能生活。 哦,另一個好處是重量。重量是一個重要的話題。這輛車的額定重量是3.3噸,沒有附加負載時重約2.9噸。所以我有大約400千克的載重空間。相比AGM電池,100安培的鋰電池重量要輕得多。這個特定的重量約為14千克,而不是30千克。此外,還記得我以前有兩個AGM電池,這使得整個系統的重量只有14千克,而不是60千克。非常酷。 這個系統非常安全,它有自己的控制系統,可以簡單地更換AGM電池。如果你有興趣,這就是我安裝的電池:[https://www.ndsenergy.it/prodotto/3-lion-lithium-battery/?lang=en]。通常,當你開始研究這種電池時,你可能會花很多時間琢磨,而且你挖得越深,你就越感到困惑。有很多不同種類的電池和配置。我使用的這個系統是預配置的,他們提供非常詳細的指導,這讓我有信心自己安裝,這也是一個非常有趣的項目。在這個過程中,你可以學到很多東西(一定要做好研究,如果不做100%正確,這些事情可能非常危險!)。 我不得不更換太陽能電池板控制器,以符合LiFePo4電池的充電曲線,我從Victron Energy購買了他們的230伏特電池充電器,即使我從未需要從230伏特充電電池。 我會推薦LiFePo4電池給任何人嗎?是的,因為它完全改變了你對電力的感受。你根本不需要擔心。 現在,高檔房車開始在出廠時安裝這些電池了,但大多數情況下,你需要事後安裝。直到每一輛房車都有這些電池作為默認配置,這只是時間問題。 對於我來說,一個100安培的電池和一個100瓦的太陽能電池板已經足夠了,因為我不會在同一地方停留超過2天,所以我不需要在電池中儲存大量的能量。在緊急狀況下,我只需要開動引擎,電池就能以40安培的充電速度充電,即使我不在行駛(但開車時充電速度更快)。 這完全取決於你的需求。我見過有人在車頂安裝500瓦的太陽能電池板,或者安裝300安培的鋰電池。在那種情況下,也可能有必要安裝電磁灶(我用液化石油氣)。 我將我的主要設備——16英寸的MacBook Pro關機狀態下,從0%充電到100%只需要1小時30分鐘,使用的鋰電池的電量約佔11-12%。充電時的電流約為6安培,包括功率逆變器本身的耗電量,約為1安培。 然後,一旦完全充電,MacBook Pro的功耗約為4安培。 MacBook Air對於旅行來說更好。它更輕巧,體積更小。它只需要鋰電池的7%的電量即可將電池充滿。 在陽光充足的日子裡,我從太陽能電池板獲得的能量超過我工作時的能量消耗。這意味著能量平衡始終是正向的,因為我在旅途中很少有超過5個小時的電腦工作時間。 如果在多雲的日子裡或冬天用光了電,我可以打開引擎,因為我已經必須去其他地方,或者只是稍微充電一下電池。或者我去露營區,在那裡我有更多自由的事情可以做(我將在另一篇文章中詳細解釋)。 在緊急情況下,我還有一個50000毫安時的行動電源可以讓Mac整天運行。

服務與產品

公司可以分為兩大類別:服務公司和產品公司。 這兩者之間的差異是令人驚人的。 在我最感興趣的創業公司中,服務公司基本上就是自由職業者。自由職業者就像是被雇用的槍手,可以為其他公司或個人執行工作。其他公司或個人可以聘請這個人來完成他們擅長的事情。 相比之下,產品公司則銷售產品,這些產品可以很容易且廉價地複製,其他公司或個人可以購買這些產品。 這是第一個差異。由於服務公司提供的是服務,這種服務無法輕易地擴展。如果你是一個自由職業者,如果一個工作需要8個小時,你一天只能完成一個工作(假設你每天工作8個小時)。如果你打算每天工作的話,你每個月只能完成30個工作,如果你想完成更多的工作,你就必須雇用其他人。 而對於產品公司而言,你只需要創建產品一次,然後可以無數次地銷售它。你可以每天銷售同一個產品30次,而不是每個月30次,甚至每天銷售1萬次。 這給你帶來了第一個自由。當你的產品達到產品/市場配對時,你可以從時間擴展中受益。你的收入不再取決於你花在工作上的時間。 這對定價也有副作用。由於你只有有限的時間來提供服務,所以你必須對其收取更高的費用。這也意味著較少的人可能會決定購買該服務。產品可以更加擴展,對於客戶而言成本更低,從而推動規模經濟的實現。 例如,如果我決定進行一個指導計劃,我可以有10個學生每週指導他們4小時。這是一份全職工作,每週40小時。如果我每個月需要賺取6000歐元,對於歐洲標準來說,這是一個較低的軟件開發人員薪水(假設50%用於稅收),我必須向每個人收取600歐元。如果我創建了一門課程,那就是一個產品,我只需收取60歐元,然後每個月向100人銷售。 現在我正在幫助更多的人,將我的影響力增加了10倍。 我只需要創建課程一次,然後無需額外工作即可銷售。這意味著我不需要每個月花160小時指導,而可以專注於創建下一個產品。 作為一名雇員,你只有一個客戶:你的老闆。而使用服務時,你有10倍的客戶,但每個客戶都是一位老闆。他們支付更多,並且對你的服務期望更高。而對於產品來說,你有100倍的客戶,但沒有一個人認為自己是你的老闆。 我總是更喜歡有1000個人給我支付一小筆錢,而不是有10個人支付一大筆錢。如果他們不滿意,我可以輕鬆地退還錢款,而在一個沒有得到認可的服務上退還錢款很難,因為這可能意味著你這個月無法去高級壽司餐廳吃飯。所以你往往會提供超出期望的服務(並超時工作)。 SaaS(軟件即服務)公司是產品公司。你建立一個產品,圍繞該產品進行營銷,如果它好,人們就會註冊。當然,這並不容易,但我聽過很多關於SaaS的好故事。有些人在很短的時間內從零增長到每月5000美元的收入,到達每月1萬美元和2萬美元只是時間問題,取決於低流失率和營銷策略。 另一種混合方法是產品化服務:你以標準化的方式打包你的服務,但仍然需要手動執行,只是現在你需要投入的時間很少,因為服務始終是相同的。 我認為,在初期,使用服務或產品化服務可以更快地實現收入。我在2008年開始提供服務。當時我沒有人脈關係或內部渠道,所以我開始在自由職業者網站上競標,後來當我的聲譽建立起來後,這成為了一個內部渠道,我開始直接收到客戶的請求。 我能夠維持生計,但那不是我的終點。所以我逐步嘗試轉向產品,先是通過課程,然後是Web應用程序、移動應用程序、CMS插件等。直到幾年前,我的程式設計課程讓我完全過渡到了100%的產品收入。 但那是值得付出的努力,我並不後悔這些年來的嘗試。

物件的 hasOwnProperty() 方法

在本文中,我們將介紹 JavaScript 中物件的 hasOwnProperty() 方法。 hasOwnProperty() 方法被調用在一個物件實例上,並接受一個字串作為參數。如果該物件有一個與參數字串相同名稱的屬性,它將返回 true。否則,它將返回 false。 以下是一個例子: const person = { name: 'Fred', age: 87 } person.hasOwnProperty('name') // 返回 true person.hasOwnProperty('job') // 返回 false

物件的 propertyIsEnumerable() 方法

在本篇文章中,我們將介紹 JavaScript 的 propertyIsEnumerable() 方法,該方法可以用於檢查物件的屬性是否可被列舉。 此方法需要在物件實例上呼叫,並接受一個字串作為參數。如果該物件擁有一個名稱與參數字串相同的屬性,且該屬性是可列舉的,則返回 true;否則返回 false。 以下是一個示例: const person = { name: 'Fred' } Object.defineProperty(person, 'age', { value: 87, enumerable: false }) person.propertyIsEnumerable('name') // true person.propertyIsEnumerable('age') // false 這個示例中,我們定義了一個名為 person 的物件,該物件擁有一個可列舉的屬性 name,以及一個不可列舉的屬性 age。透過呼叫 propertyIsEnumerable() 方法,我們可以檢查 person 對象的屬性是否可列舉。結果顯示 name 可以被列舉,而 age 不可以。

社會證明原則

什麼是社會證明原則?它如何幫助你發展業務? 本文是一系列關於心理學原則的文章之一,特別針對獨立開發者和創業家。 在這充滿機會和選擇的世界裡,我們可以使用一個指導原則來推動自己做正確的事情,那就是社會證明。 我們是群體性動物,自古以來,看別人做什麼然後跟隨他們是一種明智的選擇,大多數時候是沒錯的。下意識認為做一個受歡迎的選擇不會出錯。 “至少你可以責怪別人,對吧?做別人做的事情,你不想被逐出部落,洞穴外面很危險” 這就是社會證明:觀察與某事有關的信號,與其他人有關。 我們生活在一個世界中,公司、產品和應用程序不斷向我們發送社會證明的信號。 每一個可以購買東西的網頁上都有推薦書,對產品或服務作出了評價,你可以信任這些評價。 即使只有一個可信的推薦書,也可以非常有效: Facebook向你顯示一個頁面有多少個喜歡,一個人有多少個朋友。 Instagram和Twitter向你顯示一個人或公司有多少個追隨者。 網頁上很高興地展示了人們在社交媒體上分享它們的次數。 大量訂閱通訊的人高興地告訴你他們已經有多少人了 - 你為什麼不加入呢? 如果你在選擇餐廳之前查過TripAdvisor,你就知道其他人的評論(即使你不認識他們)對你的選擇可以產生非常強大的影響。 這同樣適用於Booking.com、Airbnb、Amazon、App Store等等。 Airbnb到處都放著這些信任的信號:評論、評級、“超級房東”。Booking.com尤其告訴你在過去24小時有多少人預訂了這家酒店。他們相信我們,選擇了這家酒店。它是有信任的,我們是有信任的,你也要信任我們。 你也可以在這些大平台之外做到這一點。以下是Pieter Levels在其Make Book落地頁面上添加的社交信號的示例: 另一個重要的社會證明信號是那些在其頁面上添加了與產品(或服務)有某種關聯的公司標誌的落地頁面。如果你被《紐約時報》引述,務必讓你的用戶知道 - 這是一個非常強大的社會信號:一個機構已經“審查”過你並決定談論你。我信任他們,所以我應該信任你。 當你與更受信任的公司聯繫在一起時,無論你與之聯繫的原因是什麼,信任都會傳遞給你。 在這個例子中,Fastspring與使用它的品牌進行關聯: 以及與它集成的產品: 如果你開發了一個與郵件軟件集成的WordPress插件,可以包括所有這些熱門應用程序的標誌,如MailChimp、ConvertKit等等。人們知道這些品牌,現在將你與它們聯繫在一起。 我提到過那些高興地告訴你他們已經有多少人的人。這是一種非常常見的模式。你更有可能加入一個有50,000人的通訊的郵件列表,而不是一個有10人的郵件列表。對吧? 我也看過這應用於銷售。已經有2000人購買了這門課程。它是可信的,你為什麼不買呢? Gumroad告訴你有多少人使用它,以及他們在平台上的成功: Nomadlist告訴你如果你加入,你會在裡面找到多少人: 這個數字也可以與產品或服務的稀缺性相結合。我可能對某個產品或服務有固定的可用性。如果你在你的落地頁面上加上這個數字和倒計時,你就做了兩件事: 人們知道其他人已經購買了它 人們感到有緊迫感,必須在它賣完之前購買 當它賣完時,它仍然是一個社會信號:很多人購買了那個高級、有限的選項。你最好趕緊購買其他可用的選項(或者下次更快點,註冊以在下次發布時收到通知)。 社會信號也能豐富你的個人介紹:“這個人是誰?”這是許多人在社交媒體或你的網站上遇到你時會有的問題。你的“關於我”簡介應該能夠快速傳遞信任。學歷(或其他類型的認證)是一個強大的社會信號:一個機構已經驗證並認證了這個人的你那張紙是有價值的,值得信賴。

非可打印ASCII字符列表

這是一個包含所有非可打印ASCII字符的表格 DEC HEX 字符 0 0 空字符 (NULL) 1 1 标题開始字符 (SOH) 2 2 文本開始字符 (STX) 3 3 文本結束字符 (ETX) 4 4 傳輸結束字符 (EOT) 5 5 詢問結束字符 (ENQ) 6 6 確認字符 (ACK) 7 7 哔哔声字符 (BEL) 8 8 退格字符 (BS) 9 9 水平制表字符 (HT) 10 A 換行字符 (LF) 11 B 垂直制表字符 (VT) 12 C 換頁字符 (FF) 13 D 歸位字符 (CR) 14 E 輸出字符 (SO) 15 F 輸入字符 (SI) 16 10 數據連接轉義字符 (DLE) 17 11 設備控制字符1 (DC1) 18 12 設備控制字符2 (DC2) 19 13 設備控制字符3 (DC3) 20 14 設備控制字符4 (DC4) 21 15 否定確認字符 (NAK) 22 16 同步字符 (SYN) 23 17 傳輸結束塊字符 (ETB) 24 18 取消字符 (CAN) 25 19 媒介結束字符 (EM) 26 1A 替換字符 (SUB) 27 1B 轉義字符 (ESC) 28 1C 文件分隔符 (FS) 右箭头 29 1D 組分隔符 (GS) 左箭头 30 1E 记录分隔符 (RS) 上箭头 31 1F 單元分隔符 (US) 下箭头

非常悠閒的生活:我該去哪裡?

我應該開著我的房車到哪裡去呢?這是個很好的問題。 實際上有兩種問題。 「我想要去哪裡?」以及「我能去哪裡?」 我們先從能去的地方開始談。當然你可以去到有道路的任何地方。但是停車卻完全取決於你所造訪的國家的法律。 幾乎所有國家都禁止野營。在我們的國家,義大利,只要在地上有任何不是車輪的東西,它就是野營行為。如果你的窗戶開在車外或是你的車排放出任何尾氣,你也是要受到罰款的。 如果你做了這些事情,被抓到的話就有可能面臨罰款。 你可以立刻發現,如果你是有一台小型房車,那麼生活會變得相當不可能。你至少要有一台中大型的房車。 一些熱門景點或觀光地區的停車場也可能是禁止停車的,可能是因為有設置了2.2米的柵欄,阻止你進入,或是單純地不讓停車。 很多地方都有專為房車而設的區域,有些是免費的,有些是收費的。在其他地方,你則有露營區。 我大多數時候不喜歡去露營區。有時候露營區的地理位置非常好,這時就沒有問題。但如果不好,或是太擁擠,那麼露營區就不是我最喜歡的地方。 我更多地在冬天使用露營區,原因是為了獨立獲取能源以及使用水設施。 現在讓我們來談談我想要去的地方。 我住在阿爾卑斯山,所以對我來說,最佳的地方是一個停車場,位於山路的盡頭。到了晚上,停車場變得空蕩蕩,你可以獨自一人,仰望星空,度過安靜的夜晚。理想的情況是在一些樹蔭下,讓狗狗們在早上散步後能休息,我可以在房車上工作。 對於登山區,我並不太擔心安全問題。這種感覺來自於生活在相對安全的環境中的特權。人們可能害怕獨自一人在樹林裡。而我卻害怕城市。如果我靠近一個城市,我會從房車裡面的門上全部上鎖,我甚至安裝了一些特殊的鎖。我擔心有人可能會闖進房車偷錢或是其他東西。 這種事情在我在巴塞羅那的一天就發生過。 在山上,那是我的家。沒有什麼需要擔心的。沒有危險的野生動物,也就是說動物是不危險的。新聞上從來沒有報導過「動物殺死人」。我們只會聽到「人殺人」的消息。這很令人傷心,但卻是真實存在的事實。 當然我也喜歡大海。原則是一樣的:越遠離和孤立的地方越好。在義大利和地中海大部分地區很難找到允許在附近留宿的海灘停車場,但有時你可以找到一些寶藏。 哦,我沒有提到網路的事情。 任何可能很棒的地方都必須通過4G無線網路獲得網路接入。由於我的工作、旅行計劃、娛樂和其他方面都完全依賴互聯網,不幸的是,如果那個地方沒有網路,我只能在那裡短暫停留。

前端和後端網頁開發的差異

在這篇文章中,我想從概念上幫助你從前端轉向後端,以 Web 開發的背景來看。 首先,讓我們來定義什麼是前端。前端是我們用來識別瀏覽器內部的程式設計的術語。我們也稱之為客戶端網頁開發。 在前端方面,您需要考慮的是創建並分發在客戶端機器上運行的應用程序,這可以是筆記型電腦、桌上型電腦或移動設備。你建立了一個在每個客戶端的瀏覽器中運行的東西。 在後端方面,您需要設計並構建一個在單個服務器上運行的應用程序(起初),每個客戶端都可以訪問該應用程序。該應用程序在服務器上運行,這是一個由您控制的環境,然後您可以使用服務器端渲染應用程序來向瀏覽器發送應用程序,或者創建一個僅向客戶端發送 JSON 數據的 API(最近非常常見,尤其是與 React、Vue 等前端框架/庫配對使用)。 您已經可以看到這裡有一些重疊。後端可以用於為在瀏覽器中運行的前端應用程序提供服務。 HTML、CSS、JavaScript、圖片、動畫、React、Vue、Svelte、CSS-in-JS、前端的狀態管理、性能優化,所有這些主題(還有更多!)都與前端編程密切相關。 某些應用程序只需要前端部分。例如,我的網站並沒有後端。它是使用 Hugo 生成的靜態網站,我在上面做的所有工作都被視為前端編程:CSS、標記、用於搜索的 JavaScript 等等。 前端編程有自己獨特的一套挑戰:例如,瀏覽器對功能的支持。或者在低端設備上應用程序的性能。構建單頁應用程序。 後端開發與前端完全不同。首先,您退出了瀏覽器環境,這一方面是自由的,但也可能讓人不知所措。 為什麼?原因是您有更多的選擇。 在瀏覽器中,編程語言的選擇總是 JavaScript。或者一種編譯為 JavaScript 的語言,如 TypeScript、Elm 等。 在後端,您可以使用任何您想使用的框架,我的常用選擇是 Node.js,因為它基於 JavaScript,所以我可以成為精通一種編程語言的專家,並且可以在前端和後端使用 JavaScript。 但是您也可以使用以下框架: 基於 Python 的 Django 基於 PHP 的 Laravel 基於 Ruby 的 Rails 基於 Elixir 的 Phoenix 基於 TypeScript 的 Deno 等等,還有其他許多選擇,包括面向企業的生態系統,如 Java 和 .NET。 我甚至還沒提到 Go 和 Rust 這兩個很好的選擇。 這可能是後端編程的最大優勢:您可以在使用的程式設計語言方面有很多選擇,因此可以選擇您喜歡的語言進行開發。但如果您不確定自己喜歡什麼,這也可能導致「分析麻痺」。 在後端,我們不必面對前端需要面對的問題。我經常聽到的一個說法是前端開發變化太快。每天都會冒出新事物,並且最好的工具也會從一個月到另一個月改變。這並不是虛假的陳述。相比之下,後端在知名度高且成熟的環境和工具中顯得更加低效,一個編寫良好的後端可以在多年內仍然感覺現代化,而對於前端來說,則無法達到同樣的效果。 在後端,我們有自己一套問題,當然還有其他議題。例如,如何在資料庫中存儲數據。如何選擇適合的資料庫。SQL vs NoSQL。微服務 vs 單片應用。如何部署我們的應用程序以及何處進行部署。如何處理更高的流量。如何安全地處理數據和請求。如何測試和處理錯誤處理。如何選擇正確的架構。 然後,我們還有與 DevOps 重疊的主題,例如如何使用 Docker 和 Kubernetes,如何建立持續集成和持續交付工作流程,如何處理 Linux、基礎架構和伺服器級網絡等問題。取決於您所在的公司和團隊,您可能需要準備應對這些議題。...