軟件開發(fā)入門知識總結
長春軟件開發(fā)入門知識總結
目前軟件開發(fā)后端市場主要被JAVA/.NET/PHP三足鼎立,.NET這一足最近幾年已經呈現逐年下降的趨勢,畢竟微軟的WP系統(tǒng)(WindowsPhone系統(tǒng))沒發(fā)展起來!
軟件開發(fā)移動端(客戶端)市場操作系統(tǒng)玩家主要是Android、iOS,基于他們的客戶端開發(fā)語言分別是Java、Objective-C(Swift)。服務端可以由JAVA/.NET/PHP這三家的Web開發(fā)支撐。
任何軟件都分為三端:前端(包括Android、iOS、H5)、接口(--客戶端和后端交互的接口)、后端(服務端、支撐端)。H5屬于Web前端,Web前端涉及的技術有HTML、CSS、JavaScript等。后端會和數據庫端打交道,數據庫常見的有MySQL、Oracle、SQL Server、DB2、Sybase。
一提到web開發(fā),目前在世界上流行性的三個幫派就是php,java和asp.net,這個世界上的百分之99的網站或者類似的應用都是由這三種語言的開發(fā),這里請原諒我忽視某些小眾語言如python之類。三種語言經過長達十幾甚至二十多年的發(fā)展形成自己的生態(tài)圈,生態(tài)圈里面的世界千姿百態(tài),生態(tài)圈外面的世界大漠黃沙、寒風凌厲。所以不管你是準備進入web開發(fā)的新人還是準備轉型其它生態(tài)系統(tǒng)的老鳥,這篇文章都能給你很大的收獲。
俗話說,技術是為生活服務的,這句話一點都不假。先人看到鳥就發(fā)明了飛機,在計算機領域幾乎所有應用都能夠在日常生活中得到啟發(fā)。現在我們就用最通俗易懂的方式---超市來比較這三種語言的生態(tài)系統(tǒng)的差別。
如果把web開發(fā)比做開一家超市,網站的內容就是超市里面擺放的琳瑯滿目的商品,數據庫就是這個超市的倉庫,html5(抱歉,現在都是html5時代了,麻煩你就不要再用以前老掉牙的東西了)就是這個超市的貨架,web服務器就是用來讓你去選擇購物的一條條道路,而和你互動的javascript就是那些穿著卡哇伊短裙的促銷小姐或者你們老公吳亦凡。
那么先說php,為什么呢?因為php是最吼的語言。php在web中的優(yōu)勢是數都數不過來,所有web應用中百分之七十都是php做出來的沒有理由讓你不先說它。如果用php做超市開發(fā),那么php在生活中就如同紅旗連鎖、舞東風(不好意思,成都就這兩個多)或者你家樓下或者拐角任意的一家便利店。php開發(fā)有什么優(yōu)點呢?快捷、高效,你不需要花很多的錢就可以開一家便利店了,僅僅在開始階段使用LAMP(linux+apache+mysql+php)就可以做網站開店運營。學習成本是最為低廉的,如同只要你有點小錢就能在老家開個便利店一樣,任何一個有點基礎的程序員都能夠在一段時間學習之后就能使用LAMP找個筆記本或者五六年前的臺式機去搭建個網站,所以相對沃爾瑪那種大型超市或者萬達廣場,你身邊的便利店是最多的一樣,php開發(fā)的web應用也是最多的。
優(yōu)點分析:
1.php的生態(tài)環(huán)境標配就是LAMP(linux+apache+mysql+php)其實這句話是不完整的,完整說起來是html5+javascript+php7+linux(選擇centos7或者ubuntu)+apache(或者nginx或者其它)+mysql,現在已經進入云計算時代了,懶得折騰配置的人直接去阿里云租一臺最 便宜68元包月的云服務器,足夠支撐一兩萬人服務,類似學校、工廠、單位的使用了(如果我這篇文章火了,阿里云童鞋請贊助我廣告費),一旦服務器出現問題,阿里巴巴有一群高薪苦逼的程序員隨時幫你解決問題,這就直接把服務器維護者的工資省了。
2.這里特別推薦直接上手php7,因為php7比以前的版本性能上直接提高了100 %還要多,實現模塊化管理,后期便于進行業(yè)務拓展,業(yè)務拓展的意思就是你開的便利店想要擴大規(guī)模把先把隔壁的房子也租了直接打通,可以放更多的貨物,模塊化的管理讓你進行升級時候更容易,比如多加一個服務器之類的。
3.這套方案的除了你需要買一臺服務器或者租個阿里云之外,其它的一切都是免費的,如果你是學生黨或者剛工作的,用自己筆記本或者臺式機在最開始的日子湊合湊合也行,那就是零消費了。
4.nginx能夠實現反向代理,這個功能老牛逼了,用apache還是nginx真是幸福的煩惱。
缺點分析:
后期延伸性相對差一點,隨著人流量增多,你也有錢了,想要開連鎖超市或者大賣場的時候,問題就出現了?因為web開發(fā)的后期問題都集中在流量和數據庫上面,雖然現在php7已經在優(yōu)越性提高了很多,但是你還是會發(fā)現不能滿足你的需要,你的商店人滿為患,大家結賬需要排好久的隊伍,當隊伍后面等的人不耐煩就會開車去沃爾瑪購物,體驗性也會越來越差(很多大公司比如facebook都解決了這個問題,但是人家技術積累不是你開便利店掙得錢能夠實現的,如果你真實現了請我吃飯),你不得不選擇其它解決方案,比如java。
所有人都說java與生俱來的模塊化編程就是為大型軟件開發(fā)服務的,因此黑java的人說java最 大的本事就是把一個小的項目開發(fā)成一個大型項目,這也從一個側面體現出了java是團隊開發(fā)的不二之選。那java是什么呢?java就是沃爾瑪、家樂福、永輝那種大型賣場,java有足夠多的框架和開源項目讓你解決目前你能夠解決的一切賣場問題,一個倉庫的東西不夠,沒關系我們采用分布式數據庫來解決,一個收銀臺不夠,沒問題我們先采用多個web服務器來增加收銀臺數量再采用負載均衡服務器把人流平均分到多個收銀臺中,這樣人們就可以很快的付錢回家。如果采用刷支付寶或者微信支付,那服務器是不是要經常調用用戶的信息?沒問題,采用緩存服務器就行了,把用戶的信息直接放到緩存的服務器中,這樣每次就不用去數據庫調用了,數據庫的負擔大大減少。如果你要問這些技術去哪里學,阿里巴巴已經把很多類似的技術開源了,去網上找唄。因此用java進行web開發(fā)是只有你想不到沒有你做不到,想想天貓雙十一那么大流量人家都搞定了,何況你現在遇到的這些毛毛雨。
下一篇:樣本畫冊設計要求