实习基础内容 学习记录

在有赞实习至今,准备大概记录一些在各个方面的学习,收获。大概可以从两个方面来概括:
一为实践项目开发中的一些常用工具,中间件知识等,简单来说是:从学校到实际开发的技术成长。
二为在实际开发过程中,经历了一个项目从立项到实际开发,再是联调测试的过程。并且学习到对于一些用户模型,角色的定义的过程。
技术成长:

单元测试:对软件中的最小可测试单元进行检查和验证。
在对于项目熟悉过程中,对项目补充大量单元测试,算是体力活打杂= =,但是还是被leader强调来如果代码发生变动,如项目重够时,所具有的重要作用。
主要使用的Mockito 与PowerMockito。

RPC:远程过程调用(Remote Procedure Call Protocol)简单的来说就是像调用本地服务一样调用远程服务。
当两个应用部署在不同服务器上,如果彼此存在依赖调用,因为彼此不在一个内存空间,不能直接调用,RPC跨越了传输层和应用层,通过网络连接来解决调用语义与数据传递因素。

  • 通信过程:通过一定的通信框架,在服务器和客户端建立连接,完成数据交换的过程。
  • 寻址问题:不同服务器的相互访问,则需要知道对应的地址及端口。
  • 序列化及反序列化:所传输的数据,需先序列化,再在目标主机上反序列化,完成传输。
    这里写图片描述

目前对其学习大概了解到RPC是什么,什么用途,大概的过程,在实际中使用的dubbo框架,目前懂得如何使用,具体实现过程以及细节需要再学习。

NSQ:基于Go语言的分布式实时消息平台
在分布式环境下运行的去中心化服务,提供可用于大规模系统中的实时消息服务。
NSQ是由四个重要组件构成:

  • nsqd:一个负责接收、排队、转发消息到客户端的守护进程
  • nsqlookupd:管理拓扑信息并提供最终一致性的发现服务的守护进程
  • nsqadmin:一套Web用户界面,可实时查看集群的统计数据和执行各种各样的管理任务
  • utilities:常见基础功能、数据流处理工具。
    • NSQ的主要特点如下:
  • 具有分布式且无单点故障的拓扑结构 支持水平扩展,在无中断情况下能够无缝地添加集群节点
  • 低延迟的消息推送。
  • 具有组合式的负载均衡和多播形式的消息路由
    既擅长处理面向流(高吞吐量)的工作负载,也擅长处理面向Job的(低吞吐量)工作负载
  • 消息数据既可以存储于内存中,也可以存储在磁盘中
  • 实现了生产者、消费者自动发现和消费者自动连接生产者,参见nsqlookupd
  • 支持安全传输层协议(TLS),从而确保了消息传递的安全性
  • 具有与数据格式无关的消息结构,支持JSON、Protocol Buffers、MsgPacek等消息格式
  • 非常易于部署(几乎没有依赖)和配置(所有参数都可以通过命令行进行配置)
  • 使用了简单的TCP协议且具有多种语言的客户端功能库
  • 具有用于信息统计、管理员操作和实现生产者等的HTTP接口
    • 为了达到高效的分布式消息服务,适用于生产环境中的特点内容如下:
  • 支持消息内存队列的大小设置,默认完全持久化(值为0),消息即可持久到磁盘也可以保存在内存中
  • 保证消息至少传递一次,以确保消息可以最终成功发送
  • 收到的消息是无序的, 实现了松散订购
  • 发现服务nsqlookupd具有最终一致性,消息最终能够找到所有Topic生产者
    这里写图片描述

目前实际开发过程中,对NSQ使用尚可,但是是在内部平台完好的封装下,简单的使用= =

Spring Boot(微框架):使用了特定的方式来进行配置的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。

  • 具体在使用中目前感知的有通过对于pom.xml文件的配置,可以很容易的解决工程依赖问题。
  • 同时使用注解来替代XML配置的库。它的注解其实是SpringMVC的注解。
  • 具有自动配置Spring Data以访问数据库的能力。Boot的自动配置引擎就能探测到你的工程需要数据访问功能,并且会在Spring应用上下文中创建必要的Bean。

MyBatis:支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。

  • MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Ordinary Java Objects,普通的 Java对象)映射成数据库中的记录。
  • 另一大特点的动态SQL,MyBatis 采用功能强大的基于 OGNL 的表达式来消除其他元素。利用其标签,在编写一些具有条件性语句的地方很方便,不需要再去拼接SQL语句。具体使用如链接中动态SQL的介绍。

实际中,的确是很方便的ORM框架,大量的XML轻松完成对于配置地址,数据字段与属性的映射,简单的配置便可以用,并且清晰明白。

MyBatis的使用并不复杂,并且利用动态SQL,可以很轻松的写出原来比较麻烦的SQL语句。

目前觉得自己对于数据库这块的确存在比较大欠缺,并不是对于某一些SQL语句的编写,而是对于MYSQL本身,虽然学习到了一些SQL语句的原理,一些语句优化方式;但是是成点状的知识点,而并没有成为一块具体,无法通顺理清整个过程。

《高性能MYSQL》目前计划阅读书籍,书蛮厚,慢慢看 = =。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值