熬夜会秃头——alpha冲刺Day1

目录

一、团队成员站立式会议总结

二、站立式会议照片

三、当日项目燃尽图


这个作业属于哪个课程2301-计算机学院-软件工程社区-CSDN社区云
这个作业要求在哪里团队作业——站立式会议+alpha冲刺-CSDN社区
这个作业的目标记录alpha冲刺Day1
团队名称熬夜会秃头
团队置顶集合随笔链接Alpha 冲刺随笔置顶(熬夜会秃头团队)-CSDN博客

一、团队成员站立式会议总结

组员1:陈少桐同学

昨天站立式会议到现在的进展: 设计和优化APP登录界面

存在的问题/遇到的困难:没完全熟练uni-App其语法规则、页面生命周期等,将在接下来的任务中一边学习一边熟练。前后端交互的接口调用部分仍在学习,还没有一个完整的概念体系。页面的交互逻辑还在学习

今天到明天会议的安排: 交互逻辑实现

心得体会: 虽然是初次使用uni-App,但仍然能深刻体会到uni-App相比于原生开发App的方便之处,DCloud大量的资源社区、HBuilderX的简约界面、可视化配置文件、自动添加依赖等都让我感受到了极大的便利性。

组员2:梁菲汎同学

昨天站立式会议到现在的进展:完成web登录界面、注册页面

<template>
   <div id="base" class="noname">

       <!-- Unnamed (组合) -->
       <div id="u0" class="ax_default" data-left="0" data-top="0" data-width="0" data-height="0" layer-opacity="1">

           <!-- Unnamed (组合) -->
           <div id="u1" class="ax_default" data-left="0" data-top="0" data-width="0" data-height="0" layer-opacity="1">

               <!-- Unnamed (组合) -->
               <div id="u2" class="ax_default" data-left="0" data-top="0" data-width="0" data-height="0" layer-opacity="1">
               </div>
           </div>
       </div>

       <!-- Unnamed (图片) -->
       <div id="u3" class="ax_default image">
           <img id="u3_img" class="img " src="@/assets/images/登录界面/u3.png"/>
           <div id="u3_text" class="text " style="display:none; visibility: hidden">
               <p></p>
           </div>
       </div>

       <!-- Unnamed (热区) -->
       <div id="u4" class="ax_default">
       </div>

       <!-- Unnamed (组合) -->
       <div id="u5" class="ax_default" data-left="763" data-top="134" data-width="520" data-height="431" layer-opacity="1">

           <!-- Unnamed (矩形) -->
           <div id="u6" class="ax_default box_1">
               <img id="u6_img" class="img " src="@/assets/images/登录界面/u6.svg"/>
               <div id="u6_text" class="text ">
                   <p style="font-size:30px;"><span>欢迎使用</span></p><p style="font-size:36px;"><span>对象存储平台</span></p>
               </div>
           </div>

           <!-- Unnamed (图片) -->
           <div id="u7" class="ax_default image">
               <img id="u7_img" class="img " src="@/assets/images/登录界面/u7.png"/>
               <div id="u7_text" class="text " style="display:none; visibility: hidden">
                   <p></p>
               </div>
           </div>

           <!-- Unnamed (矩形) -->
           <div id="u8" class="ax_default button">
               <div id="u8_div" class=""></div>
               <div id="u8_text" class="text ">
                   <p><span>手机号</span></p>
               </div>
           </div>

           <!-- Unnamed (矩形) -->
           <div id="u9" class="ax_default button">
               <div id="u9_div" class=""></div>
               <div id="u9_text" class="text ">
                   <p><span>邮箱</span></p>
               </div>
           </div>

           <!-- Unnamed (文本框) -->
           <div id="u10" class="ax_default text_field">
               <div id="u10_div" class=""></div>
               <input id="u10_input" type="text" value="" class="u10_input"/>
           </div>

           <!-- Unnamed (文本框) -->
           <div id="u11" class="ax_default text_field">
               <div id="u11_div" class=""></div>
               <input id="u11_input" type="text" value="" class="u11_input"/>
           </div>

           <!-- Unnamed (矩形) -->
           <div id="u12" class="ax_default button">
               <div id="u12_div" class=""></div>
               <div id="u12_text" class="text ">
                   <p><span>登录</span></p>
               </div>
           </div>
       </div>

       <!-- Unnamed (矩形) -->
       <div id="u13" class="ax_default label">
           <div id="u13_div" class=""></div>
           <div id="u13_text" class="text ">
               <p><span>还没有账号?点我注册</span></p>
           </div>
       </div>

       <!-- Unnamed (热区) -->
       <div id="u14" class="ax_default">
       </div>
   </div>
