我希望這個網站的搜尋能力比 Twitter, PTT 好,這就不是 nice to have 了,而是 essential。
我希望這個網站的設計風格給人溫暖的感受。
基於以上種種,我今天得到的想法是,這個專案的設計應該是「與其追求前後端分離,不如單體多模」。
我指的「前後端分離」前端是那種 fat client 式的前端,地位等同於 App,也就是很簡單就可以化身為 PWA 的那種前端,而不是為了 SEO 搞的 SSR 那種夾在中間,角色尷尬的前端。看到 SSR 享受不到 token authentication 的優點,我就覺得一整個阿雜,雖然顧及了 SEO friendly,卻很難喜歡這樣在我看來疊床架屋的架構。這樣做的好處只剩下「前後端開發者各司其職」,就只是這樣而已,我覺得。
如果要這樣,不如取法 Redmine, WordPress 這些專案「單體多模」的設計,可獨立運作,也提供 API 給其他「泛前端」使用。
或許專業的前端開發者在這樣的架構下很難(用喜歡的、慣用的前端框架)做事,但是這個專案截自目前就只是我一個人的 side project,根本也不存在什麼「專業的前端開發者」與我共事,所以不用想太多,又或者,我在用「單體統包」設計的同時,也提供 API 另外搞一份前端實作,這樣追求「實用」與「練新功夫」就都顧及了。
於是我想透過「試著把這些『新的』、『正規的』解決方案,套用在我的 side project 裡」的方式來好好學習。具體的想法則是:「如何在我的作品採用 Material Design」,我的初始想法是,Material Design 問世有一段時間了,一定已經存在著某些採用『新的』、『正規的』解決方案來實作 Material Design 的工具與實踐。
扯遠了…總之後來我並沒有走上這條路。後來我的工作多是做 Web 開發與打雜,在這段時期,可以說一直到今天,我想做的是「親朋好友在日常生活裡會用到的軟體」、「對社會有益的軟體」,這就是我為什麼去過中研院臺史所、中研院生物多樣性研究中心、曾有過圖書搜尋引擎產品的某公司、做活動報名與售票系統的那間公司。我一直希望自己能夠「益於世」。雖然我的三腳貓功夫還能勉強做這行,可是身體狀態的負荷,以及感受到隨時都會被年輕一輩(以十年為一世代的話,不只一輩,應該還有二輩、三輩…)取代的壓力,讓我又開始思考,自己還能做什麼?有什麼是在應用層面上更往中介軟體、核心元件走、不容易輕易就被嫩肝取代的?
回顧自己的本科所學,其實我知道那答案再清楚不過,就是「資料庫」與「搜尋引擎」。但是這兩門學問的坑都很深,在 Library and Information Studies 裡,會用稍微進階的 SQL 與 Boolean 檢索就算不錯了,遑論還要往理論與實作鑽,現在才說要踏進來,也許旁人看來可說是有勇無謀,貽笑大方,我自己也明白,所以就只挑了其中一個來專注研究。
我希望幾年之後,我在搜尋引擎這方面,可以提供專業服務。
This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. AcceptRead More
Privacy & Cookies Policy
Privacy Overview
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.