最近心血來潮,搭建了個人網站,一方面想學習下新的知識,另一方面也想有個作品,在這分享下自己的體會,先不說知識點。
建站容易嗎,因人而異,而我在完成這個最最簡單的工作時起碼經歷了3個階段不同的心理變化,我也很意外。
第一階段 - 信心滿滿:
前端不就是Html,CSS和JS三劍客嗎,配個Java后端實在是太簡單了,況且還有bootstrap和Spring框架,5分鍾不用就能打好。由於公司用eclipse而到處都誇idea,所以我打算用新的編輯器去做,而就這個簡單的決定卻花費了不少時間,開始打擊我的信心。
什么問題?就是熱部署,在eclipse中項目啟動后若是更改了文件保存,如果勾選了自動build就會自動編譯,改變的代碼立刻會被使用。而idea則不是,於是乎面向百度編程,在經過幾個方案的設置后會發現自動編譯是可以了,但是如果這樣設置debug模式不可用(蛋疼),然后繼續查找信息,終於翻到了一篇信息解釋了這個問題,最后綜合考慮還是選擇手動編譯來進行運行時的部署。
問題1牽扯出問題2並且很可能會有問題3、4...,最關鍵的是當問題一連串的拉出來時,越末尾的問題越難查。已經不是百度第一頁,百度前幾條就能解決的,而且很多時候並沒有100%針對你提問的,很可能這篇文章只有50%,另一篇30%,要將幾篇文章結合起來,才能對目前的困難有個初步的解決方案。在這過程的難免會碰到路走不通的情況(沒人為你這問題提供回答),或者是路途崎嶇(改個BUG還得刮骨療毒),這時取舍權就在自己手中,這跟工作是不一樣的,自己建站是沒人幫助的,沒有上司拍板,沒有明確的目標要求(一句話,靠自己)。
第二階段 - 死磕到底:
為什么要做網站,還不是想有點追求。
那做的途中就會碰到很多阻擋你追求腳步的障礙,例如bootstrap的模態窗(就是個彈窗),在我使用時會發現,瀏覽器頁面如果有滾動條再配合固定的頂部導航欄,那么彈窗彈出時會將滾動條弄消失,然后頁面元素會撐滿,關掉彈窗會讓頁面恢復之前的樣子,有種鬼畜的樣子:
打開模態框前:

打開模態框后:

是不是很不爽,我才剛用bootstrap來建立帝國,結果弄個彈窗就告訴我大清亡了?
於是又百度沒准是我使用姿勢不對,就是這次經歷讓我深有體會,框架什么的使用方法,其實真的不會很具體的教你什么,運氣好你按教程做了,完美出效果。但更多情況會有各種問題,甚至連教程都看得一臉懵逼(怎么這么不詳細啊擦),結果操作正確,bootstrap的確存在這個問題....
又到了老套路解決問題的時候,結果因問題偏回答的不多,並且一些答案單看是不知道對不對的,還得嘗試,可能解決了當下這個問題卻對其他正常功能造成影響。最后是在不起眼的角落里最優解。
這個只是建站中的一個小插曲,還有許許多多意向不到的問題,例如雲服務器數據庫被入侵,服務器Tomcat部署各種報錯等等。
第三階段 - 敬畏並充滿希望:
初生牛犢不怕虎,工作中很多外在的框架,環境部署等等外部條件都是別人搭建好的。往往只要寫業務邏輯即可,當自己動手后發現外面的世界很大很大,自己腦海里蹦出的小要求,簡單的效果,網上一搜都是值得深挖的東西(例如各種驗證碼,現在都涉及到大數據分析用戶行為來判斷是人還是機器,而不是簡單的驗證)。一些以前自認為懂得知識點竟然還有很多小細節(用了這么久的JS,你參透原型鏈了嗎,並以此為原理來解釋下你的JS繼承為什么要這么寫嗎)。
書到用時方恨少,不只是功能,更有性能(緩存的使用等),安全(CSRF等)其他平時很少注意的問題(都是大佬們寫好了)。一些技術的使用后再了解下背后的實現,設計思想也是十分有意思的(例如Springboot,Spring這些,用起來很方便,很強大,可是為什么呢,其實沒有魔法沒有duang,都是程序員一行行代碼堆出來的)。
現在底子已經勉強建好了,各種知識點都可以在里面嘗試,有趣的或者很坑的我會記錄下來和大家分享~
歡迎關注,博客會陸續推出有意思的知識點和各種神坑,希望和大家一起探討。
網站地址為:https://www.top-housekeeper.xyz
等網站再成熟點會公布git地址,目前網站運用到的知識有:
1.js知識:面向對象編程思想(創建工具類,封裝ajax形成統一的請求和回調流程,對象的基礎設計)、繼承的實現(包含原型鏈知識)
2.html和css知識:盒子概念、各種定位
3.bootstrap:模態框、彈框、導航、輪播圖
4.jquery:ajax的使用
5.java:一些設計思想、log4j2等插件的使用
6.springboot:對系統異常的統一攔截、對前端不同數據的接收和返回(跳轉)、攔截器、過濾器、系統初始化、mybatis
7.freemark:模板的使用
8.redis
9.mysql
10.linux:mysql、redis、https的設置、tomcat
11.網站安全:數據庫安全、XSS攻擊、滑動驗證碼的設計