</template>

<template>
   <div id="base" class="">

       <!-- Unnamed (组合) -->
       <div id="u15" class="ax_default" data-left="763" data-top="184" data-width="504" data-height="368" layer-opacity="1">

           <!-- Unnamed (矩形) -->
           <div id="u16" class="ax_default _一级标题">
               <div id="u16_div" class=""></div>
               <div id="u16_text" class="text ">
                   <p><span>注&nbsp; &nbsp; &nbsp; 册</span></p>
               </div>
           </div>

           <!-- Unnamed (文本框) -->
           <div id="u17" class="ax_default text_field">
               <div id="u17_div" class=""></div>
               <input id="u17_input" type="text" value="" class="u17_input"/>
           </div>

           <!-- Unnamed (矩形) -->
           <div id="u18" class="ax_default button">
               <div id="u18_div" class=""></div>
               <div id="u18_text" class="text ">
                   <p><span>立&nbsp; &nbsp; &nbsp; 即&nbsp; &nbsp; &nbsp; 注&nbsp; &nbsp; &nbsp; 册</span></p>
               </div>
           </div>

           <!-- Unnamed (文本框) -->
           <div id="u19" class="ax_default text_field">
               <div id="u19_div" class=""></div>
               <input id="u19_input" type="text" value="" class="u19_input"/>
           </div>

           <!-- Unnamed (文本框) -->
           <div id="u20" class="ax_default text_field">
               <div id="u20_div" class=""></div>
               <input id="u20_input" type="text" value="" class="u20_input"/>
           </div>

           <!-- Unnamed (文本框) -->
           <div id="u21" class="ax_default text_field">
               <div id="u21_div" class=""></div>
               <input id="u21_input" type="text" value="" class="u21_input"/>
           </div>
       </div>

       <!-- Unnamed (组合) -->
       <div id="u22" class="ax_default" data-left="0" data-top="0" data-width="0" data-height="0" layer-opacity="1">

           <!-- Unnamed (组合) -->
           <div id="u23" class="ax_default" data-left="0" data-top="0" data-width="0" data-height="0" layer-opacity="1">

               <!-- Unnamed (组合) -->
               <div id="u24" class="ax_default" data-left="0" data-top="0" data-width="0" data-height="0" layer-opacity="1">
               </div>
           </div>
       </div>

       <!-- Unnamed (热区) -->
       <div id="u25" class="ax_default">
       </div>

       <!-- Unnamed (图片) -->
       <div id="u26" class="ax_default image">
           <img id="u26_img" class="img " src="@/assets/images/登录界面/u3.png"/>
           <div id="u26_text" class="text " style="display:none; visibility: hidden">
               <p></p>
           </div>
       </div>

       <!-- Unnamed (矩形) -->
       <div id="u27" class="ax_default button">
           <div id="u27_div" class=""></div>
           <div id="u27_text" class="text ">
               <p><span>获取验证码</span></p>
           </div>
       </div>
   </div>
</template>

存在的问题/遇到的困难:

图片引用问题。直接把本地图片地址放在src里没问题。但如果把地址提取出来写在data里或者通过method动态给src赋值则引用不到。因为放在template模板里会被webpack打包所以可以,而放在data或者动态赋值,图片路径只是一个字符串webpack不会处理所以引用不到。

