最近打算在业余时间做一个项目,主要是我很久没独立做过项目了,最近一次独立全栈完成前后端,还是在三年前了,为什么很久没做了呢?
主要是因为自从进到大公司,和以前小公司自己做东西不太一样,分工比较明确,我只需要做好自己负责的那一块就行了,其它工作由其它同事负责解决。
长期下来,我发现自己以前会的很多技能,就好像温水煮青蛙一般自然而然的消失了,或者说没有那么熟练了,忘得非常快,程序员的很多技能,包括编程语言,只要很长时间不用,那么自然而然就忘记了,所以我想重新把那些技能捡起来,为以后的计划做铺垫,因此打算通过做一个项目把全栈工程师的技能捡起来。
我想起以前自己独立做一个项目还是很快的,一两周就搞定后台开发,自己独立搭各种框架,前端也是一两周就搞定了。现在不知道还能不能保持以前的水平了。
以前认识的老朋友花钱让我帮他做一个电商后台雏形,也就用了两周时间,从0开始,后面他有了自己开发团队,在我的基础上继续开发。
好怀念以前的那种时光,现在感觉好像没那么快了。
不过我还是想起来以前做项目的时候的规划的,我自己做项目的规划一般是以下几个阶段:
全新项目->原型设计->接口设计-数据库表设计->后台开发->前端,安卓,ios
- 首先是原型设计,使用pencil或者axure
- 接口设计就是这个项目用到哪些接口,哪些crud的接口,登陆接口,上传接口等等
- 数据库表设计,要用哪些数据库,mysql还是pg,其次就是数据库的表的设计了,需要哪些数据,数据模型是怎么样的
- 后台开发,就是具体后台实现的业务逻辑和增删改查那些了,使用什么后台技术,springboot,还是python,如果是简单的后台接口,就肯定用python flask,复杂的使用springboot
- 前端的话,就是安卓,ios,小程序,html5那些前端展示的应用,现阶段主要考虑uniapp来做跨平台应用,当然以前uniapp没那么火的时候,那时候我是用vue来写后台管理的,还没涉及到用户前端。
这个项目的名字是在线运行代码,就是在前端编写好代码,然后在云端运行,面向的群体是程序员的初学者,或者需要临时调试代码,在车上,公交上,地铁上,可以实时运行得到结果,验证自己的想法。
运行的代码主要是一些片段性的example代码,举个例子:
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!
后续可能基于一些常用的python或者java库来罗列一些example,来帮助学习和辅助开发,初步打算支持java和python两个比较流行的语言的学习
后续可能进一步开放go语言,js语言,这些流行的语言的学习
总的来说这个项目通过在线运行调试代码片段达到学习的目的。
软件会内置很多代码片段
总的功能概括如下:
- 支持代码片段编辑和运行,运行时间最大不超过8s,防止恶意暂停线程,占用系统资源,以及限制单个片段可以使用的cpu和内存
- 内置大量的基础代码学习片段,可以直接基于代码片段运行
- 内置语言里面常用库的运用和使用片段,对于java而言,可能是spring,apache的utils工具,对于python而言,可能是json,yaml处理的库,或者机器学习的库
- 后续进一步支持代码长时间的收费运行,可绑定域名等
目前想到的就这些了,后续的文章和公众号会进一步记录我的开发历程,谢谢阅读