第二周的实习工作结束了,这周在完善登录系统业务代码的同时主要是学习了企业开发中所运用的一些设计思想和思考问题的方式,需要将自己的思考方式与理解从学校里的学生思想往企业设计思想过渡与转变。

首先就是spring框架,是为了简化企业开发应用程序的难度和周期而诞生的框架。其最主要思想是IOC(控制反转),指的是将对象的创建权托管给spring框架来管理。开发者不再使用new来创建自定义对象,而是通过从spring容器里面取出对象。接着就是spring mvc设计模式,model模型层,view视图层和controller控制层。在后端的体现为一个项目分成控制层,业务层和持久层。控制层可以引用对应的业务层,也可以接受前端传递的请求数据和做些简单的计算处理;业务层是引用对应的持久层数据库操作,是处理大部分业务逻辑的地方,通常有接口和实现类组成;持久层负责连接和操作数据库,例如实现CRUD(增删改查),其里面每一个接口方法都应该对应一条数据库操作语句。在一个项目中,每一种功能都应该分为不同的包,比如还应该有实体类来存放简单类,即数据库表里面对应的实体类型,还有工具类,配置类等等。通过将不同的功能拆离分类,便于团队配合开发以及日后维护,大大提高工作效率。

图1 Springboot项目基本结构

另一点是restful代码风格,它是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。Restful设计风格基本规则主要有以下几点:传统的url设计方式为资源加操作动词以及参数,而restful风格则去掉了url里面的动词,只保留资源名词,通过在代码里设置请求方式(put,get,post和delete)来达到目的;参数值应该直接写在url地址里(通过@PathVariable来实现)而尽量避免使用问号的形式附加在url最后面;返回给前端的值一般是由HTTP状态码,消息文本以及数据三个部分组成,数据格式一般是使用json格式。总而言之,restful风格是一种旧技术新风格,是行业里面主要是使用的一种约定。

此外,这周还查了一些零碎的知识点。对于关系型数据库和非关系型数据库的比较,主要是存储数据方式不同。前者为表格式,数据存储在行和列之中,容易被提取,代表有Oracle和MySQL;而后者主要是将大块数据集中在一起,并不是存在数据表之中,更像是一个收纳场所,代表有Redis。接着是form-data和raw的区别,form-data主要是以键值对的形式来上传参数,支持上传文件;而raw对应的参数是任意格式的,文本和json都支持。

这周学到的最重要的知识是在代码编写的过程中考虑项目所需要的细节,考虑用户体验与感受。在软件开发这一行中,编写代码是为了开发产品,而产品是会给用户使用的,产品是服务于客户的,所以用户的体验与感受至关重要,在设计程序的时候很多该考虑的问题就要提前想到,做到未雨绸缪,减少产品研发完成后给客户使用后不满意的地方,减少矛盾冲突。在客户对产品功能提出了基本的需求后,除了必须完成这些需求之外,还应该结合实际情况进行一系列的其他完善内容来丰富产品内容和提高用户使用满意度。举个简单例子,对于用户登录系统来说,除了实现用户的基本需求登录操作,验证账户密码之外,还理应对用户的密码进行加密操作,这是一种条件反射。除此之外,在设计项目的同时需要注意的细节有:对于用户的基本信息,例如账号密码、手机号、邮箱、个人描述等,是否为必填或非必填,每一个基本信息对应的数据类型是哪种,该信息是否有规定的格式写法,支持的输入长度是多少,是否支持中英文输入,以及用户是否有权限修改此信息等等。需要注意的是,这里还是可以更深层次的挖掘细节,例如电话号码,一般情况下虽然默认是手机号码,但是考虑到如果号码为座机号码并且支持填写区号前缀的话,数据类型就不能用整形而应该使用字符串类型。从这里就反映出学校思维和企业思维的不同了,在学校编写代码的时候使用的数据规模小,容错率高,思考的比较浅显不严谨,而对于设计企业项目来说,任何一个参数如果考虑不周的话都有可能酿成较大的损失。因此,刚开始工作的时候由于之前接触的少不容易想到有哪些细节需要注意,但是在以后的工作中就要开始注意培养这种思考方式与意识,做到精益求精,这也是成为优秀程序员的必经之路之一。

总结一下,这一周学习的思想内容很大程度是在学校里学习不到的,因为学校里写代码考虑的需求一般都只是自己,而在企业开发中需求就变成了满足大数量的用户了。自己需要尽快的转变自己的思考方式,并将这周学到的内容可以在接下来的工作中慢慢体现出来。

