2025年9月4日 星期四

Next.js實戰

 

自從讀過《React 思維進化:一次打破常見的觀念誤解,躍升專業前端開發者》之後,我對 React 這個前端 JavaScript 工具庫已有初淺的了解。但在實際的前端開發領域中,由於 React 完全在客戶端執行的特性,雖然能獲得效能與吞吐量的優勢,相對地也犧牲了網站的 SEO 以及安全性。為了彌補這些不足,前端開發團隊通常會採用另一套建立在 React 之上的框架,而《Next.js 實戰》一書,正是為了引導讀者學習如何應用 Next.js 框架的入門書籍。

本書從各個面向介紹在使用 Next.js 開發前端網站時可能遇到的技術議題。在第一部分的基礎知識中,重點首先在於說明各種不同的元件渲染策略:CSR(Client-Side Rendering/客戶端渲染)、SSR(Server-Side Rendering/伺服器端渲染)與 SSG(Static Site Generation/靜態網站生成)。對傳統的網頁程式開發者來說,把 SSG 理解為生成靜態網頁內容,CSR 則是純 JavaScript 驅動的網頁應用,這兩者都算是比較容易理解的。但比較令人困惑的,大多是 SSR 與 ASP、PHP 等傳統網頁程式的差異,以及 Next.js 的 SSR 為什麼會被歸類為前端技術。簡單來說,是因為 Next.js 程式是以 JavaScript 編寫,而且多數邏輯與網頁畫面有關,處理的是版面套用與互動邏輯。深入來看,SSR 的回傳結果最終仍是以 HTML + JS 的形式送到瀏覽器,並由前端引擎執行程式碼,因此在運作機制上與傳統網頁程式確實不同。

接著,書中介紹另一個重要概念網頁路由。畢竟網頁應用最核心的功能之一就是頁面之間的連結與切換,所以學習框架的路由機制是必要的。這裡也同時介紹了 Next.js 提供的超連結元件與圖片元件,以及對 SEO 極為重要的 HTML Metadata 元件。透過修改 _app.js 和 _document.js 這兩個核心檔案,開發者可以達到一次撰寫、全站套用的效果,這樣的設計大幅提升開發效率。第二部分則著重於更具體的開發實作細節,例如:如何規劃專案目錄結構、如何在伺服器端與客戶端呼叫外部 API,並且帶出 GraphQL API —— 這是一種類似 SQL 的資料查詢語言。不過說實話,對於習慣使用關聯式資料庫或 NoSQL 的老開發者來說,GraphQL API 的吸引力可能並不明顯。

對於不使用資料庫的前端應用程式來說,儲存使用者狀態是一項挑戰。React 提供了 useState 與 useReducer 這兩個 Hook 來處理頁面層級的狀態管理;若要在不同頁面間共用資料,則可利用 Context API。至於 Redux,則是一個常被拿來取代 Context API 的全域狀態管理工具,在 React 生態系中廣受歡迎。由於前端開發無可避免地需要處理畫面套版,因此如何整合 CSS 也是 Next.js 中的重要議題。書中介紹了 Styled JSX、CSS Modules,以及更進階的 SASS 工具庫。此外,還包括如何整合 UI 框架以加快界面開發流程、如何將單執行緒的 Next.js 掛載到如 Express.js 等伺服器程式上。關於單元測試與整合測試 —— 這些在軟體專案中常被忽略的階段,書中也有專章說明其重要性與實作方式。

第三部分聚焦在商用網站不可或缺的功能:使用者身份登入與授權管理。書中詳細介紹了 JWT(JSON Web Token)這種廣為業界採用的資料安全機制。透過這套身份驗證實作,讀者也能重新溫習前面章節學到的核心知識。最後一章則以建構一個電子商務網站作為實例,完整示範如何使用 Next.js 打造具備商業應用價值的前端網站。在台灣,探討 Next.js 技術的書籍並不多,而《Next.js 實戰》正是一本能讓讀者在不踩雷的情況下學習核心觀念的實用電腦書,特別適合希望在短時間內快速了解 Next.js 基本用法的開發者。


