成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

為什么我要寫自己的框架?

開發 架構
如果是在公司,肯定有大量的業務和需求需要實現,那就直接拿來用,如果你是學生,那你很幸運,你有大量的時間學習,那就從現在開始動起你的鍵盤開始編寫吧!無論多么困難,時間長了你就會發現,對整體的思考就越來越清晰,明確了!

我覺得編程的框架應該分為:直接用->拋棄->重拾

框架(framework)是一個基本概念上的結構,用于去解決或者處理復雜的問題。這個廣泛的定義使用的十分流行,尤其在軟件概念。框架也能用于機械結構。

其實說白了框架就是使用別人造好的輪子。在軟件開發里面就是command+C/command+V。

先自我介紹一下,我是一名信管專業的大學生,從我的專業可以看出我就是以后大家嘴里的程序員。洋洋灑灑寫了一些代碼,用了一些主流的框架,現在有一些體會分享給大家。

作為一個程序員學習一門新技術是讓人感到興奮的,隨之而來的問題就是如何快速的掌握語言吶?很多技術的過來人都不約而同的說:用別人已經造好的輪子 唄,你看,多省力,在很久以前我也是他們的一員,也喜歡使用大量的框架(js有jQuery、Express、socket.io.js等;PHP有 phpword、Yii、laravel;html里面有Bootstrap、bootcss、normal)。曾幾何時,我覺得很興奮,在如此短的時間內就可以做到這樣的高度,讓我十分的開心。開發出的內容也完全符合校內應用的需求。我變成了一個別人眼中的“大師”。

但事情并沒有往想象的地方發展。框架用的時間久了之后就發現了一個問題:我真的有學習過嗎?我學的內容真的有用嘛,這些框架內的東西能對我今后有幫助嗎,當然,這種想法不是一天形成的,還有一個小的故事。

在使用PHP開發網頁應用的時候,作為著名的Yii框架,網頁有大量代碼可以供我復制黏貼,我用的很爽,能在短時間內開發出項 目,bootstrap也可以幫助我在短時間內拼接出一個像樣的網站,也當上了校內某組織軟件開發部的負責人。但當有一天在講授開發經驗的時候,當我當著 大家的面真的靜下心來寫我需要展示的一個類的時候,以前用了這么多的框架,我發現在這么多人面前的我已經幾乎寫不出來一個正確的類了!!運行的時候不是這 邊有問題就是那邊出現了錯誤。原來在以前我只想著如何使用它,如何整合別人的代碼,卻忘了一個最最本真的東西:創造!我幾乎失去了編程的能力,變成了電腦 面前的代碼復制員。

結果是令人沮喪的,當天我都在思考這個問題:我今后到底能干嘛?是繼續做一個代碼復制員,還是打起精神,看看這些框架的背后有什么內容吧!

于是我就投入了看源碼的行列:我打開了bootstrap,打開了Yii框架的vender文件夾,打開了jquery,試圖去打開那個封裝起來的黑盒子,了解這些框架背后的智慧。

結局可想而知,作為css的bootstrap還可以理解,但是其他大型框架的代碼幾乎就是一座不可逾越的大山,讓人望塵莫及。難道就這樣放棄,繼續用下去,不觸碰那個永遠神秘的盒子了嗎?

答案顯然不是這個,電影《火星救援》的***有一句話說的很好:
你要么認命放棄,要么繼續投入工作,把它們都解決了。

然后我就睡了一覺!哈哈開個玩笑啦,沒有!我清醒了,喝了口水,跑了個步,馬上投入了工作,開始閱讀!然后發現我還是看不懂它!怎么辦吶,誒!我看 不懂,我可以按照自己對框架的理解編寫一個框架呀!于是我馬上投入了工作,大量的Google之后發現行不通,怎么辦!聰明的我馬上想到我不編寫整個框 架,那我寫部分功能也是可以的呀,于是就有了我的***個框架的擴展:DbFactory.php文件。

我很興奮,因為我終于開始創造點東西出來了,雖然他很基本,連接了數據庫,封裝了幾個方法,但是我覺得這距離大師又近了那么一丟丟,每天都是一丟丟,那我還得了哈哈!

當你真正的開始想讓你的代碼變的更好,你會去掌握和了解到更加多的知識,時間久了以后會在有一天瞬間茅塞頓開。
這就是開發里的量變引起質變。

當寫出這個文件的時候,我是很興奮的,馬上分享了出去,結果就是啥都沒有發生,世界還是那樣,我也沒有變帥,說明我在成為大師的路上只進步了一點 點,或者干脆沒有進步,只是知道的多了點。于是我又開始新的一輪學習,看大量的書籍,有一天我重新打開Yii框架在我當時看起來很難理解的代碼的時候我發 現:我居然有點明白它的工作原理,知道整體的架構了!

