最近打算在業(yè)余時(shí)間做一個(gè)項(xiàng)目,主要是我很久沒(méi)獨(dú)立做過(guò)項(xiàng)目了,最近一次獨(dú)立全棧完成前后端,還是在三年前了,為什么很久沒(méi)做了呢?
主要是因?yàn)樽詮倪M(jìn)到大公司,和以前小公司自己做東西不太一樣,分工比較明確,我只需要做好自己負(fù)責(zé)的那一塊就行了,其它工作由其它同事負(fù)責(zé)解決。
長(zhǎng)期下來(lái),我發(fā)現(xiàn)自己以前會(huì)的很多技能,就好像溫水煮青蛙一般自然而然的消失了,或者說(shuō)沒(méi)有那么熟練了,忘得非??欤绦騿T的很多技能,包括編程語(yǔ)言,只要很長(zhǎng)時(shí)間不用,那么自然而然就忘記了,所以我想重新把那些技能撿起來(lái),為以后的計(jì)劃做鋪墊,因此打算通過(guò)做一個(gè)項(xiàng)目把全棧工程師的技能撿起來(lái)。
我想起以前自己獨(dú)立做一個(gè)項(xiàng)目還是很快的,一兩周就搞定后臺(tái)開(kāi)發(fā),自己獨(dú)立搭各種框架,前端也是一兩周就搞定了?,F(xiàn)在不知道還能不能保持以前的水平了。
以前認(rèn)識(shí)的老朋友花錢(qián)讓我?guī)退鲆粋€(gè)電商后臺(tái)雛形,也就用了兩周時(shí)間,從0開(kāi)始,后面他有了自己開(kāi)發(fā)團(tuán)隊(duì),在我的基礎(chǔ)上繼續(xù)開(kāi)發(fā)。
好懷念以前的那種時(shí)光,現(xiàn)在感覺(jué)好像沒(méi)那么快了。
不過(guò)我還是想起來(lái)以前做項(xiàng)目的時(shí)候的規(guī)劃的,我自己做項(xiàng)目的規(guī)劃一般是以下幾個(gè)階段:
全新項(xiàng)目->原型設(shè)計(jì)->接口設(shè)計(jì)-數(shù)據(jù)庫(kù)表設(shè)計(jì)->后臺(tái)開(kāi)發(fā)->前端,安卓,ios
- 首先是原型設(shè)計(jì),使用pencil或者axure
- 接口設(shè)計(jì)就是這個(gè)項(xiàng)目用到哪些接口,哪些crud的接口,登陸接口,上傳接口等等
- 數(shù)據(jù)庫(kù)表設(shè)計(jì),要用哪些數(shù)據(jù)庫(kù),mysql還是pg,其次就是數(shù)據(jù)庫(kù)的表的設(shè)計(jì)了,需要哪些數(shù)據(jù),數(shù)據(jù)模型是怎么樣的
- 后臺(tái)開(kāi)發(fā),就是具體后臺(tái)實(shí)現(xiàn)的業(yè)務(wù)邏輯和增刪改查那些了,使用什么后臺(tái)技術(shù),springboot,還是python,如果是簡(jiǎn)單的后臺(tái)接口,就肯定用python flask,復(fù)雜的使用springboot
- 前端的話(huà),就是安卓,ios,小程序,html5那些前端展示的應(yīng)用,現(xiàn)階段主要考慮uniapp來(lái)做跨平臺(tái)應(yīng)用,當(dāng)然以前uniapp沒(méi)那么火的時(shí)候,那時(shí)候我是用vue來(lái)寫(xiě)后臺(tái)管理的,還沒(méi)涉及到用戶(hù)前端。
這個(gè)項(xiàng)目的名字是在線(xiàn)運(yùn)行代碼,就是在前端編寫(xiě)好代碼,然后在云端運(yùn)行,面向的群體是程序員的初學(xué)者,或者需要臨時(shí)調(diào)試代碼,在車(chē)上,公交上,地鐵上,可以實(shí)時(shí)運(yùn)行得到結(jié)果,驗(yàn)證自己的想法。
運(yùn)行的代碼主要是一些片段性的example代碼,舉個(gè)例子:
public class Example{
public static void main(String args[]){
//creating a string by java string literal
String str = "Beginnersbook";
char arrch[]={'h','e','l','l','o'};
//converting char array arrch[] to string str2
String str2 = new String(arrch);
//creating another java string str3 by using new keyword
String str3 = new String("Java String Example");
//Displaying all the three strings
System.out.println(str);
System.out.println(str2);
System.out.println(str3);
}
}
def hello():
print('Hello, World!')
hello()
# Prints Hello, World!
后續(xù)可能基于一些常用的python或者java庫(kù)來(lái)羅列一些example,來(lái)幫助學(xué)習(xí)和輔助開(kāi)發(fā),初步打算支持java和python兩個(gè)比較流行的語(yǔ)言的學(xué)習(xí)
后續(xù)可能進(jìn)一步開(kāi)放go語(yǔ)言,js語(yǔ)言,這些流行的語(yǔ)言的學(xué)習(xí)
總的來(lái)說(shuō)這個(gè)項(xiàng)目通過(guò)在線(xiàn)運(yùn)行調(diào)試代碼片段達(dá)到學(xué)習(xí)的目的。
軟件會(huì)內(nèi)置很多代碼片段
總的功能概括如下:
- 支持代碼片段編輯和運(yùn)行,運(yùn)行時(shí)間最大不超過(guò)8s,防止惡意暫停線(xiàn)程,占用系統(tǒng)資源,以及限制單個(gè)片段可以使用的cpu和內(nèi)存
- 內(nèi)置大量的基礎(chǔ)代碼學(xué)習(xí)片段,可以直接基于代碼片段運(yùn)行
- 內(nèi)置語(yǔ)言里面常用庫(kù)的運(yùn)用和使用片段,對(duì)于java而言,可能是spring,apache的utils工具,對(duì)于python而言,可能是json,yaml處理的庫(kù),或者機(jī)器學(xué)習(xí)的庫(kù)
- 后續(xù)進(jìn)一步支持代碼長(zhǎng)時(shí)間的收費(fèi)運(yùn)行,可綁定域名等
目前想到的就這些了,后續(xù)的文章和公眾號(hào)會(huì)進(jìn)一步記錄我的開(kāi)發(fā)歷程,謝謝閱讀