2025年9月1日 星期一

我當傭兵的日子與戰爭實況


對六、七年級的男生說到傭兵兩字,很難不聯想到日本漫畫《城市獵人》主人翁孟波百發百中的槍法和以一擋百的身手。不過現實總是殘酷的,《我當傭兵的日子與戰爭實況》上下兩集的主角高部正樹,以長達二十年的傭兵資歷,將戰場上身為第一線士兵的現況,分享給身處和平國度的讀者。

幸運的是,即便戰爭幾乎是暴力和死亡的同義詞,這本《我當傭兵的日子與戰爭實況》卻是採用詼諧、圖像的形式來說故事。畫風為日本常見的 Q 版人物造型,不過在景物和細節的描繪上並不馬虎。每篇內容皆以編採對話切入一個主題,帶出高部正樹所經歷的傭兵往事。想當然耳,免不了討論到戰爭中的死亡。而高部也明白地告訴讀者,他覺得自己能在二十年的戰場經歷後活下來,單純只是因為幸運。每當遇到生死關頭必須做出選擇時,他總是迷信地選擇左邊,也因此多次避開危險、撿回一命。

在被問到曾經殺死過多少人時,高部表示他無法回答這個問題,因為在戰場上生死往往是一瞬間,沒有人會仔細確認敵軍是否真的死了。而且人中彈死亡不像戲劇裡那麼誇張,常常是無聲地直接倒下,也沒人能確定擊中的那一發子彈是否來自自己。因此,對於殺人的罪惡感或愧疚感,也不會那麼強烈。再加上第一線士兵總是聽命行事,在心理上也容易將殺人的不適感歸咎為我只是執行上級指令而已。

為了錢而上戰場的職業,想當然耳會讓大眾以為他們是一群日收萬金的高薪份子,畢竟傭兵可是拿命在賺錢。不過可能因為高部挑選的戰場與雇主多半是弱勢團體,例如緬甸少數族裔與南斯拉夫內戰中的克羅埃西亞陣營,所以即使有二十年的經驗,實際上也沒賺到多少錢。確實有像黑水國際這樣的大型民間軍事公司,曾以高薪大張旗鼓地招募戰鬥人員,但高部認為那只是短暫的傭兵泡沫,泡沫破裂後,如今的傭兵薪資依然少得可憐。

除了這些較嚴肅的話題外,書中也包含不少軟性、生活化的主題。搭配傭兵這個特殊職業與逗趣的圖像表現,讓內容變得讓人捧腹大笑。像是〈叢林裡的戰地美食〉,除了吃野味、老鼠、甲蟲外,竟然連蚯蚓也能煮成湯;〈自己開發新武器〉中,他想用堆土機自製裝甲車,結果卻造出一台速度極慢的槍靶鐵棺材,坐進去後馬上體會到流彈在車內四竄的地獄;〈戰地記者的真面目〉則揭開各種在媒體前自吹自擂、卻經不起檢驗的戰場門外漢,在軍事人員眼中只是負擔罷了。〈軍隊中盛開的體味〉、〈如何處理屍體〉與〈便便話題〉這類單元則非常不適合在用餐時閱讀,幾乎能感受到迎面而來的惡臭。

這兩本書的出版時間相當新,甚至提及了日本前首相安倍晉三遇刺與烏俄戰爭等主題。高部曾在 2014 年被亞速營挖角,當初若不是因年紀太大婉拒,可能就直接參與那場戰爭了。

總的來說,《我當傭兵的日子與戰爭實況》以輕鬆的角度切入戰爭這個沉重議題,讓生活在和平地區的讀者能初淺地領會戰地實況。在台海局勢波濤洶湧的當下,軍事主題書籍自然會受到更多關注,出版社適時推出這兩本佳作,可說來得正是時候。


