Faker是一個流行的模擬資料生成庫,只要簡單的幾步操作,就可以在瀏覽器和Node.js中生成大量的假資料,GitHub的star一度超過25000星,但是Faker的開發人員 Fran?ois Zaninotto 計劃放棄對 Faker 更新維護,根據 GitHub 的資料顯示,最近一次更新在 2020年 12 月 11 日,

Faker 意外誕生
Faker 誕生很意外,源于 Fran?ois Zaninotto 需要為他的專案生成模擬資料,所以 Fran?ois Zaninotto 就在 2011 年 10 月開發了 Faker 專案 ,由于 Faker 能產生大量的模擬逼真的資料,因此Faker在PHP 社區被很多開源愛好者使用并獲得好評,Fran?ois Zaninotto 在他的博文中介紹專案截至目前已有 450 多個貢獻者(感謝他們的付出),被713 k 個專案所依賴,
<?php
// use the factory to create a Faker\Generator instance
$faker = Faker\Factory::create();
// generate data by accessing properties
echo $faker->name;
// 'Lucy Cechtelar';
echo $faker->address;
// "426 Jordy Lodge
// Cartwrightshire, SC 88120-6700"
echo $faker->text;
// Dolores sit sint laboriosam dolorem culpa et autem. Beatae nam sunt fugit
// et sit et mollitia sed.
// Fuga deserunt tempora facere magni omnis. Omnis quia temporibus laudantium
// sit minima sint.
Faker 存在設計瑕疵
Fran?ois Zaninotto 表示 Faker 很臃腫,在于很多用戶下載了不必要的語言版本,原先只要 10 KB,現在卻必須下載 3 MB,另一個核心設計問題是 seed (資料庫模擬資料填充命令),為了允許可復用的構建,Faker 生成器接受 seeder,使用相同的 seeder,Faker 將始終生成相同的模擬資料,這導致無法對現有提供程式進行任何重大更改,例如洗掉過時的資料或重復的內容,為了填入新的模擬資料,Faker 必須避免修改其資料,
Faker 維護太難了
作者認為維護這個 Faker 太難了,主要 Faker 很多模擬資料都是從別的地方粘貼復制的,并受到著作權法律保護,還有用戶提交的 PR 都是作者看不懂的語種,因此他無法辨析資料的優劣,出于著作權等風險考慮,他最終關閉了許多 PR,并盲目地合并了部分其他 PR,最主要原因 Fran?ois Zaninotto 沒有時間去維護 Faker,而且他已經有 5 年時間沒有寫過一行 PHP 代碼了,
有人提議將 Faker 移交到專門維護專案的組織, Fran?ois Zaninotto 拒絕了這個提議,他認為這是在“詆毀”一個 25,000 星專案的聲譽,
Faker使命完成了

Fran?ois Zaninotto 因此認為:“Faker被下載了 1.21 億次,那可能是它已經足夠好了,成千上萬的 Faker 用戶不可能同時都錯了,對吧?”
所以 Fran?ois Zaninotto 決定 “退休” fzaninotto/Faker ,意味著 Fran?ois Zaninotto 不會接受新的 PR,不會合并現有的 PR,不會發布新版本,也不會接受新的維護者,將完全禁用來自 Faker 存盤庫的通知,并洗掉收件箱中所有與 Faker 相關的訊息的存檔——這對地球來說又是一個好舉措,他認為這個決定傷害了那些為 Faker 付出時間和作業的貢獻者,他對此深表歉意,另外他認為這個舉動符合 PHP 社區的利益,
Fran?ois Zaninotto最后表示:“Faker 仍然可以在 Packagist 上使用,只要您不升級 PHP 版本,它就會繼續作業,相信其他人很快就會發布一個新的庫來代替 Faker,它會比 Faker 好得多,而且會發展得更快,”
最后,螢屏前的你使用過 Faker 專案嗎?你要是原開發者會放棄這個專案嗎?
歡迎在下方留言評論,分享你的看法,
參考鏈接:https://marmelab.com/blog/2020/10/21/sunsetting-faker.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/293782.html
標籤:其他
