這兩天在讀Peter Levels的書籍《The Indie Maker Handbook》,第二章Build讓我受益匪淺,幾個(gè)問答觀點(diǎn)分享給大家。原文用了GPT4做翻譯,排版會(huì)有個(gè)別錯(cuò)誤的地方,但不影響理解:
一、要構(gòu)建網(wǎng)站,該學(xué)習(xí)編程嗎?
Peter Levels:是的,我建議你學(xué)。
現(xiàn)在學(xué)習(xí)變得越來越容易。對(duì)新手來說,學(xué)習(xí)編程似乎很難,因?yàn)槿藗兊姆椒ㄊ清e(cuò)誤的。你可能會(huì)騎自行車,對(duì)吧?當(dāng)你開始“學(xué)習(xí)騎自行車”時(shí),你有沒有想過你會(huì)成為蘭斯·阿姆斯特朗?沒有。而你可能也不是。你只是會(huì)騎,但你沒有參加世界錦標(biāo)賽。
學(xué)習(xí)編程也是一樣,這并不意味著你必須很棒,或者甚至很擅長(zhǎng)。只要知道一些基礎(chǔ)就可以把東西拼湊起來。當(dāng)我編程時(shí),每天我都要谷歌如何做我不知道的事情。編程是持續(xù)學(xué)習(xí)的。
你可以問任何程序員,他們都會(huì)給出相同的答案。好消息是,如今互聯(lián)網(wǎng)上有如此多的信息。幾乎你面臨的每一個(gè)問題,都有人在你之前遇到過。
如果你在尋找“學(xué)習(xí)編程”的方法,我會(huì)說不要選擇課程、訓(xùn)練營(yíng)或?qū)?。它們通常需要很多錢,而且它們不會(huì)教你編程的核心:自己解決問題。這是最大的技能?;◣讉€(gè)小時(shí)到幾天的時(shí)間來讓某事工作。不要放棄,繼續(xù)嘗試。
如果你想學(xué)習(xí)編程,我的建議是:嘗試用 HTML、CSS 和一些 JavaScript 構(gòu)建你的想法,看看你能走多遠(yuǎn)。只要谷歌每件你不知道的事情。從“如何制作一個(gè) HTML 頁(yè)面”開始。然后是“如何在 HTML 中使文本變色”。然后是“如何在 HTML 中制作一個(gè)按鈕”。等等,繼續(xù)搜索。
你會(huì)驚訝于你能走多遠(yuǎn),這就是我(和許多其他人)學(xué)會(huì)編程的方式,自己弄清楚。
二、工具
Peter Levels:不要糾結(jié)于選編程語言,使用對(duì)你來說學(xué)習(xí)或工作最容易的工具。
最高優(yōu)先級(jí):使用你已經(jīng)知道的東西,看看你能走多遠(yuǎn)。如果你開始達(dá)到它的限制(對(duì)于大多數(shù)現(xiàn)代語言來說似乎很難),再轉(zhuǎn)向一種語言或框架。
基本的輕量級(jí)技術(shù)棧是一個(gè)前端(客戶端),使用 HTML、CSS 和 JavaScript 構(gòu)建。然后你使用 JavaScript 通過發(fā)起網(wǎng)絡(luò)請(qǐng)求與服務(wù)器通信。這個(gè)請(qǐng)求被你的后端(服務(wù)器)接收。這個(gè)
后端可以運(yùn)行任何東西。我使用 PHP,但如今你也可以在服務(wù)器上運(yùn)行 JavaScript(例如使
用 Express 或 Node.JS)。你出于安全原因?qū)⒑蠖耍ǚ?wù)器)與前端(客戶端)分開,因?yàn)槟悴幌M屢粋€(gè)用戶可以看到整個(gè)用戶數(shù)據(jù)庫(kù),對(duì)吧?后端代碼連接到你的數(shù)據(jù)庫(kù)(SQLite、MySQL 或 PostgreSQL 都很棒)。
特別是 SQLite 很棒,因?yàn)樗恍枰惆惭b很多東西,當(dāng)你創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)時(shí),它只是一個(gè)文件。它非常便攜。你可以將數(shù)據(jù)庫(kù)文件從服務(wù)器復(fù)制到服務(wù)器。有關(guān) SQLite 的誤解是它會(huì)很慢或不夠可擴(kuò)展。那是胡說。在許多情況下,SQLite 現(xiàn)在比文件系統(tǒng)本身還要快。
癡迷于工具、花大量時(shí)間學(xué)習(xí)工具,只會(huì)讓你迷失方向、分散了注意力。做出產(chǎn)品、并發(fā)布、盈利是你的第一目標(biāo)。
三、如何不寫代碼,來構(gòu)建應(yīng)用網(wǎng)站
Peter Levels的觀點(diǎn):不會(huì)編碼意味著你可以使用現(xiàn)成的工具快速原型設(shè)計(jì),而不會(huì)迷失在龐大的代碼庫(kù)中。
如果你真的不想學(xué)編碼怎么辦?我會(huì)展示你如何使用現(xiàn)成的工具構(gòu)建一個(gè)基本的原型。你將能夠制作一個(gè)登陸頁(yè)面,讓用戶輸入數(shù)據(jù),操作和處理數(shù)據(jù),向他們收費(fèi),給他們發(fā)送消息,并為你的承包商(或你)添加一個(gè)任務(wù),而不需要編寫一行代碼。
我會(huì)討論每個(gè)部分使用的工具,并給出一些例子。這些工具顯然可能會(huì)變化,可能已經(jīng)過時(shí)。如果是這樣,一般概念仍然存在。我會(huì)給你一些指導(dǎo)。由你來連接所有東西并執(zhí)行。要有創(chuàng)造力
①構(gòu)建登陸頁(yè)面
要讓用戶進(jìn)入,你需要一個(gè)登陸頁(yè)面。幸運(yùn)的是,現(xiàn)在有現(xiàn)成的網(wǎng)站構(gòu)建器,提供了可以定制的模板。最著名的之一是 Squarespace。更近期的獨(dú)立網(wǎng)站制造商是 Carrd。其他的有 Tilda 和 Wix。如果你需要更多自由度以及稍后添加自定義代碼的能力,嘗試 WordPress,它允許你寫 PHP或 JS 來定制你的網(wǎng)站并輕松添加功能。
你會(huì)希望使用你的登陸頁(yè)面來解釋你的產(chǎn)品或服務(wù)。并從那里引導(dǎo)他們走向所謂的行動(dòng)號(hào)召(或 CTA)。你想從用戶那里得到什么?你想保存他們的姓名和郵箱嗎?你想讓他們付錢給你嗎?在頁(yè)面中心頂部添加一個(gè)大的彩色按鈕作為行動(dòng)號(hào)召將引導(dǎo)他們點(diǎn)擊那里。當(dāng)他們點(diǎn)擊時(shí),將他們鏈接到下一部分(在大多數(shù)情況下意味著,從用戶那里收集數(shù)據(jù))
②從用戶那里收集數(shù)據(jù)
你需要一個(gè)表單,用戶可以在其中輸入他們的數(shù)據(jù)。這可能是他們的姓名、電子郵件地址、電話號(hào)碼或任何你需要的信息。有很多工具可以創(chuàng)建表單并將數(shù)據(jù)直接發(fā)送到你的數(shù)據(jù)庫(kù)或電子郵件。Typeform 是一個(gè)流行的選擇,因?yàn)樗脩艚缑嬗押?,看起來很現(xiàn)代。Google 表單是一個(gè)更基本的選擇,但它是免費(fèi)的,并且可以很好地完成工作。你可以將這些表單嵌入到你的登陸頁(yè)面中,或者你可以在行動(dòng)號(hào)召按鈕上設(shè)置一個(gè)鏈接,當(dāng)用戶點(diǎn)擊時(shí)會(huì)將他們帶到表單頁(yè)面。確保你的表單簡(jiǎn)潔明了,不要要求用戶提供太多信息,否則他們可能會(huì)失去興趣。
③處理和操作用戶數(shù)據(jù)
在你獲得用戶數(shù)據(jù)之后,你可能想要對(duì)其做些什么。比如保存它,或者處理它然后保存,或者處理它并作為下一步驟做些事情。這就是 Zapier 出場(chǎng)的時(shí)候。它就像魔法。
Zapier 是一個(gè)網(wǎng)絡(luò)應(yīng)用程序,它允許你將大多數(shù)你知道的網(wǎng)絡(luò)應(yīng)用程序與其他應(yīng)用程序連接起來。它就像中間的膠水。它可以簡(jiǎn)單地傳輸數(shù)據(jù)(或數(shù)據(jù)的一部分),比如從 Google 表格、收到的電子郵件或 Stripe 交易中獲取的數(shù)據(jù),并發(fā)送到另一個(gè)服務(wù)?;蛘咚梢栽趥鬏斶^程中處理和改變數(shù)據(jù),它甚至支持基本的 JavaScript 代碼:你可以創(chuàng)建自己的流程,讓它們做任何你想讓它們做的事情。并且它們會(huì)永久運(yùn)行。這很像你在服務(wù)器上有的定時(shí) cron 作業(yè),但同樣,不需要你自己編碼。有很多預(yù)制的流程(所謂的“zaps”)。比如從 Google 表單獲取數(shù)據(jù)或?qū)?shù)據(jù)發(fā)送到 Google表單:或者從 Typeform 獲取數(shù)據(jù)并將其發(fā)送到 Dropbox:
④聯(lián)系用戶
在你處理了數(shù)據(jù)之后,你可能想要聯(lián)系你的用戶。幸運(yùn)的是,Zapier 支持 MailChimp,這意味著你現(xiàn)在可以自動(dòng)發(fā)送電子郵件:或者你可以讓 MailChimp 做點(diǎn)什么。反過來,MailChimp 也有高級(jí)的內(nèi)置自動(dòng)化功能:這意味著你想要在用戶訪問你的網(wǎng)站并輸入數(shù)據(jù)后做的任何事情都是可能的。比如在他們注冊(cè)后 14 天發(fā)送一封帶有另一個(gè)網(wǎng)絡(luò)應(yīng)用鏈接的電子郵件?;蛘咴谒麄冏?cè)后的一小時(shí)內(nèi)發(fā)送一張自動(dòng)化的 PayPal 發(fā)票。不僅僅是電子郵件。你可以通過電話 API 服務(wù) Twilio 向用戶發(fā)送短信或機(jī)器人語音電話。然后你甚至可以保存他們?cè)陔娫捝系幕貞?yīng)。并且反過來,將其發(fā)送到另一個(gè)網(wǎng)絡(luò)應(yīng)用程序!
⑤為承包商制定任務(wù)
如果你需要一個(gè)人來處理一些數(shù)據(jù)或與用戶合作怎么辦?將它發(fā)送到生產(chǎn)力軟件 Trello,在那里你將其添加為你的承包商要執(zhí)行的待辦事項(xiàng)列表:
⑥向用戶收費(fèi)
最重要的部分之一實(shí)際上是讓用戶付錢給你。直到最近,這還是保留給那些能夠?qū)⒅Ц哆壿嬀幋a在一起的人?,F(xiàn)在不再是了。網(wǎng)站建設(shè)工具 Carrd 支持 Stripe Checkout,這意味著你只需連接你的 Stripe 賬戶,就可以在你的登陸頁(yè)面上接受支付。
評(píng)論0