当前位置: 首页 > news >正文

vue3+rust个人博客建站日记2-确定需求

反思

有人说过我们正在临近代码的终结点。很快,代码就会自动产生出来,不需要再人工编写。程序员完全没用了,因为商务人士可以从规约直接生成程序。
扯淡!我们永远抛不掉代码,因为代码呈现了需求的细节。在某些层面上,这些细节无法被忽略或抽象,必须明确之。将需求明确到机器可以执行的细节程度,就是编程要做的事。而这种规约正是代码。 ——马丁(Robert C. Martin). 代码整洁之道(异步图书) (Chinese Edition) (p. 39). 人民邮电出版社. Kindle 版本.

在撰写本文之前,我犯了所有新手会犯的的错——在需求确定之前,就立刻动手开发。前端的开发过程会给人带来极大的成就感,但随着时间的推移,这种成就感逐渐被混乱的开发体验所替代。
我总结了以下几个混乱特征:
1. 结束了日常生活后,再次回到开发工作中,要重新花时间梳理代码和开发进程。
2. 写出的代码结构存在问题(不是不能用,但不好用😢),又得返工重构。
3. 完成了阶段性的工作后,需要花不合理的时间去思考下面该选择做哪个模块。

先穿裤子再穿鞋,先当孙子再当爷。

当开发过程逐渐不再优雅,是时候还债了,下次可以做得更好。

确定需求

  1. 用例图
    在这里插入图片描述是不是觉得还挺简单?让人感觉中午起床后,晚上就能用上自己写的博客了。但实际上,恶魔藏在细节里。构建一个优雅现代的网站往往要耗费我们数周的时间。下面,进一步梳理流程图。
  2. 流程图
    1. 用户浏览文章-流程图在这里插入图片描述

    2. 管理员删除文章-流程图在这里插入图片描述

    3. 管理员编辑文章-流程图
      在这里插入图片描述

    4. 管理员添加文章-流程图在这里插入图片描述不少朋友已经开始产生困意,甚至觉得这些流程图过于简单,不如一边开发一边梳理。个人认为,这些流程图读者不看也罢,只要了解即可。流程图对实际开发者才有最大的价值。当你着手开发程序时,一定要自己动手画一遍流程图,加深对业务逻辑的熟悉,随着开发的推进,就越发了解它的威力。

最后的准备?梳理接口和数据

如果按照教科书上的,这时梳理好面向业务的接口,并且按照数据库范式建表,确定好数据字典,此时就皆大欢喜,仿佛前路一片光明。但这必须在技术选型之后!在开发中,项目往往会使用一些优秀的开源库,而各个开源库有着自己的接口规定。

如果能预先参考各个开源库的接口,会避免不少麻烦(也许这是面向接口编程的原因之一?)。特别是在个人博客这种轻量级,有着浓厚敏捷开发色彩的项目中,预先设定好数据库的数据字典,往往不是一件好事。因为开发者随时可能会喜新厌旧,拥抱新的开源库。所以数据字典就留在后面在慢慢确定吧!

至少现在,我们可以最后总结梳理一下所需要的接口和业务流程,以方便技术选型。梳理至此,终于可以继续撸代码了!
在这里插入图片描述

相关文章:

vue3+rust个人博客建站日记2-确定需求

反思 有人说过我们正在临近代码的终结点。很快,代码就会自动产生出来,不需要再人工编写。程序员完全没用了,因为商务人士可以从规约直接生成程序。 扯淡!我们永远抛不掉代码,因为代码呈现了需求的细节。在某些层面上&a…...

Linux安装云原生网关Kong/KongA

目录1 概述2 创建服务器3 安装postgres4 安装kong5 安装node6 安装KONGA1 概述 Kong Kong是一款基于OpenResty(NginxLua模块)编写的高可用、易扩展的开源API网关,专为云原生和云混合架构而建,并针对微服务和分布式架构进行了特别…...

Vue学习笔记(2)