java实习第二周总结相关推荐

  1. java实习第二次两周总结

    java实习第二次两周总结 来到平台所实习的第二个两周过去了,也就是一个月过去了.从第二周开始我开始做图书馆管理系统.第三周的任务是系统原型界面设计及其接口定义.第四周的任务是完成v1版本的图书管理模 ...

  2. java学习第二周周记

    JAVA学习第二周周记 **day1.**流程控制语句 ,跳转控制语句 **day2.**什么是方法?方法的重载 **day3.**数组,栈和队列 **day4.**冒泡排序及对象的引入 **day5 ...

  3. 远程实习-第二周学习报告

    远程实习-第二周学习报告 本次为远程实习的第二周学习总结报告,以下是本周的任务目标: 熟悉使用Android四大组件和Fragment 熟悉常用View控件,support包新控件 1. Androi ...

  4. java实习第一周周报,大学生实习周报

    无论学习什么专业,从事什么职业,我们都需要提前实习啦,把理论知识结合起来运用到实践当中去.下面是由出国留学网小编为大家整理的"大学生幼儿园实习周报十周",仅供参考,欢迎大家阅读. ...

  5. Java学习---第二周周报

    第二周周报 收获 关于第一周知识的查漏补缺 JDK,JRE,JVM 分别是什么,彼此之间的关系是怎么样的? JDK为Java语言的软件开发工具包,是整个Java的核心:包含JRE和JVM JVM是Ja ...

  6. 2019年JAVA程序设计第二周編程总结

    2019第二周实验报告 Java实验报告 班级 计算机科学与技术二班 学号 20188442 姓名 吴怡君 完成时间 2019/9/7 评分等级 实验一 Java开发环境与简单Java程序 一. 实验 ...

  7. 2017-2018-1 Java演绎法 第二周 作业

    团队任务:讨论Android上的游戏软件 参考现代软件工程 第一章 [概论]练习与讨论: 软件有很多种,也有各种分类办法,本次团队任务是讨论选取Android上的一个游戏软件,考虑到每位组员接触的游戏 ...

  8. Java俱乐部第二周练习题

    011.网格中的最大乘积 在下面这个 20×20 的网格中,对角线上相邻的四个元素已经用红色标记出来了,这四个数 的乘积为 26 × 63 × 78 × 14 = 1788696: 求在这个网格中,同 ...

  9. Java学习第二周(2)--排序算法与二维数组

    声明:由于学习环境为JDK1.8,所有有关Java的代码均在JDK1.8环境中测试通过,若环境发生变换,代码可能会发生错误.     本周的学习难度较上周有明显提升,今天所学习的排序算法有很多需要理解 ...

最新文章

  1. icmp的回送和回送响应消息_领导送我1盒茶叶,我悟出了3点道理,可能还有一群人不明白...
  2. 遮挡目标检测优化笔记
  3. 试图将驱动程序添加到存储区_Ubuntu 19.10IOS将捆绑NVIDIA驱动
  4. 智能J IDEA键盘快捷键
  5. 独家解读 | 滴滴机器学习平台架构演进之路
  6. php中的ol标签,html5中ol标签的用法详解
  7. 侯捷大师畅谈技术人生与读书感悟
  8. heuristic algorithm(启发式算法)
  9. java ajax传值到后台_java ajax发送数据到后台,中文乱码
  10. HDU 3551 Hard Problem
  11. BigDecimal 加减乘除计算
  12. 轮式联合收割机液压系统设计
  13. java纸牌_Java纸牌拖拉机简单模拟
  14. Android接入微信分享视频和图片
  15. 网站怎么快速优化关键词排名?
  16. 网站域名过户查询_域名知识问答之域名过户
  17. C/C++黑魔法-利用include宏读文件
  18. vlookup反向查询_VLOOKUP的反向查找功能
  19. 北大计算机图灵班,北京大学举办图灵班开班仪式
  20. 相容或,排斥或的相关符号化问题,即排斥或在符号化时一定是只出现∧吗

热门文章

  1. 当厌氧菌遇见氧气之后,氧毒性、耐受性和防御性机制
  2. 电子助力方向机控制模块_电动转向助力系统的设置(功能校准)
  3. 记录一次使用JS生成word后端转换PDF功能
  4. threejs加载3D模型
  5. java文件预览_java 在线预览doc,pdf
  6. 防止小孩长时间沉迷电脑游戏-卓越电脑定时关机软件
  7. C语言程序设计(第二版) 主编:余贞侠 何钰娟 课后习题 代码题答案
  8. AI智能电话销售机器人源码搭建部署系统电话机器人源码,电话机器人噪音处理
  9. 数字图像处理,Matlab常用图像处理函数汇总
  10. awk分析话单列子 tcp连接失败率,及失败连接的topN