0x01 :引言java
If you weeped for the missing sunset,python
you would miss all the shining stars算法
我看着大巴緩緩的駛過街角,我躲在那些樹後,心裏安靜的作着告別編程
相遇在一場雨裏安全
告別在另外一場雨裏網絡
多好數據結構
0x02 :項目的基本定位概述架構
There are no trails of the wings in the sky, 數據結構和算法
while the birds has flied away.ide
網站基本定位 |
面向CS/EE領域的垂直搜索引擎 |
網站創新形式 |
首先,按照《構建之法》中創新類型的劃分,在創新的類型上,咱們的產品是改良型的創新,而非顛覆性的創新 |
用戶基本定位 |
計算機及相關專業學生,其中以大學生羣體爲最主要的用戶羣 |
用戶的知識層次 |
用戶具有基本的編程基礎,並具有使用通用搜索引擎(百度、谷歌等)的能力 |
網站的基本功能 |
網站可以採集專業化社區中的問答數據、高質量課程資源、專業技術文檔中的內容,爲使用者提供一體化的、精準的、高質量的搜索內容 同時,用戶可以經過網站直接參與到上游社區的討論中 |
0x03 :需求調研問卷的反饋
To the world,you maybe a person.
But to a person,you maybe the world.
調查問卷設計背景 |
隨着信息技術的需求擴展和蓬勃發展,計算機及相關專業的學習資源(Mooc)平臺、通用搜索引擎提供的平臺(百度知道、谷歌學術)等已逐步成爲學習和工做中不可或缺的一部分。所以,爲進一步瞭解計算機及相關專業的學生、愛好者、及就業人員對專業方向的垂直搜索引擎的需求,軟件開發團隊BugPhobia,將針對這一領域的用戶的基本需求進行調研,並據此進行產品自己的需求分析和開發 |
調查問卷具體連接 |
|
調查問卷發放渠道 |
經過朋友圈及交流羣展開傳播,優先覆蓋各學校的計算機專業的學生、本科生 |
調查問卷反饋結果 |
截至2015年10月20日14時,調查問卷有效填寫人次達到140 |
0x0304 :調查問卷的用戶概況
根據調查問卷的反饋結果,截至2015年10月20日14時,調查問卷有效填寫量達到140人次,而其中78.57%的填寫用戶屬於計算機及相關專業的學生、職場人才羣體,同時也收集了非計算機相關專業羣體的部分問卷,在後續的數據處理中將依據不一樣權重參考調研數據。所以,在用戶需求的調研反饋中,首先將調查問卷的有效填寫的羣體的基本信息以圖表的形式展現出來,爲後續針對網站定位的用戶羣體的搜索習慣分析作出必定的鋪墊。
年齡、學歷分佈 |
根據有效調查問卷的反饋,這次調研羣體集中於18~21歲,達到114人次,佔據總用戶調查羣體的83.82%;而在基本的學歷分佈中,學歷位於大學本科生(含在讀)階段的有128人,佔據總用戶調查羣體的94.12%,年齡和學歷百分比基本符合預期,調查問卷具有有效性。 |
圖1:調研羣體年齡分佈餅形圖
圖2:調研羣體學歷分佈餅形圖
身份分佈 |
根據反饋,這次調研羣體中,計算機及相關專業學生達到106人,佔據總調研人羣的77.94%;而計算機愛好者、職場人才則將做爲參考數據的進行統計。 而根據產品的基本用戶定位,此網站的用戶定位集中於「計算機及相關專業學生」,調研羣體的年齡、學歷、身份百分比均超過75%,此調查問卷的結果可以在必定程度上反映真實的用戶需求。 |
圖3:調研羣體身份分佈餅形圖
學習計算機類技術的目的分佈 |
根據反饋,這次調研羣體中,以「參加計算機等級考試」「掌握經常使用工具使用方法」等爲學習技術目的的僅佔據11.77%,所以,在第一輪迭代(Alaph階段),將優先以參與領域研究、軟硬件開發用戶的需求進行開發,而其餘人羣將以低權值歸入需求分析中的考慮部分,在「必需需求/輔助需求」部分,將進一步對此進行說明 |
圖4:調研羣體學習計算機類技術目的分佈餅形圖
計算機應用能力分佈 |
根據反饋,這次調研羣體中,計算機應用能力基本呈現均衡分佈,按照調查問卷所劃分的能力層次「僅能編寫簡單程序」「掌握語言並指望瞭解數據結構、算法」「簡單開發工做」等均佔據總調查羣體的30%左右。所以,在後續的交叉分析中,即使是處理總體的數據,也能很好地保障「常常搜索哪類信息」的調查結果更具有廣泛性 |
圖5:調研羣體計算機應用能力分佈餅形圖
用戶常常搜索問題類分佈(多選) |
根據反饋,這次的調研羣體中,用戶搜索的信息和問題基本呈現集中分佈、均衡分佈。針對集中分佈,在所調研的7類選項中,5類選項在調查中所佔據的百分比都超過半數;針對均衡分佈,7類選項中的5類選項,在調查中極差僅爲16.18%,所以能夠作出基本的推斷,所提供的搜索引擎針對不一樣類型的問題篩選,均應作出必定的考慮,而不是在迭代過程當中捨棄大部分類型的問題 |
圖6:調研羣體用戶常常搜索問題類分佈餅形圖
0x0308 :用戶基本搜索渠道統計(多選)
標準庫函數用法 搜索渠道 |
百度(百度知道、搜索) |
80.68% |
![]() |
Google(谷歌學術、搜索) |
23.86% |
||
維基百科 |
15.91% |
應用程序API、系統調用 搜索渠道 |
百度(百度知道、搜索) |
71.21% |
![]() |
Google(谷歌學術、搜索) |
56.06% |
||
StackOverflow |
33.33% |
編譯的錯誤信息 搜索渠道
|
百度(百度知道、搜索) |
80% |
![]() |
Google(谷歌學術、搜索) |
41.33% |
||
StackOverflow |
18.67% |
開源社區代碼 搜索渠道 |
Github等代碼託管平臺 |
65.96% |
![]() |
Google(谷歌學術、搜索) |
42.55% |
||
百度(百度知道、搜索) |
42.55% |
課程學習中的試題 或專有名詞 搜索渠道 |
百度(百度知道、搜索) |
86.96% |
![]() |
Google(谷歌學術、搜索) |
43.48% |
||
維基百科 |
28.99% |
工具或插件的使用說明 搜索渠道 |
百度(百度知道、搜索) |
84.72% |
![]() |
Google(谷歌學術、搜索) |
51.39% |
||
維基百科 |
23.61% |
0x030c :用戶需求交叉分析
根據基礎的調查問卷數據,不妨進行自變量-因變量模型的的相關交叉分析,以「計算機應用能力」爲自變量,「常常搜索的信息或問題」爲因變量,根據用戶的計算機應用能力將用戶進行不一樣層次的劃分,從不一樣層次的用戶角度分析各自的搜索習慣,從而在需求分析和架構階段,權衡WBS樹的優先權重和開發順序。
交叉分析 自變量:計算機應用能力 因變量:常常搜索的信息或問題 |
根據經典柱形圖的數據反饋,在柱形圖,從左至右的自變量因素按計算機的應用能力的遞增順序排列。所以,在交叉分析中我們清晰觀察到用戶在隨着計算機應用能力增加的同時,其搜索內容的比例變化。因爲第四類人羣的數據量僅爲2.19%,其數據樣本自己不具有廣泛性,暫且忽略。在前三類人羣中 ü 「編譯的錯誤信息」、「標準庫函數的用法」基本呈現平穩變化趨勢。隨着用戶學習過程的深刻,須要接觸不一樣類型的語言,而基礎的語法和初期的編譯問題天然佔據較大模塊。所以,在此部分的檢索過程當中,將盡量選取經驗化的例子、文檔中的部分說明反饋於用戶 ü 「應用程序API、系統調用」「開源代碼」基本呈現遞增變化趨勢。隨着用戶計算機能力的提升,在逐步接觸應用程序開發或領域研究時,必須參考部分結構優秀的代碼,並逐步查詢外包的API手冊。所以,在此部分檢索過程當中,將盡量針對專業性較強的用戶,反饋的結果也將更爲專業性 ü 「工具或插件的使用說明」基本呈現動態變化趨勢。在初期未接觸工具插件時,用戶會須要查詢相關說明,然後期接觸大量工具和插件後一樣要查詢相關說明,所以呈現不穩定的波動狀態。所以,權衡實現,在此部分的檢索過程當中,將盡量針對多層次用戶,優先將使用心得這類回答反饋,而非手冊說明 |
圖7:計算機應用能力-常常搜索問題的自變量-因變量交叉分析條形圖
0x04 :NABC分析
I leave uncultivated today,
was precisely yestoday perishes tomorrow
which the person of the body implored.
0x0404 :需求( Need )
首先從《構建之法》中對創新界定一張入手分析這一問題,在創新的類型上,垂直搜索引擎屬於改良型的創新,而非顛覆性的創新,所以,在具體的需求分析中,咱們將重點圍繞計算機及相關專業的學生羣體展開必要的討論。
面向CS/EE領域的垂直搜索引擎主要針對計算機及相關專業的學生羣體,所以首先結合調查問卷的統計結果闡釋這一羣體的信息搜索習慣。計算機及相關專業的學生羣體,在學習和積累的進程中,必然會經歷由初步接觸語言的語法規則、數據結構和算法的階段到熟練運用語言,並逐步參與到軟硬件開發或領域研究的漸變過程。而根據此前交叉分析結果(0x0308),不一樣層次的學生羣體對不一樣問題的需求不盡相同,同時其使用的主要搜索渠道也不盡相同。
所以,根據調查問卷的統計結果和學生的總體反饋作出以下的搜索習慣表格
學生羣體層次 |
搜索內容 |
搜索渠道 |
剛接觸語言的學生羣體 |
基礎庫函數、專業名詞等基礎知識 其搜索方向主要包含基本的語法和經常使用術語 |
百度、谷歌等通用搜索平臺,指望得到經驗化的內容,而不是乾巴巴的技術文檔摘要 |
指望瞭解數據結構、算法等專業知識 |
基礎庫函數、開源社區代碼 其搜索方向主要包含新接觸的語言的基本的規則(如從Java轉換到C#),優秀的代碼片斷 |
百度、谷歌等通用搜索平臺仍在使用,但每每不會獲取到預期結果 CSDN、Github等專業性強的社區,但內容良莠不齊,並且部分社區屏蔽了百度的爬蟲,致使通用搜索引擎徹底沒法顯示其中內容 |
熟練運用語言,參與開發或研究 |
應用程序API、開源社區代碼 其搜索方向主要包含軟件開發過程當中必需的API(最簡單的如python的Numpy包),優秀的開源代碼 |
百度、谷歌等通用搜索平臺仍在使用,但獲取內容每每侷限於我的經驗,沒法保證正確性 Github、MSDN、StackOverflow等文檔平臺或專業問答平臺更適合找到理想的結果 |
所以,根據調查問卷的反饋結果,針對不一樣類型的問題,百度和谷歌這類通用搜索引擎的使用率大部分超過70%,在所調查的用戶羣體中,佔據極高的市場份額,但實際調研的結果卻與龐大的市場份額有所出入。
ü (搜索的高質量)在計算機專業的領域搜索中,用戶每每會優先選擇「CSDN、MSDN」等平臺提供的博客或文檔知識,或各文庫提供的課後習題答案、課程相關的其餘課件,而通用搜索引擎卻每每在其中摻雜不少的劣質回答,致使用戶在搜索的過程當中須要浪費大量時間作出沒必要要的篩選,如「百度知道」這種非專業平臺提供的回答,簡短的回答每每並不能真正解決問題,且平臺上每每充斥着與問題無關的吐槽;同時,部分對博客園進行爬蟲的「子網站」也會重複出如今搜索欄中,致使重複的內容集中在同一頁中,使得通用搜索引擎的結果每每不盡人意。
ü (信息的一體化)計算機行業是強調「終生學習」的領域,必然會在不一樣領域存在不一樣能力水平的用戶,如上表所展現。而面向大衆的通用搜索引擎卻每每不能得到用戶所需的切實內容。是選擇專業的文檔、或是基礎簡單的樣例,取決於用戶自己,不一樣的信息·渠道也面向不一樣用戶提供了不一樣層次的回答,但單一的平臺每每很難兼顧不一樣層次的用戶。但這一過程當中,換用不一樣的信息渠道會浪費大量時間,極可能致使事倍功半。
ü (用戶的精準性)計算機行業是各知識交雜的行業,所以,部分搜索內容是具有標籤化的(TAG)特徵。而通用搜索引擎對計算機專業方面的標籤管理混亂,關鍵詞關聯不具有很強的邏輯性。
所以,根據現有的用戶調研,咱們可以清晰地觀察到搜索引擎和需求之間的落差,而在此用戶需求上,面向CS/EE領域的垂直搜索引擎應運而生
0x0408 :作法( Approach )
網站自己的定位,是面向CS/EE領域的垂直搜索引擎。所以網站所注重的創新作法集中於「一體化」、「精準性」、「高質量」的三個主要關鍵詞,所以從整體的架構角度,網站將具有采集專業化社區中的問答數據、收集高質量課程資源、關注專業技術文檔的內容的功能,從而爲用戶提供一體化、精準的、高質量的搜索內容。
搜索的高質量 |
從搜索的角度,優先搜索機制將保障問題和搜索結果高匹配度。簡而言之,垂直搜索引擎將高質量的內容聚合,並針對某一類型的問題根據調查的反饋結果優先選擇更爲專業的搜索渠道,方便用戶直接系統地瀏覽、搜索、編輯、評論, 同時,網站將支持用戶繼續經過提問、追問和回答來完善這些內容,保證優秀的用戶體驗 最後,經過「檢測輸入的模糊匹配」「檢索內容的半自動化識別」「常見問題的文檔支持」等方面,進一步打造高質量的垂直搜索引擎 |
信息的一體化 |
在必定程度上,信息的一體化和搜索的高質量密切相關,但信息一體化更展現的高質量數據的多樣性。信息一體化更強調不一樣層次的數據一同展現,如在函數搜索的過程當中同時展現函數的官方文檔和民間給出的簡單樣例。 所以,搜索引擎將高質量的內容聚合,並進行簡單的層次上的分類,有層次地展現所獲取的一體化的信息。 |
用戶的精準性 |
從用戶羣體的角度,計算機專業領域更適合基於Tag的搜索和數據分類。所以,在搜索數據上關聯相關的Tag,將保證搜索的精準性。而對用戶而言,基於Tag的問答平臺,也將使得具有相同知識背景的人能夠在特定的領域中分享知識,達到互利雙贏的目的。固然,在這一層次上,咱們也須要設置不一樣的權限,保證高質量提問和回答的用戶可以具有更高的權限,使得付出與回報成正比。 |
0x040c :好處( Benefit )
首先明確目前市場現實狀況,隨着信息時代與互聯網的迅速發展,現有用戶對產品的依賴度逐步呈現多元化發展,現有用戶遷移成本相對較低,用戶對產品的單一依賴度有所下降,而更多抱有「無論黑貓白貓,能捉到老鼠就是好貓」的心態,所以,由這一市場現狀入手,自己存在着巨大的好處與發展空間。
相比於通用搜索引擎,用戶可以依據Tag的搜索機制更快捷地搜索到滿意的答案,節省在不一樣網站過濾無用信息的時間
相比於通用搜索引擎,經過模糊匹配、半自動化識別等方式使得搜索結果更能適應不一樣層次的用戶,且根據問題類型自動選擇專業信息渠道,也使得搜索結果更爲準確
簡而言之,對於某一庫函數F(X, Y, Z)的用法,能同時反饋官方文檔的內容和講義、網站給出的簡單樣例;同時,對於特定類型的錯誤,如編譯報錯信息,能選擇更爲專業的平臺返回搜索結果
具有必定社交功能的問答平臺,可將使得用戶可以找到「類似標籤」或是興趣相合的夥伴。
圖8:垂直搜索引擎的簡單草稿(設計師繪製簡單雛形)
0x0410 :競爭( Competitors )
從競爭的角度,首先不妨選取通用搜索引擎Google、垂直搜索引擎Codase、問答平臺百度知道來解析面向CS/EE領域的垂直搜索引擎在競爭過程的核心競爭力
平臺類型 |
通用搜索引擎 |
垂直搜索引擎 |
問答平臺 |
平臺表明 |
|
Codase |
百度知道 |
平臺受衆 |
Internet時代下對於互聯網資源有需求的全體網民。 |
對主流語言的源碼有需求或感興趣的計算機及相關方向的學習者或從業人員。 |
對某一特定領域的相關問題不瞭解,但願獲得簡明扼要答案的網民。 |
平 臺 優 勢 |
l 信息整合導航,形式多樣。內形式方面表現爲視頻、音頻、圖片、文字等。 l 資源內容豐富。網絡上大量的資源均可以經過Google找到相關的內容。 l 查詢效率高。極短的時間內查到數以萬計的相關的網站和頁面。 |
l 相關內容深度好。垂直搜索引擎誕生的意義所在,提供專業的相關的搜索。 l 內容之間的相關性強。內容的關聯性強,屬於同一或相近的學科體系。 l 查詢準確率高。相關內容集成度大,知識密度大,容易迅速定位問題答案,極大提升查詢的準確度。 |
l 針對性強。用戶就某一特定問題進行提問,問題的準確描述容易得到。 l 互動性強。用戶間交互與人機交互相比能給用戶更好的體驗,更容易實現問答之間的平衡。 l 羣衆基數大。百度中文搜索積累的數據資源吸引大量的網民使用這一平臺,龐大的羣衆基礎又提供了豐富的數據資源,造成良性循環。 |
平 臺 劣 勢 |
l 資源冗餘度大。網站頁面的條目重複給出相同的查詢結果的連接。 l 內容關聯性弱。網頁條目從根本上來說還只是簡單的羅列,沒有內在邏輯。 l 查詢準確度低。在紛繁的頁面中查找想要的資源,即使是PageRank算法也難保證不費一番周折。 |
l 穩定性差,因爲是國外的網站,國內的相關人員享受不到其優點。 l 交互性不足,用戶仍是須要本身主動查詢和篩選,對用戶的甄別能力要求高。 l 資源僅針對C++、java等主流語言提供查詢,相關行業的其餘領域知識涉及甚少。 |
l 平臺的准入門檻低。回答的內容更多的是無關的吐槽,和問題自己關聯性不大。 l 回答效率低下。不是每個問題都能得到及時的回答,回答的問題有時也不能保證質量,甚至有誤導。 |
所以,整體概述基本的競爭狀況,Google、Codase、百度知道均在必定程度上支持了計算機及相關專業的信息檢索,但因爲用戶定位層次的不一樣,致使搜索引擎自己難以保證EECS相關的內容和問答質量;同時,具有相同目標羣體的垂直搜索引擎Codase因爲資源的集約,致使網站自己交互性較差,且常常因爲模糊搜索支持較差,致使大量的函數方法沒法被有效檢測。
l Google搜索引擎利用其強大的資源優點保證了相關內容的覆蓋率,卻在準確率上不盡如人意。 l Codase目標羣體和資源相對集約,卻不免交互性不足和資源侷限的尷尬。 l 百度知道有強大的用戶基礎和良好的交互,卻難以對問答的質量作出保證。 綜合以上的分析,咱們的產品應該具備的是準確的查詢定位,高質量的專業資源,豐富的專業內容,齊全的專業門類,高效的用戶交互平臺,成熟的用戶激勵機制,完善的准入考察機制 |
綜合以上的分析,咱們的產品應該具備的是準確的查詢定位,高質量的專業資源,豐富的專業內容,齊全的專業門類,高效的用戶交互平臺,成熟的用戶激勵機制,完善的准入考察機制。
所以,論述產品的核心競爭力,集中在數據的管理形式和明確的用戶定位。標籤(Tag)方式關聯的數據,其自己又包含多種類型的信息,可以高質量地展現搜索數據;同時,明肯定位於計算機及相關專業學生也將最大程度保證搜索的精確性。
0x05:SWOT分析
I am a slow walker,
but I never walk backwards.
優點 (Strengths) |
劣勢 (Weaknesses) |
ü 在技術優點上,垂直搜索引擎支持模糊匹配和半自動化識別等搜索技術,用戶體驗更爲優質 ü 垂直搜索引擎全面基於Tag的多類型數據分類,一體化的設計也將保證搜索結果優中擇優,反饋的查詢結果更爲精確而全面,能有效針對不一樣層次的用戶 ü 架構上包含完整的安全維護措施和反垃圾機制,可以有效減輕無效的訪問壓力 ü 開發團隊自己又是用戶的一部分,相似「人類學調查」機制,開發團隊自己更能深刻用戶自己的不一樣需求 ü 初步設計頁面整潔大方,用戶搜索時不會受到冗雜信息的干擾 |
ü 數據自己依賴其餘組的工做進度,而在進度上須要密切同夥伴組溝通接口、數據來源、數據分類等細節 ü 敏捷開發時間較短,須要時刻保證高效率的開發進度 ü 缺少充裕的資金支持 |
機遇 (Opportunities) |
威脅 (Threats) |
ü 與同類搜索引擎相比,具有更爲優秀的功能和高質量的搜索結果 ü 相似「人類學調查」的機制,做爲大學生的視角更能切合學生用戶羣體的使用需求 ü 軟件開發過程當中,學校及學院將提供硬件上的支持 ü 互聯網自己的特色致使用戶遷移成本大大下降,且用戶也更爲依賴網絡檢索功能 |
ü 同類搜索引擎的不斷整合,可能致使其餘搜索引擎快速構架出相似網站造成基本的競爭關係 ü 用戶的等級分配權限制度可能下降新用戶的積極性 |
0x0504 :SWOT矩陣分析
此部分的矩陣分析正在架構中,而SWOT在競爭分析中也注重SO、WO、ST、WT策略的設置和不一樣階段的不一樣競爭方式。
0x06:功能定位和優先級初稿
If you have a friend who knows your heart,
Distance cannot keep you two apart.
這裏暫且將產品經理初步架構的功能定位和優先級規劃羅列出來,其中【】中包含的字符★越多,表明其須要實現的優先級越高,而關於殺手功能、外圍功能的界定,暫時依據星級評判標準,而具體的規劃,還須要在此後的討論中進一步明確和完善
垂直搜索引擎的建設 |
基於Tag以及類型的數據分類【★★★】 對用戶檢索輸入進行模糊匹配【★★★】 用戶檢索內容類型的半自動化識別【★★★】 分別創建針對問答數據、課程資源、經常使用專業官方文檔中函數的檢索支持【★★★】 |
基本的用戶管理模塊 |
註冊、登錄、註銷等基本管理模塊【★★★】 |
問答平臺的構建 |
問答數據的展現【★★★】 用戶對問答的評論或跟帖與原社區進行關聯【★】 |
優秀課程資源 |
將其餘組獲取的數據資源進行展現【★★★】 + 課程的來源,視頻連接 + 課程講義 + 參考資料 支持用戶留下本身的學習筆記和心得(注意隱私權限)【★★】 設立討論區進行交流【★】 |
用戶資源的共享 |
用戶可以自主上傳或撰寫課件、筆記心得等內容【★★】 |
豐富用戶功能 |
完善激勵模式(用戶積分系統、高積分鼓勵措施、與優質網站的積分轉換)【★】 增設好友、同窗、師生、興趣組【★】 增長與社交網絡的關聯手段,爲系統的生存發展推廣作考慮【★】 推薦系統及偏好分析【★】 |
0x07:WBS基礎構建
I wrote a sign called "Dead End" in front of myself,
but love crossed it with a smile and said ,
"I can enter anywhere"
0x08:附錄與後記
1 universe, 9 planets,
204 countries,809 islands, 7 seas,
and i had the privilege to meet you.
寫到後記,莫名思路滯塞,不知從哪裏記述這短暫一週時間的討論,若單純憑着吃貨的執着去記錄這短暫一週的工做,深夜熱騰的餛飩鋪、新主樓露天的水果披薩、必勝客中冷熱交加的柚子蜂蜜檸檬茶,或是莫名從大洋彼岸發來的調查問卷反饋數據;感受能始終憑藉這樣的依託和動力繼續前行,心裏,大抵,也會不自覺地充滿夏意。就用《你好,舊時光》中本身時常寫在明信片或是信的底部的一句話,謹以此寄予BugPhobia般的團聚吧:一如既往,萬事勝意
你好,BugPhobia,安好~