2.1 事件处理 2.1.1 事件监听器 JavaScript:通过获取DOM对象再往DOM对象上使用addEventListener注册监听事件 const btn document.querySelector(#my-button) btn.addEventListener(click, function() {alert(点击事件!) })jQuery:通过$选择器绑定对象…...

2023年三月份图形化四级打卡试题

活动时间 从2023年3月1日至3月21日,每天一道编程题。 本次打卡的规则如下: 小朋友每天利用10~15分钟做一道编程题,遇到问题就来群内讨论,我来给大家答疑。 小朋友做完题目后,截图到朋友圈打卡并把打卡的截图发到活动群…...

Python操作Excel

Python中对Excel文件的操作包括:读、写、修改。如果要对其进行如上的操作需要导入Python的第三方模块:xlrd、xlwd、xlutils,其分别对应Python的读、写、修改的操作 一、安装Python的第三方模块 二、操作Excel的基本步骤 1、导入响对应的模…...

Codeforces Round #853 (Div. 2) C. Serval and Toxel‘s Arrays【统计次数,算贡献】

链接 传送门 分析 这道题想法其实很简单,样例的计算方法一定要看懂。以样例1为例,根据他的操作方法可以得到两个新的数组,和一个原来的数组,总共三个数组。 1 2 3 4 2 3 4 5 3 他们两两配对去重,求出总的value。由于每…...

微信小程序-1:比较两数的大小

程序来源》微信小程序开发教程&#xff08;第二章&#xff09; 主编&#xff1a;黄寿孟、易芳、陶延涛 ISBN&#xff1a; 9787566720788 程序运行结果&#xff1a; <!--index.wxml--> <view class"container"> <text>第一个数字&#xff1a;&…...

数据结构——树

深度优先/广度优先遍历深度优先&#xff1a;访问根节点对根节点的 children 挨个进行深度优先遍历const tree {val: "a",children: [{val: "b",children: [{val: "d",children: [],},{val: "e",children: [],},],},{val: "c&quo…...

【华为OD机试模拟题】用 C++ 实现 - 找到它(2023.Q1)

最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 去重求和(2023.Q1) 文章目录 最近更新的博客使用说明找到它题目输入输出示例一输入输出示例二输入输出说明Code使用说明 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD …...

python中yield的使用

在 Python 中&#xff0c;yield 是一个关键字&#xff0c;它用于定义生成器函数。生成器函数是一个特殊的函数&#xff0c;可以返回一个迭代器&#xff0c;当生成器函数被调用时&#xff0c;它不会立即执行&#xff0c;而是返回一个生成器对象&#xff0c;通过迭代生成器对象可…...

GO进阶(4) 深入Go的内存管理

Go语言成为高生产力语言的原因之一自己管理内存&#xff1a;Go抛弃了C/C中的开发者管理内存的方式&#xff0c;实现了主动申请与主动释放管理&#xff0c;增加了逃逸分析和GC&#xff0c;将开发者从内存管理中释放出来&#xff0c;让开发者有更多的精力去关注软件设计&#xff…...

【C++】类与对象理解和学习(下)

放在专栏【C知识总结】&#xff0c;会持续更新&#xff0c;期待支持&#x1f339;建议先看完【C】类与对象理解和学习&#xff08;上&#xff09;【C】类与对象理解和学习&#xff08;中&#xff09;本章知识点概括Ⅰ本章知识点概括Ⅱ初始化列表前言在上一篇文章中&#xff0c;…...

【Neo4j】Spring Data Neo4j APi阅读随笔

引言 关于Spring boot整合Neo4j的官方api翻译&学习随笔 (TOC) 一、准备工作 1.注入依赖 <dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-jpa</artifactId></dependency>2.配置yml文件 这里是本…...

JVM内存模型简介

1 程序计数器 程序计数器是一块较小的内存空间&#xff0c;可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时通过改变这个计数器的值来选取下一条需要执行的字节码指令&#xff0c;分支、循环、跳转、异常处理、线程恢复等功能都需要依赖这个计数器来完。 ja…...

k8s如何给node添加标签

一、为什么需要标签&#xff1f; k8s集群如果由大量节点组成&#xff0c;可将节点打上对应的标签&#xff0c;然后通过标签进行筛选及查看,更好的进行资源对象的相关选择与匹配 二、怎么查看目前node上具有的标签 [rootmaster01 ~]# kubectl get node --show-labels NAME …...

【大数据Hive】Hive ddl语法使用详解

一、前言 使用过关系型数据库mysql的同学对mysql的ddl语法应该不陌生&#xff0c;使用ddl语言来创建数据库中的表、索引、视图、存储过程、触发器等&#xff0c;hive中也提供了类似ddl的语法。本篇将详细讲述hive中ddl的使用。 二、hive - ddl 整体概述 在Hive中&#xff0c;DA…...

Connext DDS录制服务 Recording Service(2)

2.4 远程管理 控制客户端(如RTI管理控制台)可以使用此接口远程控制录制服务。 注:记录服务远程管理基于第10.3节中描述的RTI远程管理平台。有关录制服务中远程管理工作的详细讨论,请参阅该手册 下面是所有支持操作的API引用。 2.4.1 启用远程管理 默认情况下,在录制服务中…...

mysql数据类型选择

数据类型选择 完整性约束 是完整性约束是为保证数据库中数据的正确性和相容性&#xff0c;对关系模型提出的某种约束条件或规则。 通常包括&#xff1a;实体完整性约束、参照完整性约束、域完整性约束、用户自定义完整性约束。 实体完整性(Entity integrity)是指主键必须非空…...

【Java】Spring Boot 配置文件

文章目录SpringBoot 配置文件1. 配置文件的作用2. 配置文件的格式3. properties配置文件说明3.1 properties基本语法3.2 读取配置文件3.3 properties缺点分析4. yml配置文件说明4.1 yml基本语法4.2 yml使用进阶4.2.1 yml配置不同的数据类型及null4.2.1 yml配置的读取4.2.2 配置…...

AtCoder Beginner Contest 290 G. Edge Elimination(思维题 枚举+贪心)

题目 T(T<100)组样例&#xff0c;每次给出一棵深度为d的k叉树&#xff0c; 其中&#xff0c;第i层深的节点个数为 保证k叉树的所有节点个数tot不超过1e18&#xff0c; 求在k叉树上构建一棵大小恰为x的连通块&#xff0c;所需要断开的最少的树边的条数(x<tot<1e18)…...

GPU内核优化技术:R3框架原理与实践

1. GPU内核优化基础与挑战在HPC和科学计算领域&#xff0c;GPU内核优化是提升计算效率的核心技术。内核&#xff08;Kernel&#xff09;作为GPU上执行的基本计算单元&#xff0c;其性能直接影响整个应用的运行时间。典型的优化手段包括循环展开、内存访问优化、指令级并行等&am…...

2026年AI模型API中转站大排名!解析各平台优势,为企业与开发者精准选型

2026年5月&#xff0c;在中国广州&#xff0c;随着AI大模型技术不断迭代并在各产业全面落地&#xff0c;企业级API中转服务市场已步入成熟竞争阶段。技术稳定性、场景适配度以及综合性价比成为企业选择API中转站时的核心考量因素。近日&#xff0c;行业第三方评测机构发布了《2…...

SteamAutoCrack技术深度解析:架构设计与实现原理揭秘

SteamAutoCrack技术深度解析&#xff1a;架构设计与实现原理揭秘 【免费下载链接】Steam-auto-crack Steam Game Automatic Cracker 项目地址: https://gitcode.com/gh_mirrors/st/Steam-auto-crack SteamAutoCrack是一款基于.NET 10.0框架开发的Steam游戏自动破解工具&…...

Chromatic:掌握Chromium/V8的终极通用修改器,开启浏览器调试新纪元

Chromatic&#xff1a;掌握Chromium/V8的终极通用修改器&#xff0c;开启浏览器调试新纪元 【免费下载链接】chromatic Universal modifier for Chromium/V8 | 广谱注入 Chromium/V8 的通用修改器 项目地址: https://gitcode.com/gh_mirrors/be/chromatic 还在为浏览器调…...

Claude Code项目配置终极指南

Claude Code 项目深度配置指南&#xff1a;从零初始化到现有项目完美改造 在上一篇基础教程中&#xff0c;我们了解了Claude Code CLI的基本使用方法。但要真正发挥Claude Code的全部潜力&#xff0c;项目级别的深度配置才是关键。Claude Code提供了一套完整的配置体系&#xf…...

别再到处找激活码了!手把手教你用vlmcsd在Windows上自建KMS服务器(附各版本密钥)

企业级Windows批量激活解决方案&#xff1a;安全高效的本地KMS部署指南 在数字化办公环境中&#xff0c;批量激活Windows操作系统一直是IT管理员面临的常见挑战。传统单机激活方式效率低下&#xff0c;而依赖外部KMS服务器又存在连接不稳定、隐私泄露等潜在风险。本文将深入探讨…...

别再只盯着机械式了!一文看懂MEMS、Flash、OPA等固态激光雷达怎么选(附避坑指南)

固态激光雷达技术全景&#xff1a;从MEMS到OPA的实战选型策略 激光雷达技术正在经历一场静默革命——机械旋转部件逐渐被半导体芯片取代&#xff0c;就像当年电子管被晶体管淘汰的历史重演。在自动驾驶和机器人领域摸爬滚打多年的工程师都清楚&#xff0c;选择激光雷达就像在迷…...

别再死记公式了!用Multisim仿真带你玩转反相/同相比例运算电路

用Multisim仿真解锁比例运算电路的实战奥秘 在电子工程的学习中&#xff0c;运算放大器电路一直是让初学者又爱又恨的内容。传统的学习方法往往从公式推导开始&#xff0c;要求学生死记硬背各种电路配置下的增益公式。但今天&#xff0c;我们要打破这种枯燥的学习方式——通过…...

FoalTS 错误处理机制:构建健壮的后端应用

FoalTS 错误处理机制&#xff1a;构建健壮的后端应用 【免费下载链接】foal Full-featured Node.js framework &#x1f680; 项目地址: https://gitcode.com/gh_mirrors/fo/foal FoalTS 是一个功能全面的 Node.js 框架&#xff0c;提供了强大的错误处理机制&#xff0c…...

Springboot+Vue3|毕业设计美食分享平台(源码)

目录 一、项目背景 二、技术介绍 三、功能介绍 四、代码设计 五、系统实现 一、项目背景 在移动互联网与社交媒体深度融合的时代背景下&#xff0c;美食已不再仅仅满足人们的饱腹之需&#xff0c;更演变为一种重要的社交媒介与文化符号。打开小红书、抖音等热门应用&…...