2025年8月26日 星期二

巧讀紅樓夢


 
說來慚愧,時至中年,對中國古典四大名著中的《紅樓夢》卻從來沒翻過,甚至連依此書改編的戲劇節目也未曾看過。不想讓此事成為遺憾,當下就決定開始閱讀《紅樓夢》。只是要回過頭看古文,那可真是頭昏眼花,恰好找到這本《巧讀紅樓夢》,是專為青少年編寫的白話文本,讀起來相當直白易懂。

全書故事以男主角賈寶玉為重心,描寫封建時代權貴人家的送往迎來與日常瑣事,穿插神奇玄妙的橋段,讓讀者有如追連續劇般一篇接一篇讀下去。說白了,整個故事就是眾多女角與幾個男角的互動,加上世事無常的生離死別。但它不愧為章回小說的巔峰之作,人物描寫和情節鋪陳交織出一種難以抗拒的魅力,讓讀者愛不釋手地看完這場彷彿肥皂劇般的故事。

從故事中看到賈寶玉與紅顏知己林黛玉、薛寶釵的對話和互動,不免產生一種既視感,彷彿就是老三台晚間八點檔戲劇中會出現的男女對手戲。這才恍然明白,瓊瑤愛情劇裡那些灑狗血的情節、過分油膩的情話,其靈感或許正是來自這部傳奇性的經典小說。只是細想,《紅樓夢》中描寫的賈寶玉與大觀園中的女子年紀其實都相當小,大概是國高中生。再回頭看歷年翻拍的影視作品,難為那些成年演員要講出滿滿中二味的台詞,也算別有一番趣味。


2025年8月23日 星期六

猶太商法:日本麥當勞創始人──藤田田的不朽商戰名著,「做生意要賺大錢,你就得瞄準有錢人、女人及嘴巴!」

 

有如書腰上寫的,這本《猶太商法》是一本寫給老闆和創業世代的書。內容不談仁義道德,日本商人藤田田分享他在商場上的獨門心法以及金錢觀。雖然他不斷強調這是他從猶太社群中學習、領悟的必勝法則,但我想更多的是他個人對猶太人/猶太商人片面的解讀。

書中介紹不少令人驚豔的法則,像是已經廣為人知的80/20法則,就被更精確地指正為78/22法則。有別於許多企業將重心放在薄利多銷上,藤田田認為賺有錢人的錢才能事半功倍,餓死的駱駝比馬大,企業應做厚利多銷的事。猶太商人也不會有企業責任的觀念,畢竟錢就是數字,沒有乾淨的錢和骯髒的錢。當然,不從事違法事業這點,書中雖未明說,但應該還是得有所把持。女人和嘴巴的錢最好賺與台灣人常說的女人和小孩的錢最好賺有異曲同工之妙,而且在台灣一人創業的形態多是賣吃的,也可看出台灣人的商業直覺不比猶太人差。

對貿易商來說,數學和外語很重要;而猶太人對金錢相當執著,不相信親人與外人,我想都是不需要多加解釋的。出乎意料地,與台灣人對日本人的刻板印象不同,藤田田對本國國人毫不留情,認為日企與日本政治家缺乏契約精神,也沒有遠見,是典型的島國人視野。相較之下,對於猶太人的種種特質則是溢美之詞,形成強烈對比。由於世代背景的緣故,書中不少論點可說是極為不政治正確,換句話說就是慣老闆思維,像是認為員工生病請假就是偷懶,上班若不想學習,就應該把薪水還來。

書中也點出一句老話:「商人無祖國」。以利益為導向的企業,是不存在所謂的愛國心。比對現在台積電被稱作護國神山,被主觀寄望成為台灣國家安全的保障,書中的觀點可說是一針見血地推翻了眾人迷思。《猶太商法》成書已久,作者經歷過二戰後美國監管的日本戰後時期,有其書寫的時代背景。裡面甚至還有吃漢堡讓日本人能登上世界舞台這種令人啼笑皆非的論點,所以在閱讀時記得不要去脈絡化/不思考前因而照單全收,只要挑取自己覺得受用的觀點,便能獲益不少。

