让你的身体摆脱坏习惯并不容易。 无论是饮食不良、在健身房偷懒,还是完全无视它,很大程度上都归结于心态。 个人发展是一种趋势,它激励我们许多人摆脱坏习惯,并将自己转变为更好的人。
但要启动重大改变,首先要衡量你的进步,以确定你所采取的两个步骤是让你更接近还是更远离你的目标。 如果没有任何形式的衡量,旅程可能会变得漫无目的。
ABettaMe 有助于让你保持正确的方向,这是一款健康的生活方式应用程序,可让你衡量不同的变量,以了解你在实现目标方面取得了多大的进展。 通过此应用程序,你可以尝试不同的饮食和锻炼方式,以了解它们对你的健康有何影响。
Redis 被用于简化组件之间的数据传输,并创建一个对用户命令高度响应的应用程序。 让我们看看这个应用程序是如何组合在一起的。
但在我们继续深入之前,我们想指出,你可以在 Redis Launchpad 上发现各种像 ABettaMe 这样的创新应用程序。
所以请务必在阅读完这篇文章后查看它们!
你将构建一个应用程序,通过允许用户以精细的细节衡量进度,来帮助用户做出重要的生活方式改变。 下面我们将向你展示如何通过逐步引导你完成实施过程的每个阶段以及你需要的组件,将此应用程序变为现实。
准备好开始了吗?
好的,让我们直接开始。
此项目由五个不同的组件组成。 在每个部分中,我们将重点介绍构建应用程序所需的所有不同技术和工具。
Google Protocol Buffers: 用作 Google 的语言中立、平台中立的可扩展机制,用于序列化结构化数据。
git clone: https://github.com/redis-developer/abetta-ux
打开 docker-compose 文件,该文件指定构建此应用程序所需的各种服务
version: '3.8'
services:
abetta-xp:
container_name: abetta-xp
image: abettame/abetta-xp:local
abetta-gateway:
container_name: abetta-gateway
image: abettame/abetta-gateway:local
ports:
- 8080:8080
abetta-rec:
container_name: abetta-rec
image: abettame/abetta-rec:local
abetta-portal:
container_name: abetta-portal
image: abettame/abetta-portal:local
ports:
- 3000:3000
使用以下命令启动 docker
docker-compose up -d
docker-compose ps
NAME COMMAND SERVICE STATUS PORTS
abetta-gateway "sh -c 'java -Dserve…" abetta-gateway running 0.0.0.0:8080->8080/tcp
abetta-portal "docker-entrypoint.s…" abetta-portal running 0.0.0.0:3000->3000/tcp
abetta-rec "/bin/sh -c 'ASPNETC…" abetta-rec running
abetta-xp "sh -c 'java -Dserve…" abetta-xp running
ajeetraina@Ajeets-MacBook-Pro abetta-ux %
接下来,打开浏览器并输入以下链接:http://localhost:8080/
让我们深入研究构建此应用程序的每个模块 。
UI 界面,用于管理现有实验或记录新实验。
使用的技术:TypeScript、React
以下 Dockerfile 用于构建 UX Docker 镜像 –
# pull official base image
FROM node:13.12.0-alpine
# set working directory
WORKDIR /app
# add `/app/node_modules/.bin` to $PATH
ENV PATH /app/node_modules/.bin:$PATH
# install app dependencies
COPY package.json ./
COPY package-lock.json ./
RUN npm install --silent
RUN npm install [email protected] -g --silent
# add app
COPY . ./
# start app
CMD ["npm", "start"]
应用程序网关,可将流量路由到适当的下游服务。
使用的技术:Java、Spring Cloud GatewayRepo 链接:abetta-gateway
FROM maven:3-jdk-11
ADD . /abetta-gateway
WORKDIR /abetta-gateway
RUN ls -l
RUN mvn clean install -DskipTests
FROM openjdk:11.0-jre-slim
VOLUME /tmp
COPY --from=0 /abetta-gateway/target/abetta-gateway*.jar app.jar
CMD [ "sh", "-c", "java -Dserver.port=$PORT -Xmx300m -Xss512k -XX:CICompilerCount=2 -Dfile.encoding=UTF-8 -XX:+UseContainerSupport -Djava.security.egd=file:/dev/./urandom -Dspring.profiles.active=heroku -jar /app.jar" ]
文件:https://github.com/ABettaMe/abetta-gateway/blob/main/build-image.sh
build-image.sh 脚本用于构建 AbettaMe 网关。
mvn clean package
docker build -t abettame/abetta-gateway:latest .
docker push abettame/abetta-gateway:latest
推荐服务,用于分析实验并执行统计显着性检验。
使用的技术:C#、.NET 5、RedisJSON、Redis Pub/Sub
Repo 链接:abetta-rec
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS buildWORKDIR /DockerSource
COPY Recommendations/bin/Release/net5.0/. .
# For local uncomment this and comment line 8# ENTRYPOINT ["dotnet", "Recommendations.dll"]CMD ASPNETCORE_URLS=http://*:$PORT dotnet Recommendations.dll
文件:https://github.com/ABettaMe/abetta-rec/blob/main/heroku-release.sh
docker build -t abetta-rec .heroku container:push -a abetta-rec webheroku container:release -a abetta-rec web
存储库,用于保存不同服务之间共享的所有合约。
使用的技术:Google Protocol Buffers
Repo 链接:abetta-contract
文件:https://github.com/ABettaMe/abetta-contract/blob/main/build.sh
mkdir java-out csharp-out
protoc --proto_path=. \ --java_out=./java-out \ --csharp_out=./csharp-out \ *.proto
这是应用程序最重要的方面之一,你可以在其中测试新事物,并了解不同的变化对你的生活产生的影响。 首先,单击仪表板上的“创建新实验”图标。
然后,你需要填写有关你的实验的一些信息,包括
处理:插入有关你将遵循哪些策略来执行你的策略的信息。
在仪表板上,你将看到你的实验的概览。 单击“添加指标”以记录你的最新结果。 然后,你将被带到一个新页面,你需要在其中填写一些字段,包括日期、指标和值(见下文)。
在屏幕的左侧,你将看到你列出的不同实验。 单击要查看的实验后,你将看到一个图表,该图表将为你提供进度的可视化表示。
该应用程序还将列出已实现的任何里程碑,这些里程碑代表你朝着目标前进的程度(见下文)。
衡量进度是个人发展的根本方面。 它可以让你发现你是否向前走了两步、退后了两步,或者完全停滞不前。 但是,要使任何测量系统有效,它都需要快速、准确且易于访问。
Redis 的高级数据处理能力保证了一个高度响应的应用程序,用户可以实时地与其交互,而不会出现任何延迟、冻结或延迟。 新指标保存在 RedisJSON 存储中,并通过 RedisPubSub 模块以超高效率发布,为用户提供无缝的应用程序体验。
要了解有关此应用程序的更多信息,请务必观看此 此处的 YouTube 视频。 如果你喜欢这篇文章,请前往 Redis Launchpad,在那里你可以访问更多令人兴奋的应用程序,这些应用程序正在影响着日常生活。
我们拥有实时车辆跟踪系统,一个可以加速献血过程的应用程序,等等!
快来加入吧。 看看吧。 并在 Redis 中玩得开心。
Antonis 是一位创新的软件工程师,目前致力于 Spotify 的专业知识。 如果你想及时了解他的所有项目,请务必在此处 在 GitHub 上关注他。