寫點啥-智慧黑板

今晚有點睡不着,隨便寫點啥吧,有一段時間沒上班了,剛離職那會面了兩家公司,基本沒怎麼談我就走了,因爲要筆試,呵呵。不是怕筆試,是因爲看到筆試的題目就沒了食慾,各種sql統計,行轉列等等,這些sql統計考點就兩點,其一行集合的構建輸出模型(這個我相信一般都知道),其二就是熟悉那些關鍵字。我也面過不少人,從來不會說要求職者寫概念和業務性的東西,最多寫個單列、排序、鏈表、再深一點二叉、紅黑。當然這些只要寫僞代碼,有思想就行,實話實說寫業務系統很少會用到它,但是如果寫公共底層一點的東西,沒這些數據結構還真不行,即便你能把功能實現,那也是相當脆弱的,就算勉強可以,後期基本談不上維護了,一動就跨了,性能也會讓人擔憂。再後來工作就沒去找了,中間也有老東家找我,在這非常感謝老東家的認可。這幾天有點激動,以前的一個領導要我去他的另外一家公司看看,因爲當年跟他混的時候,給了我團隊,給了我職位,給了我全新的項目,後來在編碼階段沒過多久我就離職了,後面回過頭想想,那很不負責任,leader說走就走,同時也留下了遺憾,沒能堅持把那個項目做完,歉意了領導的信任。
下面簡單說下我現在做的東西,智慧黑板,我相信在教育領域,以後老師教學,不管是多媒體教學還是普通教學,黑板都會被這樣的產品替代,我也沒具體去學校瞭解,可能現在就已經大規模應用了。在這個行業做的比較好的應該是西沃和網易,西沃好像軟件硬件一起做。這個產品(暫時這麼叫吧,因爲我還沒做完,太龐大了)是我兩年前就寫了一部分,當時是寫完k線之後寫的,當時寫的授課端,因爲備課端般蠻的話可以集成ppt的組件實現,當然那太low了。智慧黑板我目前是參考西沃的產品,分爲兩大塊,備課端和授課端,可以這麼理解,備課端就是製作ppt,授課端就好比播放ppt,當然沒有ppt那麼強大,當然有些功能是ppt也沒有的,要不直接用ppt就行了。今天主要是簡單介紹下備課端這邊的功能以及簡單實現,下次介紹授課端,下面我截了一張圖,把我做的備課端大部分功能都寫上去了。
 

 

 



智慧黑板我這邊是基於wpf net4.5 prism mvvm框架開發,好像現在比較老了吧,具體不清除很久沒關注wpf winform了,題外話,有人說wpf現在能跨平臺?目前來說還不行哦,clr層面的跨平臺和驅動層面的跨平臺不是一回事哦。目前wpf winform移植到netcore,個人感覺可能微軟想丟棄netframwork這個包袱吧,而且netcore的新特性也得到支持,之前的版本以前反編譯看過代碼,有點亂、龐大不好維護(猜的,我也不懂)。就算幹工程也比較大吧,因爲驅動層面的東西需要大量兼容,比如GUI等。樣式醜了點,將就看吧,wpf style tigger我的硬傷啊,不熟,哈哈。後續再花時間寫樣式吧。備課端的功能模塊,大概分四塊,左邊導航頁,上面菜單,有按鈕和下拉,後邊屬性和動畫,屬性主要針對文本和2dPath,動畫部分我還沒做,反正就是固定的那幾種,比如百葉窗等等,中間就是畫板了,所有東西最後繪製在這個畫板上面,可以任意拖動,旋轉。這上面的主要功能我還差3d,3d有一定的專業知識,後續再完善。下面簡單介紹下功能實現。
文本編輯器,wpf文檔流api相較winform豐富多了,以前擴展過winform的richbox,那是相當痛苦,各種查api,win消息,hook等。文本編輯器支撐的數據結構主要是紅黑樹(包括段落,文字等都應用了紅黑樹),因爲紅黑自平衡的特點,在搜索索引方面性能很好,其實文本編輯器背後的結構就是一堆索引,而且是內存結構。這裏我在文本字符串上面也應用了紅黑樹,不知道是否合理,大數據我也沒測試,後續再優化吧。
表格,看上去像datagrid吧,其實這個表格就是原生文檔流實現的,跟上面的文本編輯器有類似,裏面的合併單元格都是自己手擼的,沒有接口。
形狀,比較簡單算規矩,通過path繪製,path強大到能模擬3d,簡單的3d,只是如果使用path畫簡單3d,就會失去wpf對3d的一些特性支持。
統計,這個是用的三方組件,其實自己去實現簡單的也很簡單。
思維導圖,做這種很不規則的東西,建議大家不要一上來就是考慮哪些情況,這種完全沒規則的東西,只能通過算法解決,儘量優化到沒有ifelse,當然我的意思是if else儘量不參與業務判斷。思維導圖我用的是雙向鏈表(當然它是個變種鏈表),剛開始用的樹,後面發現增刪節點很大可能,導致全局繪製,因爲它需要自平衡,節點不能往一邊跑,導圖的左邊也可以增刪節點哦。
元素在畫板上的拖拽,縮放,這個我用的是老外的,稍微擴展了一點功能。
簡單介紹就到這吧,因爲這不是最終版本,很多地方需要優化,說深入了可能反而起了誤導作用,有細節問題可以私信我,最後這個東西比較龐大,要打造成產品,需要時間和人力。最後打個小廣告,k線組件,基於winform gdi+繪製,性能媲美c++,客戶用了都說好,有需要的可以聯繫我。
好了就到這吧。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章