背景:
關(guān)于英文對程序員的重要性,就不多說了!
英語的學(xué)習(xí),有很多,今天也不聊多,只聊英語單詞!
關(guān)于單詞的記憶,找過很多方法,下載過很多軟件。
如圖(其它不好用的都卸載了):
上圖算是我以前用過軟件,注意,是以前哦~~~
意思就是沒有堅持下來~~~~
隨時間的推移,最后它們還是被我遺忘了~~~
為什么???不能:堅持!堅持!堅持!
學(xué)習(xí)思考:
一直在找方法:
1:下載過聯(lián)想記憶法、背文章記單詞,詞根,各種視頻~~~
2:連單詞的數(shù)據(jù)庫都網(wǎng)上下載了一份了,期望從數(shù)據(jù)庫的直接記憶單詞快些~~~
通過各種查詢語句,整理相似度的來記,才1天,就沒后文了~~~
每天都在占用時間的事情:
可能寫框架,可能寫博文,可能其它事,一天一天過的很快~~~
于是,就在反反復(fù)復(fù)中~~~忘了背背了忘~~~~~
經(jīng)過重新的思考之后,我覺方向錯了!
我應(yīng)該找一個如何堅持的方法,而不是繼續(xù)找一個如何更快速學(xué)習(xí)的方法。
像產(chǎn)品經(jīng)理一樣思考(做個小程序(網(wǎng)頁版))
我思考著,怎么利用下載的單詞數(shù)據(jù)庫來做點(diǎn)什么讓自己能更好的堅持。
一開始思考,每天抓取CodeProject上的英文文章1篇;
然后分析單詞頻率,把頻率最高的10個單詞做為學(xué)習(xí)的方向。
后來又被自己否了:
1:出現(xiàn)的頻道高的一定是那些the that this is a apple之類的,沒有意義,要做過濾的話,工作量又大。
2:讀一篇文章,學(xué)幾個單詞,估計很難堅持(畢竟從小到大都是這種學(xué)習(xí)模式,已經(jīng)無數(shù)次驗(yàn)證了沒用)。
3:純記憶的短期記憶學(xué)習(xí),和浪費(fèi)時間沒差別,又不是應(yīng)付短期的考試。
于是,光單詞的展示不行,必須要有思考和交互在里面!
目前的暫時效果是這樣的:
最終思路:
1:One Day Two Words,一天2個單詞(一開始是10個,后來覺的多了,畢竟有互動,要打字,怕10個容易堅持不來)
2:單詞印象:每個人都會對單詞進(jìn)行評論(人玩多了,就會產(chǎn)生很多有意思有評論,前提是看大伙會不會玩)
3:造句:小時候?qū)W中文字的時候,老師都叫我們造句的,為什么長大后學(xué)英文就沒強(qiáng)制這個要求了?
4:我的記錄:可以查學(xué)過的詞~~~~
5:單詞庫有3萬多個,我挑了雅思共4034個詞,隨機(jī)出!
總體而已,主要是降低學(xué)習(xí)難度,這樣容易堅持~~~
整體完成后,感覺還不夠,內(nèi)心隱隱都覺的還缺少什么,后續(xù)看看網(wǎng)友有什么建議~~~
技術(shù)思路(時間,給自己半天時間完成任務(wù)):
1:要支持手機(jī)瀏覽:
一開始還想著弄個前端的框架,或者弄個JQ Mobile之類的,搞個html+api請求。
后來光找框架和看Demo就花了不少時間,感覺做個簡單的東西這么費(fèi)時間,然后直接給我畢了。
于是,用Table,最好的兼容,最容易的布局!
用WebForm的ASPX,最省時的處理手段。
2:性能與并發(fā)的考慮:
網(wǎng)站要部署在原有的VPS上,1共就1G內(nèi)存,已經(jīng)跑了六七個網(wǎng)站了。
因此站用資源要少,性能要好,要經(jīng)得起人民的考驗(yàn)。
數(shù)據(jù)庫:
一開始是計劃用文本數(shù)據(jù)庫的;
但原有的單詞數(shù)據(jù)已經(jīng)在sql2005上了,順手用sql2000了。
性能和并發(fā):
頁面要簡單,能省多少是多少,于是一個JS都木有了;
對單詞做了緩存,對單詞的評論提交做了隊列寫;
考慮到訪問量并不大,展示是直接讀的數(shù)據(jù)庫,有自動緩存。
安全:
考慮到并不是人人都很友善,會不會有人故意提交大量的一堆垃圾數(shù)據(jù)過來呢?
于是在后端做了簡單的安全的驗(yàn)證。
前端的驗(yàn)證也很簡單驗(yàn)證了一下長度。
3:音標(biāo)采集:
自帶的詞庫,有些單詞的音標(biāo)可能缺少,因此需要有一個采集的過程。
于是要找一個可以采集的點(diǎn),一開始定位去百度里找:
寫了代碼采了一下,發(fā)現(xiàn)單詞都在js里混淆輸出。
想用百度API,發(fā)現(xiàn)要Money~~~~
時間很緊張,因?yàn)橹唤o自己一個下午的時間~~~~
后來又找了幾個,最后發(fā)現(xiàn)還是微軟家的親切:
圖片框起來的,但是,是采不到的,因?yàn)橐彩荍S里混淆的,然而:
標(biāo)題描述里竟然有音標(biāo)~~~這都被我發(fā)現(xiàn)了,寫一段這樣的代碼就可以拿到了:
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; }
擴(kuò)展的知識點(diǎn)IndexOf:
當(dāng)我簡單用WebClient的DownString拿到html存在result變量時(UTF8編碼)。
result=".....英[......";
我用:result.IndexOf("英["),竟然返回-1,我納悶了一下。
通過SubString截掉前面變成:result="英[...";
于是:result.StartWith("英["),竟然返回false,我糾結(jié)了一個。
可是:result[0]==‘英' && result[1]=='[' 即是true的。
后來搜了一下,才發(fā)現(xiàn):
1 | html.IndexOf(key, StringComparison.Ordinal) |
這樣就正常了,解決在于:StringComparison這個參數(shù)了。
雖然理解參數(shù)的意義,但是不解的是:
這里并木有特殊的第三方字符?
而且采集的幾千個詞,有1000多個出現(xiàn)這種情況,目前無解,只能注意?。?!
最終成果:學(xué)單詞地址:
單詞數(shù)據(jù)庫下載地址:
如果你需要單詞的數(shù)據(jù)庫,就在這里:
http://download.csdn.net/detail/cyq1162/9445894
總結(jié):
就這樣,昨天花了一個下午,半個晚上,今天又半個下午,把這個小程序給完成了。
希望能堅持~~~大伙也一起來,一群人堅持,比一個人更容易堅持!
版權(quán)聲明:本文原創(chuàng)發(fā)表于 博客園,作者為 路過秋天 本文歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則視為侵權(quán)。 | |
Donation(掃碼支持作者):支付寶: 微信: |