文章出處

  大一學c和c++,寫黑底白字的程序,求水仙花數,階乘。不知道程序有何實際作用。 迷惘到大二下半學期,覺得不能再這樣下去,一次偶然的機會,學校網絡中心招asp.net程序員,我去試了下,就進去了。在那里培訓.net和c#,看著師兄用asp.net做網站,開始覺得程序可以這么用。

  從那時起開始步入寫程序道路,當時跟著師兄學,覺得進步不太,就自已看書,期間幫學院做專業特色網站,第一次練手有點緊張,但還是很快做好了。在工作室陸陸續續做了好幾個網站,越來越熟練了,開始了解javascript, 那時的js水平很弱,就是從網上找一些特效,然后自己再改改。

  到了大三,看了幾本好書,也經常逛博客園看別人的技術文章,覺得開始領悟程序之道,開始關注代碼簡潔和性能,知道拿別人寫得好的代碼改進后為自己所用,這期間邊看.net書籍和javascript書籍, 邊幫老師做了幾個外接的網站,覺得很有進步。例如開始關注.net的底層,類庫的實現,這時候發現.net不是開源的,所幸有reflector反編譯工具,基本上可以看到源代碼了。

  但當時已覺得跟著.net走 也許不是明智的,盡管我非常喜歡c#這種優雅的程序語言,例如泛型,lambda表達式,匿名方法,擴展方法,委托與事件等。但覺得應該學學一種開源的,更被廣泛使用的語言(php)。 這時候恰好也在看javascript權威指南,學習過程中與c#對比,發現這種弱類型的語言非常靈活和簡潔,不像c#或java這樣的強類型語言那么龐大,這使我對javascript的興趣大增,當時把權威指南看了幾遍, 特別注重理解了javascript的閉包,作用域鏈,原型鏈等等。

   大三下半學期做數據庫課程設計,在卓越買了一本國外寫的asp.net mvc書,第一次接觸mvc,與之前的asp.net比起來簡潔清晰多了。對asp.net的好感多了一分,用mvc做網站時,用javascript更方便了,也真正像是在做web開發了,開始知道看http請求和響應了,知道請求和響應標頭的意思了(accept-encoding,cache-control,last-modified,server),會根據http狀態碼來判斷網站故障了(200,304,404,500)。 從這以后更加注重網站性能了。

  課程設計做的是一個電子政務欄,有消息發布,活動申請,經費審批等,當時還不知道OA流程,但自己也弄了一個申請-審批-反饋的流程出來,當時主要是用程序實現跳轉,在跳轉前判斷一些邏輯是否滿足,在跳轉時傳遞一些數據等做法。再者就是當時第一次大量使用jquery來做頁面特效和客戶端驗證,網站操作起來有點gmail的感覺了。

   到了大四上半期,繼續在幫老師做網站,做了一個韶關藥師網,當時把自己學到的新東西都用到網站中去,例如jquery ajax, jquery ui,mvc,linq,當時對ajax實現的無刷新加載效果非常感興趣,所以在網站中 幾乎都在使用ajax加載,提交等。

  大四上了兩個月課,就去北京實習了,自己在網上投簡歷,被一家北京創業公司(別貓網)要去做asp.net程序員,當時他們網站已有了第一版,是包給一個有幾年經驗的.net程序員做的。但我們仍然覺得他的代碼不是很好, 例如他沒有考慮網站訪問量大時的情況,也沒有考慮瀏覽器兼容性,當時某些功能是ie中是用不了的。所以一開始去的時候只是在改他留下的bug,后面發現有些東西改起來很費勁,就和團隊商量重做了。商量的結果是用 asp.net mvc來做,于是和同學兩個人負責一個那么大的網站,大家都是第一次做社交網站(圖片問答網站,類似于quora,他在,無覓)。

  兩個人寫了幾個月c#代碼,慢慢的發現代碼都要失控了,維護代碼費時間。雖然我們兩人都有代碼潔癖,但當時對設計模式都接觸不多,所以我們的代碼沒能做到很簡潔和抽象,所幸當時是用mvc架構做的,代碼還不至于失控,只是維護費時間點, 另一個就是當時網站前端用的js和jquery非常多,整個網站很多功能都是無需刷新就能實現的,用戶體驗也好。后來js寫得太多有點混亂了,就自己封裝一些常用的函數和控件,例如ajax請求函數,內容滾動插件,hovercaerd插件等。 在別貓網上線后,因為用的是普通的vps,訪問數一多網站就容易掛,于是我們在網站中大量使用了cache,有頁面緩存,局部緩存和數據緩存等,又在前端中優化了靜態資源的加載,例如采用異步加載js的方式 來加快網頁的加載速度,采用lazyload延遲加載來加快網頁渲染速度,合并js和css文件減少前臺請求數,采用圖片服務器的來專門存放圖片以降低網站服務器的壓力等。

  在數據庫設計上也考慮大并發的情況,例如采用冗余字段來減少表間的join(連接)操作,like操作配合top一起使用避免全表查找,select查找只查需要的列等。 做了這些后,還順便百度學習如何優化服務器配置等等(用的是iis服務器,當時想做的效果是nginx來做統一轉發,數據庫,網站和靜態資源各配置一臺服務器)。 在北京實習的6個月是進步最快的,工作在第一線,經常為解決技術問題而熬夜等。收獲了認真踏實的工作態度。再者就是javascript水平進步很大,幾個月中寫了很多js,對一些javascript的獨有的語言特性了解的全面了, 面向對象javascirpt的prototype,原型鏈也比以前理解的更好了。

  最后就是由于同學會php的原因,我也對開源的東西喜愛更深了,對php的好感多了很多,php的開源產品(dedecms,discuz,thinksns,ucenter)多,而且php和js一樣 同為弱類型語言,還有很多函數的用法也一樣(array_push,array_slice等),所以從北京回來后也開始學習php了。 未來的感悟,就是要多研究下開源產品,其實這一年中也接觸了不少開源的東西,.net的有json.net, log4net, nuget, lucene.net等,php的有dedecms, thinksns等。未來會將更多精力放在研究別人好的開源產品上去。在技術選擇上也會優先學習開源的php,當然還有javascript了。


文章列表


不含病毒。www.avast.com
全站熱搜
創作者介紹
創作者 大師兄 的頭像
大師兄

IT工程師數位筆記本

大師兄 發表在 痞客邦 留言(0) 人氣()