介绍

自我介绍

你好,咕哝我的名字是。当前的某横滨前沿科学高中一名高中三年级学生(17岁)去1) 是自称プログラマー
作为爱好均衡器监视器我也在开发一个地震观测/初步报告应用程序(主要是Flutter)。
我开发了一些软件,作为我高中文化节(俗称 Sokosai)课程项目的一部分,所以我会写一篇文章。
高校の文化祭でソフトウェア開発をしたお話
​​​
怀着“在我忘记之前我会尽快写出来”的感觉,我很快就写了出来!
我会在周末尝试添加更多的数字和表格。
如果您有任何问题、意见、要求等,请发表评论
(我们也在等待 Twitter DM)

学园祭的软件开发!?什么样的班级计划?

看来三年级每年都要卖粮食了。然而,今年,由于新型冠状病毒感染的影响,食品销售被禁止。我在高中的时候至少想卖一次食物,但不幸的是没有实现。
​​​
我班级的项目名称是标记表狂热是。
高校の文化祭でソフトウェア開発をしたお話
​​​
如果你认为えっ、もしかしてディズ○ー・シーのトイ・ストーリマ〇ア!?
很好的答案。上一次去迪士尼相关的游乐设施是在我上幼儿园之前,所以我当然不知道玩具总动员是什么游乐设施……2
具体来说,
​​​

ライドに乗ってもらって 4択問題に対して、ボールを穴に投げて回答してね!
ボール1個につき 正答なら8点、誤答なら1点追加。ボールは投げ放題!
楽しいね!
大問は3つ! 各大問につき小問が3つの合計9問に回答してもらうぞ!
小問1つあたり17.5秒の回答時間が与えられるよ!
簡単に言えば、「ライド型シューティングアトラクション」やな!
素早く答えを考えてボールを投げまくれ!!