2025年8月14日 星期四

趁我們還有時間:脫北者朴研美在美國

 

時任美國總統川普的第二任期,在他對貿易逆差國每日變動的出口稅率調整中,各國的經濟、貿易代表可說是焦頭爛額。很難相信,作為世界第一大國、擁有二百年民主政體的美國,居然會選出這麼一位朝令夕改、口不擇言的國家領袖。然而,透過這本由朴研美所著的《趁我們還有時間》,讀者或許能拼湊出美國國內出現了哪些病徵,導致人民選擇服用川普這帖特效藥,或者是毒藥。

身為最知名的脫北者,致力於在各種傳媒上呼籲世人關注北韓人權議題的朴研美,理所當然地獲得美國政府青睞,成為永久居民,進而在紐約哥倫比亞大學攻讀學位。當時正逢民主黨執政多年,促使進步派氣焰大盛,因此不論是種族、女權或性別等各項社會議題,在輿論與立法上都大幅向進步派的訴求傾斜。在大學內甚至興起一股浪潮,對各項議題都能將結論導向批判常見的標靶SIX HIRB,包括資本主義、西方文明、白人至上主義、結構性種族歧視、壓迫弱勢、殖民主義等。這種無條件地將責任推卸給社會結構,讓她覺得美國得以強大的良好文化傳統,已經開始在大學院校中出現裂痕。

風起雲湧的覺醒文化(Woke),也逐漸造成社會各種亂象浮現。例如英文代名詞中出現數十種描述生理與心理性別排列組合的新字;因保護少數族裔政策,讓學經歷不符卻膚色正確的人出任公部門主管;去除歷史脈絡,將過去的名人抓出來文革,推倒各處雕像,用最少的成本賺取政治正確的聲量。網路言論匿名性形成的網路暴民風氣,加上帶有私利心態的網路巨頭自我言論審查,催生出新世代迫害言論自由的取消文化,讓朴研美覺得,時下美國民眾的公開言行,無時無刻不受箝制,神似極權國家北韓一般。而在接觸過美國政商界的名人巨賈後,她也對美國的精英文化相當反感,認為他們是一群譁眾取寵、只做表面功夫的權貴;在面對真正能改善北韓人權問題的核心中國時,卻為了利益而自動噤聲。

進步派的理念推進到超過一般人能適應的程度。長春藤學院裡充斥著新的規範,要求學生避免說出可能傷害他人心靈的言詞,或是主張齊頭式的平等,將失敗與錯誤的責任全都怪罪於國家制度的不公平、社會福利的不健全。可想而知,這樣荒謬的社會氛圍,只能帶來普羅大眾的不滿,因此選擇的天平只能倒向一位德不配位的保守共和黨人——川普。

朴研美以出身極權國家的角度,剖析了美國內部正面臨的重大潛在危機。保守派與進步派的分裂已到水火不容的地步,她的言論確實傾向右派的保守路線,也因此本書深受共和黨人推崇。從她經整形微調的外表來看,似乎已融入美國文化的大染缸中;然而,即便像她如此有意志與理想的人,也難以做到近墨者黑而保持初心,可惜。

2025年8月6日 星期三

噢!原來如此 有趣的鳥類學

 

在都市中生活,除了貓狗浪浪外,最常遇見的動物,相信就是各式各樣的鳥類。如果住在更郊區的地點,晨晚時分還能享受到樂音般的鳥鳴聲。《噢!原來如此 有趣的鳥類學》是一本科普鳥類學小百科,它以淺白又專業的文字,由宏觀到微觀地解說與鳥類有關的各種知識。