解决办法:通过import或者required引入。import src from ‘../../img.png’或者data:{img:require(‘../../img.png’)}

vue中每一个组件都可以自定各自的css样式,如果希望组件内的样式只对当前组件起作用,可以在style标签中增加scoped即可。

该写法会让vue在渲染组件的时候给每个元素都增加一个data-v-/版本号/的属性,可以保证只针对有同样data-v-data-v-/版本号/的元素应用该样式。

今天到明天会议的安排:实现剩下的几个界面的交互

心得体会:

MVVM模式(全称为Model-View-ViewModel)为Vue实现数据双向绑定。

在MVVM中,View为视图层,ViewModel为业务逻辑层,Model为数据层。

 什么是数据双向绑定呢?当用户使View变化时(如填写表单),变化会自动同步到ViewModel处理相应逻辑,并将变化更新到Model数据库。反之,若服务端数据变化(如股价波动),变化会自动同步到ViewModel处理相应逻辑,并将变化同步到View展现给用户。

在用Vue之前,完成HTML和JS之间的交互需要使用大量的DOM操作来实现动态加载。

组员3:陈知菲同学

昨天站立式会议到现在的进展:完成springcloud集成nacos、feign、gateway的框架搭建

  • Springcloud框架的搭建
  • 项目架构
  • 网关gateway、user-service、order-service(一个测试demo,会替换成其他模块)

网关

(路由与跨域配置)

server:
  port: 10010 # 网关端口