這個發現了這個的我很興奮,一個想法油然而生:為何我不開始編寫自己的框架吶!

說干就干,花了一天的時間就完成了基礎類和代碼的編寫,包括路由、模型類、控制類、一些基本的方法都封裝在里面,我覺得自己簡直太厲害了,居然在我 看來可以***的運行!我覺得已經可以了,于是就把它推了上去(ps:沒有加上自動require,只是在每個文件的最上面加上了),在不斷的測試之后就發 現,這邊有bug,那邊也有!require不使用絕對路徑簡直難用,整個框架想一盤散沙,一點都不好用,可擴展性幾乎沒有,我又陷入了沉思。錯在哪里 了!

真正的頓悟是在最近一次打開Yii框架源碼,看到了autoload之后頓悟:其實可以根據需求自動加載文件,很多問題也就解決了,當然,這篇文章也就列舉這一個問題,其實我碰到的問題不止這些,很多以前理解錯誤的地方也隨著編寫這個框架變的正確了✅。

下圖是我現在框架的架構。代碼太多,就不做展示了。

之后的工作就是讓框架更加的豐滿,不敢說比得上一些主流的框架,說實話根本不能夠和他們相比,無論從結構、思考還是思考上,編出主流框架的他們才是 真正的大師。但我通過這個至少有了自己的思考,尋找回了自己的創造力,讓自己距離真正的大師進了一點,不得不說這種進步是讓人興奮的。下圖是我早上剛剛啟 動的js框架。

***說一下我認為的好處:
1、對整體架構的思考
2、提高自己的創造力
3、提高自己獨立思考的能力
4、提高自己閱讀別人代碼的能力
5、用到和認識了大量的編程語言內置函數

下面是我的一點小建議:如果是在公司,肯定有大量的業務和需求需要實現,那就直接拿來用,如果你是學生,那你很幸運,你有大量的時間學習,那就從現在開始動起你的鍵盤開始編寫吧!無論多么困難,時間長了你就會發現,對整體的思考就越來越清晰,明確了!

 

責任編輯:王雪燕 來源: merjiezo
相關推薦

2014-07-09 10:56:44

.NET框架

2013-09-30 10:16:32

博客技術人員

2015-12-28 10:35:59

碼農寫作

2015-08-10 13:25:38

編程寫作

2019-12-27 14:47:06

Python編程語言

2012-09-26 10:02:44

框架開發項目

2012-04-04 22:07:12

Android

2020-08-14 09:11:29

RedisQPS數據庫

2012-02-28 09:11:51

語言Lua

2020-07-17 14:06:36

Scrum敏捷團隊

2015-08-13 13:24:53

Google重組

2023-03-09 08:23:07

序列化?接口方法

2024-03-25 02:00:00

Vite開發

2019-08-28 10:53:35

JavaScriptOptional Ch代碼

2020-05-13 09:03:14

Python開發代碼

2021-04-12 05:58:43

進程內核機制

2015-03-02 15:13:52

Apple Watch

2012-06-18 14:51:09

Python

2014-01-17 14:39:18

12306 搶票

2014-09-22 10:06:07

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线观看av网站 | 91亚洲精| 国产麻豆乱码精品一区二区三区 | 欧美4p | 黄色av网站在线观看 | 欧美电影免费网站 | 国产极品粉嫩美女呻吟在线看人 | 91久久久久久久久久久久久 | 成人字幕网zmw | 国产精品一区二区不卡 | 国际精品鲁一鲁一区二区小说 | 嫩草视频在线看 | 国产小视频精品 | 欧美日韩专区 | 在线视频中文字幕 | 一区在线视频 | 国产精品www | 欧美日韩在线高清 | 黄色精品 | 中文字幕乱码一区二区三区 | 在线播放一区二区三区 | 日韩视频精品在线 | 黄网站免费在线 | 日韩a视频 | 日韩中文字幕一区 | 国产欧美一区二区三区久久手机版 | 精品欧美乱码久久久久久 | www.一级片 | 久久久久久久久久久久久91 | av黄色免费 | 宅女噜噜66国产精品观看免费 | 欧美日韩在线视频一区二区 | www.99精品 | 欧美成视频 | 午夜一级大片 | 夜夜摸夜夜操 | 中文字幕第十页 | 夜夜骑首页 | 国产精品乱码一区二三区小蝌蚪 | 欧美精品在线一区 | 天天操一操|