0.說在前面的廢話
yf指的是yfsoft,我常用的id的簡寫,在我心中這是一個牛x的組織(雖然現(xiàn)在就我一個人),我將全部的生命和精力投入在里面,愿意為之付出一切,而我的一切都屬于它。
1.它是什么?
yf-api 是近一年時間打磨出來的產(chǎn)品,簡單的說就是可以快速簡單的搭建一個http服務(wù),建立在已有的業(yè)務(wù)數(shù)據(jù)之上,關(guān)聯(lián)上數(shù)據(jù)庫之后就自帶了基本的CRUD的操作,并提供單一統(tǒng)一的服務(wù)接口,同步所有的終端數(shù)據(jù)流,能應(yīng)對較大并發(fā)的請求和一些惡意的攻擊,提供nodejs,angularjs,java,.net,php的sdk實現(xiàn),最大程度的降低客戶端集成api服務(wù)的成本。
相應(yīng)的產(chǎn)品列表:
a.服務(wù)端產(chǎn)品
yf-fast-dbm
持久層操作框架源碼 >>我是地址yf-api-server
服務(wù)端框架源碼 >>我是地址yf-demo-api
demo項目>>我是地址yf-ci-web
輔助工具,web端執(zhí)行shell命令 >>我是地址yf-job-scheduler
輔助工具,web端管理定時任務(wù) >>我是地址
b.客戶端產(chǎn)品(編碼已完成,正在更新文檔)
ngapi
angularjs前端SDKapiengine
nodejs SDKapiengine4j
java SDKapiengine4net
.net SDKapiengine4php
php SDK
1.1. 唯快不破
業(yè)務(wù)實現(xiàn)速度和系統(tǒng)服務(wù)的響應(yīng)速度都想快。這是每一個非技術(shù)的創(chuàng)始人的訴求。
- 持續(xù)部署
- 持續(xù)集成
- 持續(xù)交付
這些很靈活的開發(fā)模式可以滿足,但是想要在一個規(guī)模還不是很大的團隊里實踐這些東西,管理和實施成本太高,如何能應(yīng)對這樣的窘境?
技術(shù)選型很重要,在這點上花了很長的時間,決定用nodejs,因為它的事件驅(qū)動可以滿足高并發(fā),源碼開源,社區(qū)活躍,大公司應(yīng)用廣泛,加之本身javascript的語法也已經(jīng)比較簡單,學(xué)習(xí)成本不高。
1.2. 適應(yīng)場景
- 專注前期創(chuàng)業(yè)或者做產(chǎn)品的小團隊或者個人
- 沒有全職后端開發(fā)的團隊
- 前期沒有很多資源投入到技術(shù)基礎(chǔ)搭建上的團隊
- 不使用云存儲平臺(如: parse 或者 leancloud) 的企業(yè)
- 現(xiàn)有系統(tǒng)是基于關(guān)系型數(shù)據(jù)庫,想快速搭建api服務(wù)的團隊
1.3. 優(yōu)勢
- 完全開源,且在持續(xù)維護
- 代碼量極少
越少的代碼,意味著出bug的概率越小
- 創(chuàng)作團隊都健在
創(chuàng)作團隊特別悶騷,喜歡健身,還能活好久~~隨時都能聯(lián)系上
- 豐富的文檔和實例代碼
- 豐富的已經(jīng)實現(xiàn)的SDK
2. 為何用它
開發(fā)者的體驗非常重要,同時開發(fā)者的效率也很重要,沒有大牛,如何能盡快的做出產(chǎn)品?那么多端口要維護,團隊是要效益的,投入產(chǎn)出比很重要。
讓編碼平臺統(tǒng)一化、標(biāo)準(zhǔn)化、流程化才是提高產(chǎn)品輸出效率,保證代碼質(zhì)量的正確姿勢;
試問:
- 如何才能正確評估一個技術(shù)的工作量
- 如何能避免一些隱藏的大坑
- 如何能減少技術(shù)人員流失的風(fēng)險
- 如何能縮短新員工上手的教學(xué)成本
- 如何能定義標(biāo)準(zhǔn)的入職技能評估
- 如何如何...
作為一個非技術(shù)驅(qū)動的團隊來說,這些問題都是非常頭疼的,能解決這些問題的人很難找到。
通過高薪吸引過來的人才是否能完全適合目前的團隊?這些問題都是會影響到整個團隊最終的歸屬的!可能一步就決定了產(chǎn)品的生死。
3. 如何用它
- 備份并導(dǎo)出您的數(shù)據(jù)庫
- 安裝一臺linux(推薦Centos)
- 安裝好lnmp
- 上傳 yfci 腳本
- 執(zhí)行安裝命令
- 導(dǎo)入您的數(shù)據(jù)庫
- 配置數(shù)據(jù)庫鏈接信息
- 執(zhí)行部署命令
- 客戶端配置sdk,參照示例完成開發(fā)集成
3.1 開發(fā)流程
- 代碼版本管理流程 : git flow
- 基本架構(gòu)管理流程 : 前后端完全分離,業(yè)務(wù)全在后端完成,前端只負(fù)責(zé)交互
- 服務(wù)端開發(fā)管理流程 : 根據(jù)已有開發(fā)框架做適配,JAVA、PHP、ASP.NET 都支持
- 客戶端開發(fā)管理流程 : 配置相應(yīng)的客戶端SDK,參照文檔進行配置和使用即可
3.2 版本發(fā)布流程
- 代碼經(jīng)過測試推入到Git服務(wù)器,通過平臺的CI腳本進行及時或者定時發(fā)布更新
- 對于有編譯過程的代碼,比如JAVA,平臺提供標(biāo)準(zhǔn)的自動編譯腳本程序,省去傳war包的人工操作
- 夜間發(fā)布更新可以通過平臺配置簡單的計劃任務(wù),自動執(zhí)行更新,無需人工看守
- 后端代碼0秒更新,省去客戶端更新的麻煩
- 集成app渠道分發(fā)平臺,自動提示客戶端版本更新消息
3.3 可選組件
- 推送服務(wù)JPUSH
- 短信服務(wù)[聚合]
- 地理位置服務(wù)[高德]
- 支付服務(wù)[微信、支付寶]
3.3 數(shù)據(jù)備份流程
2.x版本迭代功能~
3.4 集成IDE工具插件
3.x版本迭代功能~