關於英文對程序員的重要性,就很少說了!html
英語的學習,有不少,今天也不聊多,只聊英語單詞!前端
關於單詞的記憶,找過不少方法,下載過不少軟件。程序員
如圖(其它很差用的都卸載了):sql
上圖算是我之前用過軟件,注意,是之前哦~~~數據庫
意思就是沒有堅持下來~~~~小程序
隨時間的推移,最後它們仍是被我遺忘了~~~後端
爲何???不能:堅持!堅持!堅持!api
一直在找方法:緩存
1:下載過聯想記憶法、背文章記單詞,詞根,各類視頻~~~安全
2:連單詞的數據庫都網上下載了一份了,指望從數據庫的直接記憶單詞快些~~~
經過各類查詢語句,整理類似度的來記,才1天,就沒後文了~~~
天天都在佔用時間的事情:
可能寫框架,可能寫博文,可能其它事,一天一天過的很快~~~
因而,就在反反覆覆中~~~忘了背背了忘~~~~~
通過從新的思考以後,我覺方向錯了!
我思考着,怎麼利用下載的單詞數據庫來作點什麼讓本身能更好的堅持。
一開始思考,天天抓取CodeProject上的英文文章1篇;
而後分析單詞頻率,把頻率最高的10個單詞作爲學習的方向。
後來又被本身否了:
1:出現的頻道高的必定是那些the that this is a apple之類的,沒有意義,要作過濾的話,工做量又大。
2:讀一篇文章,學幾個單詞,估計很難堅持(畢竟從小到大都是這種學習模式,已經無數次驗證了沒用)。
3:純記憶的短時間記憶學習,和浪費時間沒差異,又不是應付短時間的考試。
因而,光單詞的展現不行,必需要有思考和交互在裏面!
1:One Day Two Words,一天2個單詞(一開始是10個,後來覺的多了,畢竟有互動,要打字,怕10個容易堅持不來)
2:單詞印象:每一個人都會對單詞進行評論(人玩多了,就會產生不少有意思有評論,前提是看大夥會不會玩)
3:造句:小時候學中文字的時候,老師都叫咱們造句的,爲何長大後學英文就沒強制這個要求了?
4:個人記錄:能夠查學過的詞~~~~
5:單詞庫有3萬多個,我挑了雅思共4034個詞,隨機出!
整體而已,主要是下降學習難度,這樣容易堅持~~~
總體完成後,感受還不夠,心裏隱隱都覺的還缺乏什麼,後續看看網友有什麼建議~~~
一開始還想着弄個前端的框架,或者弄個JQ Mobile之類的,搞個html+api請求。
後來光找框架和看Demo就花了很多時間,感受作個簡單的東西這麼費時間,而後直接給我畢了。
因而,用Table,最好的兼容,最容易的佈局!
用WebForm的ASPX,最省時的處理手段。
網站要部署在原有的VPS上,1共就1G內存,已經跑了六七個網站了。
所以站用資源要少,性能要好,要經得起人民的考驗。
一開始是計劃用文本數據庫的;
但原有的單詞數據已經在sql2005上了,順手用sql2000了。
頁面要簡單,能省多少是多少,因而一個JS都木有了;
對單詞作了緩存,對單詞的評論提交作了隊列寫;
考慮到訪問量並不大,展現是直接讀的數據庫,有自動緩存。
考慮到並非人人都很友善,會不會有人故意提交大量的一堆垃圾數據過來呢?
因而在後端作了簡單的安全的驗證。
前端的驗證也很簡單驗證了一下長度。
自帶的詞庫,有些單詞的音標可能缺乏,所以須要有一個採集的過程。
因而要找一個能夠採集的點,一開始定位去百度裏找:
寫了代碼採了一下,發現單詞都在js裏混淆輸出。
想用百度API,發現要Money~~~~
時間很緊張,由於只給本身一個下午的時間~~~~
後來又找了幾個,最後發現仍是微軟家的親切:
圖片框起來的,可是,是採不到的,由於也是JS裏混淆的,然而:
標題描述里居然有音標~~~這都被我發現了,寫一段這樣的代碼就能夠拿到了:
private string GetWordPronunciation(string word) { string pronunciation = string.Empty; WebClient wc = new WebClient(); wc.Encoding = Encoding.UTF8; string result = wc.DownloadString("http://cn.bing.com/dict/search?q=" + word); string key = "英["; int index = result.IndexOf(key, StringComparison.Ordinal); if (index == -1) { key = "美["; index = result.IndexOf(key, StringComparison.Ordinal); } if (index > -1) { int end = result.IndexOf(']', index); pronunciation = result.Substring(index + key.Length, end - index - 2); } return pronunciation; }
當我簡單用WebClient的DownString拿到html存在result變量時(UTF8編碼)。
result=".....英[......";
我用:result.IndexOf("英["),居然返回-1,我納悶了一下。
經過SubString截掉前面變成:result="英[...";
因而:result.StartWith("英["),居然返回false,我糾結了一個。
但是:result[0]==‘英' && result[1]=='[' 便是true的。
後來搜了一下,才發現:
html.IndexOf(key, StringComparison.Ordinal)
這樣就正常了,解決在於:StringComparison這個參數了。
雖然理解參數的意義,可是不解的是:
這裏並木有特殊的第三方字符?
並且採集的幾千個詞,有1000多個出現這種狀況,目前無解,只能注意!!!
若是你須要單詞的數據庫,就在這裏:
http://download.csdn.net/detail/cyq1162/9445894
就這樣,昨天花了一個下午,半個晚上,今天又半個下午,把這個小程序給完成了。
但願能堅持~~~大夥也一塊兒來,一羣人堅持,比一我的更容易堅持!