如何做好CodeReview代码审查
1 review的好处代码review是代码质量保障的手段之一,同时开发成员之间代码review也是一种技术交流的方式,虽然会占用一些时间,但对团队而言,总体是个利大于弊的事情。如何借助现有工具在团队内部形成代码review的流程与规范,是team leader或技术管理者需要考虑的问题。 2 设置成员角色首先需要对你团队的成员分配角色,在Gitlab groups里选择一个group,然后左边菜单栏点击 Members,可在 Members 页面添加或编辑成员角色.其中角色包含如下几类: Guest:权限最小,基本查看功能 Reporter:只能查看,不能push Developer:能push,也能merge不受限制的分支 Master:除了项目的迁移、删除等管理权限没有,其它权限基本都有 Owner:权限最大,包括项目的迁移、删除等管理权限详细权限参考:...
Nginx代理转发实现域名访问并且隐藏端口号
docker 新建nginx 容器用于代理转发,这里必须要映射到80端口,因为访问宿主机会直接访问80端口 1docker run -d --name nginx_agent -p 80:80 nginx:latest 编辑nginx配置文件/etc/nginx/conf.d/default.conf 123456789101112131415161718192021222324server { listen 80; #监听的端口 server_name qinglong.cn; #监听的URL location / { proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For...
非关系型数据库Mongodb简介
一.MongoDB简介什么是NoSQLNoSQL:Not Only SQL ,本质也是一种数据库的技术,相对于传统数据库技术,它不会遵循一些约束,比如:sql标准、ACID属性,表结构等。优点: 满足对数据库的高并发读写; 对海量数据的高效存储和访问; 对数据库高扩展性和高可用性; 灵活的数据结构,满足数据结构不固定的场景; 缺点: 一般不支持事务; 运维人员数据维护相对复杂; 什么是MongoDBMongoDB 是一个基于分布式文件存储的数据库。由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成,MongoDB文档类似于json对象,字段值可以包含其他文档,数组及文档数组。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 MongoDB的特点MongoDB...
Kotlin依赖注入框架Koin的使用
一.引入Koin依赖Koin是一款轻量级的依赖注入框架,根据官方的描述,它无代理,无代码生成,无反射。 12345678def koinVersion = "2.2.2" //Koin for android implementation "org.koin:koin-android:$koinVersion" //Koin for scope feature implementation "org.koin:koin-android-scope:$koinVersion" //Koin for viewModel feature implementation "org.koin:koin-android-viewmodel:$koinVersion" 二.Koin基础使用在application中来做startkoin初始化的动作 123456789101112class MyApp : Application() { override fun...
SpringBoot学习总结之二数据库相关
一.常见的数据库访问框架在Web项目开发中,数据库的访问是必不可少的。 ORM持久化技术 模板类 JDBC(JdbcTemplate) org.springframework.jdbc.core.JdbcTemplate JPA org.springfrmaework.orm.jpa.JpaTemplate IBatis(MyBatis) org.springframework.orm.ibatis.SqlMapClientTemplate 1.JdbcTemplateJdbcTemplate是Spring对JDBC的模板封装,提供了一套JDBC模板,能够让我们写持久层代码时减少冗余代码,简化JDBC代码,使代码更加简洁。Spring Boot默认支持JdbcTemplate(无需配置)。JdbcTemplate在实际开发中一般不会使用,通常都是使用MyBatis、Hibernate等更加成熟、优秀的数据持久层框架。 2.JPAJPA全称是Java Persistence...
Flutter之七Flutter与Android混编
一.Flutter工程模式flutter有四种工程模式:application、plugin、package、module 1.Flutter Application: Flutter应用(1.)创建命令1flutter create xxapp (2.)目录结构1234567891011121314│ pubspec.lock│ pubspec.yaml│ README.md├─android│├─ios│├─lib│ main.dart│├─test│ widget_test.dart│└─web android:Android原生代码目录。 ios:iOS原生代码目录。 lib:这个是Flutter项目的核心目录,写的Flutter代码放在这个目录,也可以在这个目录创建子目录。 test:测试代码目录。 pubspec.yaml:这个是Flutter项目的依赖配置文件,类似于Android build.gradle文件,这里面包含了Flutter SDK 版本、依赖等。 (3.)说明Flutter...
Flutter之六主题和多语言
Flutter 国际化实现指南Flutter 实现国际化(i18n)主要有两部分:Flutter SDK 内置组件的国际化和’开发者自定义 UI 的国际化‘。 1. 原理概述 默认语言Flutter SDK 为了减小包体积,默认只提供美国英语(en-US)的本地化资源,主要是 Material 组件和基础 Widgets 的文本。 本地化的核心 Localizations:Flutter 用于管理不同语言资源的核心类 LocalizationsDelegate:工厂类,用于生成对应语言的资源 supportedLocales:告诉 Flutter 应用支持哪些语言和地区 适用范围 Material 组件(如按钮、日期选择器、对话框等) Widgets(Tooltip、日期等基础文本) Cupertino 组件(iOS 风格组件文本) 自定义 UI 文本(开发者实现) 这些组件本身有默认文本(如按钮文字、取消/确定、返回按钮提示等)。 2. 使用 Flutter 内置国际化(Material、Widgets、Cupertino)添加依赖在...
Web服务器之Nginx简介
一.Nginx简介Nginx (engine x) 是一个高性能的Web和反向代理服务器,同时也是一个 IMAP/POP3/SMTP 代理服器。Nginx处理高并发能力是十分强大的,能经受高负载的考验。而且支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热更新 。性能是 Nginx 最重要的考量,其占用内存少、并发能力强、能支持高达 5w 个并发连接数,最重要的是, Nginx 是免费的并可以商业化,配置使用也比较简单。详细介绍nginx官网 二.Nginx的功能正向代理正向代理是客户端与正向代理客户端在同一局域网,客户端发出请求,正向代理...
Android富文本之Spannable使用总结
使用SpannableStringBuilder设置多个属性12345678910111213val builder = SpannableStringBuilder() builder.append("小明回复小红:你在干嘛呀。") val styleSpan = StyleSpan(Typeface.BOLD) //粗体 builder.setSpan(styleSpan, 0, 2, Spannable.SPAN_EXCLUSIVE_INCLUSIVE) val styleSpan2 = StyleSpan(Typeface.ITALIC) //斜体 builder.setSpan(styleSpan2, 4, 6, Spannable.SPAN_EXCLUSIVE_INCLUSIVE) val styleSpan3 = StyleSpan(Typeface.BOLD_ITALIC) //粗斜体 builder.setSpan(styleSpan3, 7,...
SpringBoot学习总结之一项目基础
一.SpringBoot简介1.什么是SpringBootSpringBoot是由Pivotal团队提供的框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。SpringBoot是Spring项目中的一个子工程,与大家所熟知的Spring-framework 同属于Spring的产品。使用SpringBoot,可以让我们快速的构建庞大的Spring项目(包括web 持久化),并且尽可能的减少一切xml配置,做到开箱即用,迅速上手,让我们关注业务而非配置。 2.为什么要使用SpringBootSpringBoot的出现解决了传统Spring项目的以下问题: 配置复杂繁多:每一个组件集成Spring都需要编写对应配置文件,比如appplicationContext-xxx.xml等。 混乱的依赖管理:在Spirng中想集成对应组件时,需要导入N多的pom,并且还要考虑版本。 使用SpringBoot创建java应用,只需填写很少配置和依赖就能快速搭建,并使用java –jar...