这就是它的感觉。
我自己为这个班级项目开发了与系统相关的所有内容。

  1. Classroom33Admin:综合管理软件(Windows/iPadOS)
    • 在数据库中注册访客
    • 检查所有投影仪的状态
    • 批准开始问题
    • 显示结果
  2. Classroom33PJ:问题显示软件(Windows)
    • 控制器在管理员批准后显示指定用户的问题陈述(实时同步)
  3. Classroom33Controller: 计球软件 (Android/iOS)
    • 指定投影仪上显示的人
    • 计算球洞中的球并将结果扔到数据库中

    如您所见,我希望能够在各种平台上工作,因此 Web 应用程序/跨平台开发作为一种实现选项出现了。
    这一次,我用 Flutter 实现了它,我在高中的时候已经亏欠了很长时间。我没有编写任何本机代码。谢谢!!!
    ​​​

    教室33 管理员 批准开始提问&访客登记&结果展示 高校の文化祭でソフトウェア開発をしたお話确认整体情况高校の文化祭でソフトウェア開発をしたお話访客登记高校の文化祭でソフトウェア開発をしたお話检查结果
    教室33PJ 问题展示 高校の文化祭でソフトウェア開発をしたお話
    教室33控制器 球数 高校の文化祭でソフトウェア開発をしたお話用户选择
    ​​​

    是发展
    ​​​
    当你粗略地画出你正在做的事情时,情况就是这样。

    ​​​

    当天的状态

    眼见为实。我认为当你看到它而不是用语言解释它时,更容易得到一个想法。看看这个视频,看看气氛如何。
    0:00~0:50:整体气氛
    0:50~1:44:制作过程(同学创作)
    1:44~3:09:真有人来的时候(同学创作)
    ​​​

    ​​​

    使用的技术

    飞镖(颤振)
    数据库 Supabase (Postgres QL)
    代码管理 吉特/GitHub
    为 iOS 构建 代码魔术

    所有应用程序都是使用 Flutter 实现的。
    状态管理flutter_hooks什么时候里弗波德用过的。 Riverpod 的FutureProviderStreamProvider 的错误处理给我留下了深刻的印象。 (虽然我觉得使用 Riverpod 的第一大优点并不存在)
    Controller/Admin/Projector 的常用实现都打包了,便于管理。

    数据库 (PostgreSQL)

    超级数据库云我使用 SaaS 构建了后端。 Suguremono 也可以通过 WebSocket 检测 INSERT/UPDATE
    桌子看起来像这样。

    吉特/GitHub

    一如既往的方便。当我匆忙编码时,我完全忘记了提交/推送,这没有多大意义
    我把不好发布的代码(问题文本是硬编码的,我很担心版权问题)放在这个 Repo 中。如果您喜欢,请看一看。
    (周末一起归档在一个 Repo 中。)

    魔码

    对于没有像 Mac 这样的酷设备的我来说,这是一项上帝服务(我从去年开始就负债累累)
    虽然有免费使用限制,但您可以为 iOS、SSH/VNC 构建并操作 Mac Mini。非常感谢……(我想要Mac~~!!!!)
    如果使用 Codemagic 构建,会输出为 zip 文件,所以将解压后的内容放入 Payload 文件夹(新建),再次压缩 Payload 文件夹,将扩展名更改为.ipa 即可完成。之后,侧载您可以使用 sideload 工具在 iOS 上安装它。 (免费签的话一周就启动不了,不是精华,详情请另找文章。)

    使用的设备

    • 开发机(应急响应)
      • Surface 笔记本电脑2(Windows 11 Corei5-8250U 8GB 个人物品)
    • 管理员
      • iPad 第 8 代(iPadOS 15.0 个人物品)
      • Surface Pro 7(Windows 11 同学)
    • 投影仪
      • Surface笔记本电脑2(Windows 10同学)
      • Surface Pro 7(Windows 11 同学)
      • ThinkPad X11 Gen1(Windows 10 同学)
    • 控制器(包括备用)
      • 小米米Note 10(Android 12个人物品)
      • Nexus 6P(Android 8.1.0 个人版)
      • Moto g7(Android 10 自带)
      • Xperia X Performance(Android 8.0.0 个人项目)
      • iPhone 7(iOS 14.5 个人物品)
    • 显示结果
      • 惠普羡慕(Windows 11同学)
        ​​​

    开发流程

    暑假前~梦想~

    我主要从事系统设计。根据当时的日记,他似乎在两面写了大约四张B4活页纸。不愧是上课时也准备的闲人!!(学习?
    这个时候我打算用Python或者Node.js来实现服务端API,把树莓派4放在类里,通过WiFi/WebSocket连接打API。这很容易理解,因为一切都是在课堂上完成的。 高校の文化祭でソフトウェア開発をしたお話
    这是一个涂鸦。好吧,老实说,我只阅读自己,所以如果我能阅读它,Yoshi!
    ​​​

    暑假期间~一点一点的往前走~

    学校暑期班总共有 14 天(仅在上午)。那天下午我花了几个小时制定一个班级计划。

    暑假前半段

    如前所述,我打算在本地操作 API,所以我尝试使用 Node.js 构建 API 并学习 Go,这是我以前从未接触过的......
    但毕竟,我想在云端尝试一下,所以我尝试使用运行在 Cloudflare Workers 上的名为 Hono 的框架......

    我很高兴能够通过反复试验来开发事物,而不会被时间所淹没。 (如果你把它放在一个不好的地方,它就会来回走动。)

    在这一天,我试图用 Dart 构建一个 API 服务器
    ​​​

    暑假后半段

    大约在这个时候,我没有时间开发后端(确切地说,我不想花时间在那里),所以我决定把它留给SaaS,我在唱歌An open source Firebase alternative,我有使用它的经验.温泉基地我决定使用
    PostgreSQL 和 Kong 在幕后运行,可以自托管。3
    由于 Supabase Cloud(在 AWS 上)的免费配额是有限的,如果超过了,我决定以自托管的势头使用它。 (这很好,因为它最终出现在有足够空间的自由框架中)
    (顺便说一句,我没有使用 Firebase 的原因是因为我想将它与 Flutter(Windows 构建)一起使用。我不知道它是否有效,但我不想花太多钱时间验证它,所以我拒绝了。)
    ​​​
    https://twitter.com/YumNumm/status/1559816593890107392?t=ykIN-iLbigBozwXlwqlgCg&s=19

    这是进步很危险的时候!

    暑假结束~限定开发区~

    随着越来越多的人开始放学后的准备,他们开始意识到,学园祭终于要到了。顺便说一句,该系统并未完全实施。我终于感觉到了这里的危险。将放学后或回家后的时间分配给开发时间,全力以赴进行开发。

    为学园祭前一天做准备~能看到结局~

    在这个阶段,系统几乎完成了。
    高校の文化祭でソフトウェア開発をしたお話
    使用安装在课堂上的投影仪进行操作检查
    ​​​
    高校の文化祭でソフトウェア開発をしたお話
    控制器的操作检查和结果显示
    ​​​

    当天情况

    遇到的问题和解决方法

    1.公式飞起来了!(发生在第一天11:00左右)

    投影仪还必须显示使用极限符号和积分符号的数学问题。所以,一个可以显示LaTeX的库flutter_math_fork正在使用
    您想以尽可能大的字母显示问题句子!文本越大,越容易阅读!
    出于这个原因,公式显示的字体大小设置为 1000 并用FittedBox 包裹。这将横向不再溢出。 ヨシ!(网站猫风格)
    ​​​
    你注意到了吗?有了这个,当问题句子很短时,字体变得很大!
    是的。这是正确的。我没有注意到。
    ​​​
    我对数学(高中 3)问题 3-1 有疑问。这是问题陈述。
    ​​​
    $$
    \sum_{n=1}^{\infty}\frac{1}{3^n} 是什么?
    $$
    ​​​
    由于题目文字太短,出现了部分题目文字、选项、进度条没有显示的问题。认识到这个问题后,我让他停止选择包含这个问题句的数学高三作为应急措施。
    这张截图是在第一天的午休时间(12:00-13:00)拍摄的。
    我就像“哇!游艇马达!!”

    处理

    我想不出一个好的方法来解决这个问题,所以我通过统一减小字体大小做了GET KOTONAKI。投影仪上显示的文字很小,很难看懂,但是没办法……(第一天12:50左右解决——离下午开课还有10分钟!来不及吃饭了午饭!我不吃!)

    (里面混入了一些无意义的代码,但请不要介意...)
    我深深地意识到我对 Flutter 中与布局相关的小部件缺乏了解。我需要学习。
    (不知道怎么用Flutter很好的显示字符,所以想尽快了解一下)
    ​​​

    2. 与选题不同!!(出现两次)

    第一次Controller设置的大题位置不对!

    控制器选择您的终端将在启动时更新设置(要篡改的状态)的哪个大问题。但是当应用程序由于某种原因崩溃时4看来是我着急了,设置出错了……

    处理

    目前,问题错位时正在骑行的人被要求从注册开始。
    所有系统范围的更改都必须指向ヨシ!
    本质上,正如我在笔记中所写,让我们采取措施防止重复按下按钮,包括异步处理。
    无法立即修复代码并重建,所以我告诉值班的同学:“不要重复打我!” GET KOTONAKI
    ​​​

    第二次Controller的用户选择错误!音量

    控制器设计为在每次完成一个大问题时在数据库中记录用户移动后的位置。 (本来打算让数据库自动移动位置,但是好像是个bug,所以拒绝了。)
    然后,控制器注册用户位置时查看的是每个用户正在乘坐的游乐设施的ID和结果表。用户注册时,要求用户记下用户ID和乘车ID,纸随乘车移动,我会问你
    应该是这样,但由于某种原因,纸张和骑行的位置错位了,现场混乱了。

    シフトに入っているクラスメイト「なんか、結果用紙とライドIDが合致しないんだけど…」
    ワイ「う〜ん 登録ミスっちゃったかな?
    結果用紙が合っているはずなので、紙のを入力しちゃって!」
    シフトに入っているクラスメイト「でも……」
    ワイ「いいよ! 多分合ってる!」
    (数分後…)
    クルー「なんか問題がズレてるっぽいっす…」
    ワイ「ギャー! なんで! なんで!(アッ)」
    

    100% 是我的错……(真的很抱歉)

    处理

    与第一次一样,那些在问题句子错位时正在骑行的人应该再跑一圈并从注册开始。
    我请操作手柄的同学在注册前确认用户ID是连续编号的。 (因为用户注册时发放的用户ID是一个序号)
    不知何故GET KOTONAKI
    此外,我学会了在出现问题时保持冷静。永远不要着急。


    我试图用 Grafana 来可视化分数分布,这对服务器监控很有帮助。数字的优点是您可以在几分钟内完成此操作!
    最终参观人数为174人,平均得分为673人。
    高校の文化祭でソフトウェア開発をしたお話

    印象(诗)

    老实说,我在开发这个系统的过程中牺牲了很多。总开发时间为 59 小时 13 分钟。(我很高兴我包括了 wakatime)
    两天的学园祭,我把全部时间都花在了课堂排错、监控日志、修正程序上。当然,没有空闲时间去看其他课程计划。
    学园祭结束的那天晚上,听说同学们都在拼命地享受学园祭,心想:“看到其他班级项目后,我想享受更多……为什么只有我一个.. ." 是。
    然而,我认为我能够看到这个世界、新的关系和体验,因为我倾注了我所有的一切来为这个学园祭开发它。如果我没有尽我最大的努力并一路跳过,我认为我无法做到这一点。
    从这个角度来说,我在这所学校里,我比任何人都能尽情享受。我认为。
    ​​​

    感激

    是的,我满怀感激。

    • 没有人抱怨这个令人困惑和漏洞百出的系统同班同学
    • 准备学园祭后,我们一起回家,聊了会天。朋友
    • 在使用Fusion360进行整体设计后,他讨论了软件设计。⬛︎⬛︎⬛︎先生
    • 你包揽一切,带路班级规划主管
    • 采取防疫措施后决定举办学园祭文化节执行委员会成员
    • 来到项目并说“太棒了!”“我喜欢这个设计!”访客
      ​​​
      乍一看,我意识到这个似乎是一个人开发的项目,得到了很多人的支持。
      感谢所有相关人员。

    https://twitter.com/yumnumm/status/1568519515188887553
    ​​​
    高校の文化祭でソフトウェア開発をしたお話
    ​​​
    这可能是您在高中时开发的最后一个应用程序。
    有很多次我很高兴我在高中时就开始编程。
    例如,.我能够编程纯粹是为了提高我的技能/创建我想要的软件,而不是为了赚钱。
    就我而言,我有父母保护。所以说实话,不管你是不是在编程,都不会像“我活不下去!”那样受到影响。 (总之,不是我在用编程吃米饭)

    但是,当我长大成人,走上社会以后,我想这个故事会发生很大的变化。以编程为生的人必须通过编程才能在明天和未来继续吃饭。
    编程的目的/目标是赚钱不应该是吗?
    好吧,你不能没有钱,所以这是很自然的,对吧?
    (不知道怎么表达……词汇量不足……)

    以后,不是为了钱,我想让很多人的生活更方便 创建你想要的软件我想以这种目的/目标意识面对编程。
    这也是我想在Yumemi Co., Ltd.工作的原因之一。我觉得我可以在研究各种公司的同时不断成长和提高自己的技能。
    我认为这是一个很大的优势,因为我现在是一名学生,所以我能够有目标感和远见。
    ​​​
    最后一个已经变成了一篇像menhera诗一样的文章。
    谢谢你读到这里。如果您有任何想法,请发表评论!

    高校の文化祭でソフトウェア開発をしたお話
    最后,我玩弄了数据库。
    ​​​

    1. 我将在 9 月 17 日庆祝我的 18 岁生日。时间过得好快,好快……我们总是接受生日礼物!

    2. 初中毕业的时候,我打算和朋友一起去迪斯尼乐园。原谅我科罗娜!
      我想高中毕业后去那里!!!

    3. 开头提到的地震观测预警应用EQMonitor的后端,采用Supabase Cloud和自托管进行分布式处理。

    4. 我猜Navigator.of(context).pop(); 在异步处理后被调用了两次,因为我按了两次发送按钮并且屏幕变黑了。您应该采取措施防止重复按下按钮...(特别是与异步/等待处理有关)
      ​​​


原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308626062.html

相关文章:

  • 2021-11-30
  • 2022-12-23
  • 2021-11-12
  • 2021-07-14
  • 2021-05-24
  • 2022-02-09
猜你喜欢
  • 2021-04-22
  • 2021-07-20
  • 2021-06-09
  • 2021-06-21
  • 2022-02-21
  • 2021-11-17
  • 2021-11-27
相关资源
相似解决方案