spring:
  application:
    name: gateway # 服务名称
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos地址
    gateway:
      routes: # 网关路由配置
        - id: user-service # 路由id,自定义,只要唯一即可
          # uri: http://127.0.0.1:8081 # 路由的目标地址 http就是固定地址
          uri: lb://user-service # 路由的目标地址 lb就是负载均衡,后面跟服务名称
          predicates: # 路由断言,也就是判断请求是否符合路由规则的条件
            - Path=/user/** # 这个是按照路径匹配,只要以/user/开头就符合要求
        - id: order-service
          uri: lb://order-service
          predicates:
            - Path=/order/**
      globalcors: # 全局的跨域处理
        add-to-simple-url-handler-mapping: true # 解决options请求被拦截问题
        corsConfigurations:
          '[/**]':
            allowedOrigins: # 允许哪些网站的跨域请求
              - "http://localhost:8080"
              - "http://localhost:8081"
              - "http://www.leyou.com"
            allowedMethods: # 允许的跨域ajax的请求方式
              - "GET"
              - "POST"
              - "DELETE"
              - "PUT"
              - "OPTIONS"
            allowedHeaders: "*" # 允许在请求中携带的头信息
            allowCredentials: true # 是否允许携带cookie
            maxAge: 360000 # 这次跨域检测的有效期

全局过滤器(登录权限暂时写死,之后将添加权限校验)

@Order(-1)
@Component
public class AuthorizeFilter implements GlobalFilter {
    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
//        return chain.filter(exchange);
        // 1.获取请求参数
        MultiValueMap<String, String> params = exchange.getRequest().getHeaders();
        // 2.获取authorization参数
        String auth = params.getFirst("authorization");
        // 3.校验
        if ("admin".equals(auth)) {
            // 放行
            return chain.filter(exchange);
        }
        // 4.拦截
        // 4.1.禁止访问
        exchange.getResponse().setStatusCode(HttpStatus.FORBIDDEN);
        // 4.2.结束处理
        return exchange.getResponse().setComplete();
    }
}

其他服务

服务结构

 feign的调用

			@FeignClient("user-service")
public interface UserClient {
    @GetMapping("/user/{id}")
    User findById(@PathVariable("id") Long id);
}

数据库、nacos注册中心的配置

server:
  port: 8080
spring:
  application:
    name: order-service
  cloud:
    nacos:
      server-addr: localhost:8848
  datasource:
    url: jdbc:mysql://localhost:3306/cloud-order?useSSL=false
    username: root
    password: xxxxxxx
    driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
  type-aliases-package: cn.itcast.user.pojo
  configuration:
    map-underscore-to-camel-case: true
logging:
  level:
    cn.itcast: debug
  pattern:
    dateformat: MM-dd HH:mm:ss:SSS

存在的问题/遇到的困难:在项目搭建过程中,依赖的管理较为复杂,会有版本冲突问题

解决:查找网络上springboot和springcloud版本兼容性表,解决版本冲突问题

引用依赖如下:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.9.RELEASE</version>
    <relativePath/>
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <spring-cloud.version>Hoxton.SR10</spring-cloud.version>
    <mysql.version>8.0.23</mysql.version>
    <mybatis.version>2.1.1</mybatis.version>
</properties>

今天到明天会议的安排:实现springcloud集成oauth,新增登录与权限校验功能

心得体会:了解了大型分布式项目的整体架构,与各模块、各服务之间的调用方法。不再像小型项目那样在pom.xml中引入全部要用的依赖,而是将诸多功能拆成多个module,在project总的pom.xml中引入maven依赖管理,实现对依赖的版本控制,其他module在需要时将依赖逐个引入

在springcloud中完成对注册中心nacos、gateway、feign等组件的集成配置,加深了对各组件在分布式架构下的功能的理解。

组员4:李恒欣同学

昨天站立式会议到现在的进展:学习SpringCloud和巩固复习JAVA注解的使用

存在的问题/遇到的困难:对JAVA中注解的使用还不是很熟悉

今天到明天会议的安排:开始参与进行后端程序的编写

心得体会:有此前学习SpringBoot框架和使用JAVA的基础,学习起来相对顺利,但在注解部分的学习还是遇到了一些困难。

组员5:邱思源同学

昨天站立式会议到现在的进展:学习JAVA和JAVA的测试方法

存在的问题/遇到的困难:对JAVA并不熟悉

今天到明天会议的安排:对已完成的后端代码进行测试

心得体会:已掌握JAVA的test的使用,还需要结合实践进行进一步学习。

组员6:宋芳鑫同学

昨天站立式会议到现在的进展: 设计和优化APP注册界面

存在的问题/遇到的困难:

今天到明天会议的安排:交互逻辑实现

心得体会:对vue的使用有了更熟练的掌握,可以更好地做出符合自己想法的前端作品了。

组员7:张一凡同学

昨天站立式会议到现在的进展:学习前端单元测试方法

存在的问题/遇到的困难:从零开始,学习难度较大

今天到明天会议的安排:对已经开发的前端代码进行单元测试

心得体会:此前对vue的掌握并不熟练,加上前端单元测试也是第一次接触,学习起来相对较吃力,但结合实践后会好一点。

组员8:林承桢同学

昨天站立式会议到现在的进展:学习测试文档编写

存在的问题/遇到的困难:

今天到明天会议的安排:进行已完成模块的功能测试,将完成的测试结果写入测试文档

心得体会:学习掌握了测试文档的编写流程和规范,对单元测试有了更深理解。

组员9:黄才栋同学

昨天站立式会议到现在的进展:完成APP导航界面

存在的问题/遇到的困难:

今天到明天会议的安排:完成和其他界面的交互 

心得体会:掌握了vue如何使用url加入图片,巩固了如何使用vue的script进行更好的页面排版。

组员10:谢怀广同学

昨天站立式会议到现在的进展:核对和完善代码规范以及制作项目ran'jin

存在的问题/遇到的困难:前后端代码规范不同,工作量较大

今天到明天会议的安排:继续核对代码规范并完成相应的项目燃尽图

心得体会:对前后端的代码规范有了深入了解,但学习的任务量有点大,学起来还是比较累的。

二、站立式会议照片

三、当日项目燃尽图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值