大家不妨組織一些開源專案,或者面向具體應用的興趣小組(個人想法)

最美的回憶發表於2017-04-02
實踐出真知。提高技術的關鍵是作出一些東西。看起來有用,看起來偉大的產品都是你我能做出來的。

偶結合自己近來的一些想法,提出幾個專案,供大家參考討論。感興趣的一起探討探討。有時間的兄弟姐妹們可以嘗試寫一寫。

這些專案有這些特點:(1)有用;(2)可行;(3)有意思;(4)做好了都能作大;(5)適合.net開發;(6)可出名(開源)或可賣錢(不開源);(7)和asp.net無關;

一,geotools的.net版

GIS會越來越火。目前GIS中介軟體都是數萬到數十萬人民幣之間。但開源2D GIS技術現在已經比較成熟了。資料庫有postgresql/postgis,Server端有c寫的mapserver和java寫的 geotools。mapserver的缺點就是開發和擴充套件不如geotools靈活,geotools的缺點就是效能。用.net來改寫 geotools比較有意義,難度不大。涉及到的內容主要是OGC規範,多維索引,快取等技術。寫好後應該不比國內幾萬塊錢的GIS差。輕量一點的是寫一 個map控制元件,支援小型地圖,支援有限的資料各式,適用於小型gis應用。

gis的原理很簡單,找本書看看就行了。英文好的,直接看OGC規範,然後對照geotools原始碼,就可以開寫了。sourceforge上有一個 geotools.net專案,那個不是geotools的.net版本。只是geotools中用到的java拓撲套件JTS的.net實現.

預計規模:
GIS控制元件:50-100個類;
geotools的.net版:500-1000個類;

偶在sourceforge上申請了一個專案:agilegis,本來想寫geotools的.net版的。沒業餘時間。有人寫的話偶把這個讓給他。

二,visio的.net版

visio好用但是也挺貴的。看過sourceforge上Netron Graphic Library的人可能會覺得,有了Netron Graphic Library,要寫一個有visio 80%功能的東西不會很難。寫UML設計軟體,都不是很難。你要是寫出一個java的這東西,永中可能會來要。不過有一點,這東西寫出來沒什麼難度,要寫 得好用,就有很大的難度了。

預計程式碼規模:300-1000個類

三,luma qq的.net版

luma qq是luma用java寫的qq client。有興趣的人可把它用.net改寫。這一塊是值得做的,拿電話為例,我們不單需要電話機,還需要交換機,還需要客服中心。隨著企業業務紛紛向 網上遷移,一個整合Web,IM,音訊,視訊,資料庫,知識管理系統的企業門戶2.0應該是需要的。這一塊難度也不算很大,不過開發量較大。

四,web挖掘基礎件

主要的可能就是spider,parser,中文分詞,索引技術,文字分類,自動排重。這些東西,單獨寫出來不算難,寫好有點難。不過對一般應用來說,寫 得過得去就行了。spider有很多。parser主要是兩種型別的,一種是把頁面解析成xml檔案,一種是解析成物件。中文分詞寫起來也簡單,關鍵是詞 庫的維護。索引和文字分類偶還沒寫過,但也沒有什麼難度。

目前java那邊的東西比較多,.net還比較少。象字串測量,這些東西,寫起來應該很有意思的。

我覺得需要解決的一個問題就是網頁的重複抓取,假設1000個人抓某一個網站,一天抓一次,那麼100天就要抓100000人次了。這樣會給別人帶來很大 的流量壓力。如何使只抓更新的資料,只抓一次。這可能得認真設計,得對網頁行為建模,用好hash,甚至引入一套p2p機制。

可能的用途:大型網站的自身管理;行業使用者的網站訂閱(比如訂閱10000個左右的網站,每天及時報告更新,使用者之間交換訂閱,訂閱別人的訂閱……可參考Nullgate在zixia bbs上關於p2pBBS的一些文章);資料採集(全自動的不好寫啊!)

五,web實體與行為挖掘

論壇,bbs 上的使用者,blog的主人,IM的ID,網路遊戲的ID都是虛擬實體。找到虛擬實體,這些虛擬實體有什麼樣的特徵,有什麼樣的關聯,有什麼樣的特點是一個 挺有趣的東西。進一步,由這些實體實現的行為有什麼樣的特徵。舉例子說,網路現象分析–一個有50萬人閱讀的帖子存在什麼規律。需求挖掘–現實中人的 需求如何通過網路挖掘出來,如,在XX地的青年對XX有什麼樣的要求?

採用的工具基本上是四中的東東,但是需要特殊的演算法和特殊的模型。做這個需要有很強的建模能力。

六,高效能.net伺服器端開發

對實時性要求不是很高的高效能伺服器端開發。高效能Server端圖形應用開發(如GIS應用),3D應用,這些傳統C++的優勢領域,用C# + C(<1%的程式碼用C寫)到底能不能替代?如果能的話,那實在是太好了。隨著未來多核處理器的普及,記憶體價格下降,.net的優勢越來越大。研究研 究未來系統軟體的架構。

七,程式碼閱讀

程式碼閱讀是提高水平的捷徑。閱讀程式碼,感覺有興趣的寫個case,交流交流,很好玩的。比天天搗鼓模式有趣多了。

組織建議:

(1)開源,但有不超過3個人的控制者,控制結構和功能

(2)迭代開發,從最小的來。拿第一個舉例,寫一個GIS控制元件用不了多長時間。

本文轉自xiaotie部落格園部落格,原文連結http://www.cnblogs.com/xiaotie/archive/2006/01/07/312858.html如需轉載請自行聯絡原作者


xiaotie 集異璧實驗室(GEBLAB)


相關文章