簡單聊一聊百度的開源JS庫 Tangram

2021-08-31 04:26:05 字數 3607 閱讀 3860

打算在這裡簡單談一談我對它一些看法.

這裡所說的"看法"幾乎沒有技術相關的東西,詳細的技術分析 稍後再寫, 畢竟還沒有把**通讀一遍,不好妄下結論.

下面進入正題吧, 說一說tangram.

********************=

原來是個"庫"

這個絕對是我個人的問題.

我一直期待著乙個'開源的js框架",可是 最後拿到手裡的卻根本不是乙個框架. 基本上只是"把乙個乙個(或者說一組一組)的功能函式,累積到一起, 最後產生的乙個工具包".

到底是框架 還是 工具包 其實無所謂, 各有各的長處, 並不是說工具包就不如框架.

不過還是有點小小的失望.

********************=

讓人不爽的"baidu."字首.

這點也是網上反感最大的. 也許名字本來是無關緊要的東西. 但是事實並非如此.

@lifesing 在<[url=""]關於jquery和yui, 還有kissy[/url]>這篇文章中 ,

有對"軟體名稱"的一點點討論.其中部分觀點還是很有價值的,節選如下:

"yui 的開發團隊,太強烈的 yahoo 色彩,真有可能是成也蕭何,敗也蕭何。

如果真的哪一天 yahoo 徹底沒落,yui 可能真的會很快成為歷史。

有公司在背後支援是沒問題的,但不能太放到明面上說,更不能產生強依賴。

比如提起 jquery,我們並不會立刻想到 mozilla. mozilla 只是默默的支持者。

prototype 和 mootools 等也是,我們不 google 一下,甚至不知道 prototype 和 mootools 背後的公司是哪些。

yui 的 y, 使得 yui 很難徹底開放開源。

"********************=

**組織 & 需求

因為要滿足"函式級別的按需構建", 所以tangram選擇了一種通常很少見的**組織方式:

每乙個公共函式 乙個單獨的檔案.

下面6個函式, 分別放在

tangram\baidu\dom目錄下的 6個js檔案中.

如果我們某個頁面只需要其中的前4個, 那麼選中後, tangram的構建工具 codesearch 會打包出乙個檔案,檔案內容如下:

這個地方, codesearch的設計者明顯是偷懶了, 以他們的技術實力, 構建出下面這種 更精簡的** 是完全沒有問題:

如果不喜歡上面這種方式 構建成這種也完全沒有問題:

(function()

m.setposition = function(){}

m.getstyle = function(){}

m.setstyle = function(){}

})()

反過來看, 如果原始碼存放時, 就是按模組一體存放的,如下 放在 baidu/dom.js裡

那麼根據需求 構建出

也不是難事.

反正我覺得可以優化的地方很多, 而且使用到的函式越多優勢越明顯.

所以 我不得不認為"codesearch工具的設計和開發人員偷懶了".

"函式級別的按需構建" 的乙個目的是為了讓引入的js**盡可能的小, 但是tangram現在的做法並沒有做到最好.反而在很多地方讓**變得冗長了.

即使上面的做法都不可取, 那麼"每乙個公共函式 乙個單獨的檔案,函式用全名稱定義" 也絕對不是解決"函式級別的按需構建"的最好方案, 更不是唯一方案.

關於**構建和組織, 我稍後會寫一篇我的觀點和看法.

我一直很推崇 對ide友好的 js**組織方式. 所謂對ide友好, 就是可以讓那些比較流行的ide可以清楚的顯示出 js**的 outline 以及進行 方法的跳轉 查詢等. 把函式乙個個的拆開存放, 我覺得不是乙個好辦法.

********************====

這個沒什麼好說的, 我覺得這個需求一點也不過分.

********************====

開源的目的和意義

看到 tangram的成員在部落格上說 :

"如果開源的目的不是為了"讓更多的人使用這個產品, 讓更多的人對產品提出有益的建議, 給更多的使用者帶去價值, 從使用者那裡獲得不斷進步的動力和成就感",

那麼這種開源是不是可以理解為"面子工程"或"市場行為"?

而對於tangram的人員來說, 是不是可以理解為只是乙個"政績工程", 只是你們年底kpi考核時的乙個正值?

難道開源的意義就是"擺乙個姿態給大家看"?

開源者 除了要有乙個開放的心態, 也要有夢想有野心, 不管是否有人相信,不管是否能夠實現, 至少喊出來, 感動一下自己 也是好的啊.

********************==

先說這些吧, 具體的技術細節的討論下次再說.

Web 百度有聊官網的一些布局不好之處

貼吧最近開始猛發力,貼吧文化主題定義為興趣 主頁改版 介面改版 css3特效 和其他it站 天貓 果殼等 合作開設特製吧 明星特製吧 全球粉絲id 徽章制 新增顏表情等 現在不甘於文字,向語音進發。有聊 濃厚貼吧文化的語音軟體,自動定位,把身邊的吧友圈在一起。這是有聊的官網。我本來是想把這個手機的素...

乙個簡單的百度爬蟲例項

import requests from bs4 import beautifulsoup import json import datetime defgethtml url headers try r requests.get url,headers headers r.raise for st...

跟著老師做的個簡單的百度一下

1.搭配環境 導包到lib目錄下 jar包有 mysql connector 用來連線資料庫 c3p0和mchange commons 資料庫連線常量池 常量池配置檔案c3p0 config.xml 2.建立專案 建立的專案包有 utils servlet 在webcontent下寫html網頁 3...