#全栈开发感想
##摘要
以前一直是学习后端开发,使用简单的 flask
框架进行开发,前端的网页要不就是没有,要不就是抄别人现成的网页,只是把ajax
请求地址改成自己的。开发一些玩具类似的东西还是挺快的。
##背景
现在突然有个课设项目,大佬要跟我组队,不过他也不会前端的东西,我知道也是浅尝辄止。见过许多华丽的网页,自己却写不出来。我让他先去看一看网页相关的库,上上w3school 先入入门。过了几天,结果他就直接用上bootstrap写出页面的布局了。还把要使用到的图形库,及其插件给找到了。以前我是没有弄过页面布局,我后面又去看栅格布局,bootstrap是如何进行布局,以及响应式布局的(虽然这个项目用不上)
自己学习过Python相关的Web开发框架,写起来就不是很吃力,基本查查文档就行了。他拿着我的代码却无从下手。数据库方面我也是直接 sql 语句写的,使用零配置的sqlite3 加快进度。他开始可能也没懂相关的地方,结果到他的电脑就出问题了,找不到我建立的数据库表。他弄了很久,后面查到是Pycharm的路径没有设置,由于sqlite打开不存在的数据文件时不会报错,直接新建了一个新的文件。应该就直接访问用户的目录去了,但是由于是没有建立表,查询就会出错。
###总结
关于团队协作,以前写一点玩具都是自己在写,没有用团队协作的东西(最多也就用Git 来同步我在服务器写的代码了)。项目开始前,是我写前端和后端比较多,队友写算法(他还研究了C 与Python连接的问题,开始用boost ,后面直接就ctypes)
1. 代码同步问题:
一开始,每个人写的功能不一样,代码几乎不需要同步。到后面对接才发现没有代码同步,TIM传文件真的很烦人,以为项目快结束了,然而后面的bug修复,文件传输就越来越多。不得已在最后使用了Git,前面费的时间要早用git 就不会白白费在传文件上。
2. 整体项目的架构:
由于还是缺乏对团队项目的整体规划缺少实战的经验,一开始就没有认真考虑出完整的构思,只有大概的想象,放在后面对接时就费了不少的功夫,要是稍有一点整体的构想,就不会到后面的改了又改,后端数据库和前端对接不上,又要去调试代码。功能到后面想添加就得重写代码
3. 调试工具的使用:
学会看输出。调试工具方便了测试,找bug。客户端网络请求,和后台数据匹配就清晰可见。由于使用了很多的前端相关库,一旦有错误就会抛出错误。就可以在相关的代码行数查看,动态修改执行的语句,和页面上的DOM,JQuery还是一如既往的强大,封装的方法很全,写起来很快。JS语言的强大,与灵活,赋予了编码很大的自由度,当然需要极高的操作才可以把握这个度。
4. 软件工程方面的理论支撑:
写玩具简单,但是真正做出能实际运用的东西就要思考了。编码也是写文章,写思想的,只不过表达形式不一样,文章用文字,用修辞手法,写作手法。而代码则是用计算机能够识别的文字,做一件事有不同的方法,用户看到的输出可能是一样的。但是代码放在哪里,何时执行却是编码时应该想清楚的。以前C 编写过程中,一个功能性类即有cin 又有cout这合适吗,执行功能就不应该和用户进行交互,交互应该交给合适的类去做。功能性的类应该只有接口,由外部调用,可抛出错误,返回值作为输出,或者由交互相关类处理后输出。这样做到系统的低耦合、高内聚。鲁棒性高。
5. 前端技术熟悉:
在项目中学习,能够加深理解。很多的技术都没接触过。这次让我知道页面的交互确实不简单,在命令行,对有技术的使用者会很熟悉。对无基础的则还是需要和谐的界面。和后端的交互使用ajax,http协议的熟悉,请求到后端的api地址,返回内容都是要考虑的,整个网页程序的统一,分工要明确。