但這本書的價值不僅於此,每篇文章所附的插圖與趣味文字,其畫風與精緻度幾乎可以與日本知名插畫家卡娜赫拉比肩。讓我覺得,如果有廠商願意將書中可愛的鳥類圖樣製作成玩偶、公仔,應該會大發利市吧。由於作畫者陳湘靜曾從事鳥類行為研究,因此每幅插圖中,不論是在鳥類外觀、擬人化設計或編寫台詞等面向,皆可圈可點,讓讀者感受到滿滿的生命力。

如果去除書中的趣味插圖,《噢!原來如此 有趣的鳥類學》頂多是一本內容充實、立志推廣鳥類學知識給普羅大眾的出版品。這樣水準的科普書在同類型著作中並不算特別出色,也很難讓讀者感覺與常見教科書有什麼太大差異。然而,在加上那些趣味十足、畫風洗練又富含知識性的插圖後,這本書便成了一本值得收藏、送給親友或孩子的經典科普書。而本書又是出自台灣原創,更令人感到驕傲。

2025年7月30日 星期三

為了活下去:脫北女孩朴研美

 

說來奇怪,亞洲,特別是東北亞,充斥著各種難以向歐美人士解釋的地緣政治關係。台灣與中國的分裂分治是一例,朝鮮(或稱北韓)與南韓隔著三十八度線對峙則是另一例。若再多一層理解,便會發現:在法律上,南北韓兩國至今仍處於戰爭狀態。然而,如同台北陽明山的活火山雖潛藏危機卻百年未爆發一般,南北韓之間的戰火其實已經平息多年。由金氏家族以共產主義為立國精神,實施獨裁集權的政治體制,統治著北韓。而共產主義過於理想化,錯估人類故有的惰性,使得奉行此主義的國家普遍面臨經濟衰敗的困境,北韓自然也無法倖免。殘破不堪的經濟環境,加上作物歉收的雙重打擊,引發了嚴重的大飢荒。這正是《為了活下去》一書作者朴研美兒時所經歷的時代背景。

諷刺的是,對曾經親歷一黨專政的六年級生而言,洗腦式的忠國愛黨教育與無所不在的政治監控,其實並不陌生。因此,這本書對西方讀者而言或許是震撼的獵奇之作,但對台灣中年讀者來說,卻好像看到彷彿是平行時空裡台灣發展可能的另一種版本。畢竟,金氏政權與兩蔣時期皆屬於專制強人統治,所不同者僅在於所擁抱的意識形態—共產主義或資本主義—以及台灣最終選擇走向民主政體,延續至今。

言歸正傳,《為了活下去》的內容敘述朴研美—這位被譽為最美脫北者—前半生的生命歷程。雖然其父從事各種走私以維持生計,但在當時的北韓社會,這樣的行為實為許多人民為求溫飽所採取的生存手段。若非父親後來遭逮捕入獄,加上國家陷入糧荒危機,使得全家面臨餓死或逃亡的殘酷選擇,我想朴研美一家很可能就如多數北韓人一樣在國內度過餘生。但命運自有安排。她也因此擁有獨特的生命經歷,進而成為知名的人權倡議者,以自身經歷為例,向世人揭露北韓政權的反人權與不公。

在整個逃亡與求生的過程中,讀者也能一窺中國境內普遍存在的買婚現象如何與脫北者議題交織。不少成功逃至中國的北韓女性,往往被人蛇集團販賣至偏遠鄉村充當配偶,期間還涉及大量性犯罪與性交易等骯髒行徑。這樣矛盾的情境,雖在某程度上提高了女性脫北的成功率,卻也對她們的身心造成難以磨滅的創傷。本書以一種特別的視角,稍稍揭開北韓這個神秘國度的面紗。正如那句格言:「絕對的權力導致絕對的腐敗」,帝制般的獨裁體制終將難以帶來平等與幸福,只留給人民無盡的壓迫與苦痛後的覺醒。