小白專題,如何快樂的去裝逼

我常常遇到一些啼笑皆非的問題,好比誰能解釋一下什麼是API? 架構是個啥東西? 還有一些小白同窗 一上來就跟我說 想作微信開發 要學什麼。 php

我也看了知乎上的一些回答,總以爲這些回答不是給小白看的,懂的人不會問這麼「白癡」的問題,而不懂的人你的回答 只會讓他更迷糊。前端

因此我痛心疾首,摘了幾個回答過的問題在這裏回答一下小白的疑問。java

話說什麼是架構?如何簡短的描述一個項目的架構?程序員

舉個例子web

小時候你媽讓你打醬油
你怎麼作?
大熱天 你嫌熱,因此中午你不能去, 你要下午去,
走路去太慢 ,你想騎自行車去,
打醬油要帶零錢,帶醬油瓶 
因此你 下午 騎着自行車 帶着零錢和醬油瓶把醬油順利的打回來了。
關於打醬油,你的硬件架構就是自行車,軟件架構是瓶子和零錢,業務架構就是下午去sql

那麼再舉個例子,你老闆讓你開發一套電子商城,公司就你一個懂技術的,你怎麼辦數據庫

首先你得想電子商城賣啥,客戶是誰(誰會訪問,中國人仍是外國人),支付的貨幣是啥編程

誰會訪問決定了你的服務器應該在中國仍是在美國,若是你是全球客戶你還要想辦法作CDN加速。  而後你要註冊域名 ,你要考慮用什麼技術,服務器性能怎麼提高,用什麼web服務性能比較好,數據庫選擇什麼,你的客戶訪問量大嗎,是否須要對高併發作特殊處理 後端

全部這些可能出現的問題你腦子裏要得出一個最終的解決方案,買了誰家的服務器,安裝了什麼軟件,用了什麼加速服務,選擇哪一種服務(web,email發送,消息) ,要選擇什麼語言,什麼框架,使用什麼具體技術,代碼具體實現是怎樣的緩存

當你解決了全部的事情 從硬件-到軟件安裝-業務代碼 基本上你就是一個合格的架構師了。架構師不會去實現每一個具體的業務代碼,架構師直把基本的代碼實現出來,給個demo,剩下複製粘貼重複性的工做就交給程序員作了。

 

架構就是從無到有的如何把 「應用/系統/軟件/項目/產品」 作出來的具體的方式。包括硬件服務器選擇,軟件/服務的安裝使用,編程語言的選擇,該語言框架的選擇,具體編程技術的選擇,具體到一個增刪改查編寫的規範及前端的用戶體驗編寫規範。

因此架構師的工做就是 業務分析-》技術選型-》具體實現的Demo-》普及Demo讓普通程序員開發

那麼一個項目的架構,其實就是全部關於這個項目的解決方案的抽象描述。

一個典型的web項目的架構包含了他的硬件架構(好比 服務器集羣,Load Balance ,網絡配置 ,CDN方案);軟件架構 (好比 數據庫是否作讀寫分離 ,數據庫優化,nosql的使用,郵件發送方案,計劃任務,消息管理,緩存);業務邏輯架構(是否使用其餘公司的服務API,或提供服務API給其餘公司),代碼架構(什麼語言php 仍是java,什麼框架 mvc,restful,前端框架,後端框架)

 

如何向沒有計算機基礎的人解釋 API 接口是什麼?

用A公司和B公司舉例

A有數據庫 有業務邏輯 但A不肯意把數據庫的訪問權限給B ,
因而A方本身開發了一套API(數據查詢,業務邏輯等)代碼,
表現形式是URL地址就是以http開頭的網頁地址,
告知了B如何使用該地址(即溝通的密鑰或token,總之是一些安全機制,確保只有B能夠訪問,而不是CDEF這些阿貓阿狗的黑客也湊熱鬧)。
因而乎B就能對A方提供的API進行各類請求達到獲取數據結果或者發送業務請求的目的。

還有一些API叫作公開API,是啥意思呢 就是A公司把他的數據或業務公開給廣大的用戶,好比C,D,E,F公司  。這些公司的程序員經過簡單的在A公司註冊,獲取了使用公開API的權限,就能夠開發代碼調用這些API實現一些功能。 

好比國家的水電煤繳費系統假設是由A公司控制的,A公司開放繳費接口,B,C,D,E 等各家省級代理公司能夠根據商業合同拿到A公司的繳費API接口 實現他們本身區域的繳費服務, 好比用戶能在淘寶上繳水電煤,也能夠在微信上繳水電煤。 其實就是淘寶和微信至關於B,C公司,實現了上游某大Boss的水電煤繳費API。
(以上例子並不是真實,只是爲了說明問題杜撰的,請你們不要鑽牛角尖 說水和電不是由同一個大Boss控制的)

說了這麼多你們就明白了API就比如半開放,賣藝不賣身的意思。 在不考慮商業合同和道德的前提下,API的提供者擁有最終話語權,API接口的提供者說封誰就封誰,好比微信接口,說關閉就關閉。API提供者的姿態就是API是我家提供的,我想給誰用就給誰用,我想何時中止你使用就何時中止你使用。

相關文章
相關標籤/搜索