谷粒商城实战笔记-高效工作经验积累

news/2024/11/15 6:05:47/

当然,我会提供一个更具体的例子来说明这两个原则的重要性及其背后的惨痛经历。

1. 先理解需求,后写代码

惨痛经历

几年前,我所在的团队负责为开发一个在线预订系统。

项目启动之初,我们急于展示成果,没有充分理解客户的具体需求就开始了编码工作。我们认为只需要实现基本的预订功能即可,比如让用户选择日期、时间、人数等,并能够发送预订请求销售公司。

然而,当我们将初步版本展示给客户时,客户提出了一系列我们未曾预料到的需求。比如,他们需要一个会员系统来积累积分;还需要根据不同的时间段设定不同的预订规则;另外,还需要有一个功能来处理取消预订的情况,同时要通知其他等待预订该时段的顾客。

由于我们没有在一开始就彻底理解这些需求,导致后期需要进行大量的重构工作。这不仅延误了项目的交付时间,还增加了额外的成本。据估计,因为前期的需求理解不足,我们额外花费了大约两周的时间来弥补这一失误,而原本这些时间可以用来优化用户体验或其他特性。

教训

  • 深入沟通:在项目开始时,应该花更多的时间与客户进行深入沟通,确保理解每一个细节。
  • 需求文档:制定一份详细的需求文档,并让所有相关人员签字确认,以确保每个人都对项目有相同的理解。
  • 持续迭代:即使在项目初期,也应该采用敏捷开发的方法,持续迭代并获得客户的反馈,以便及时调整方向。

2. 前后端都要校验

惨痛经历

在另一个项目中,我们需要为一家集团开发一个营销管理系统。我们决定在前端实现数据校验,以提供即时反馈给用户。然而,我们忽略了后端的数据校验。

结果,尽管前端能够阻止大多数错误的用户输入,但仍有一些恶意用户找到了绕过前端校验的方法,向我们的服务器发送了非法数据。这些数据包括超长字符串、特殊字符序列以及其他不符合规定的内容,导致我们的数据库出现了问题,甚至引发了几次服务中断。

我们不得不紧急修复这些问题,并加强后端的数据校验机制。这次经历让我们意识到,仅仅依赖前端校验是不够的,必须在后端也进行严格的校验。

教训
  • 前端校验:在前端实现即时校验,以提供良好的用户体验,但应视为第一道防线。
  • 后端校验:在后端实现严格的校验逻辑,确保数据的一致性和安全性。
  • 数据过滤:使用参数过滤器和验证器来确保所有传入的数据都是合法的,并且符合预期的格式。
  • 安全防护:增加安全措施,如SQL注入防护和XSS攻击防护等,以保护系统免受攻击。

3,避免使用JOIN查询以提高性能

有一个开发中需要遵循的原则:避免使用JOIN查询以提高性能。

在数据库查询中,JOIN操作可能导致性能问题,尤其是涉及多表关联时。JOIN操作会增加查询复杂度,可能导致大量的磁盘I/O操作和CPU计算开销,尤其是在处理大数据量时。此外,JOIN查询还可能因索引失效而进一步降低查询效率,尤其是在没有适当索引支持的情况下。因此,减少JOIN操作是提高查询性能的有效手段之一。


http://www.ppmy.cn/news/1501397.html

相关文章

自动驾驶芯片概况(科普向)

芯片按应用场景可分为消费芯片、工业芯片、车规级芯片和军工芯片等。 美国制定的汽车电子标准把其分为5级。汽车各系统对芯片要求由高到低依次是:动力安全系统> 车身控制系统> 行驶控制系统> 通信系统> 娱乐系统。。车规级芯片分为控制芯片、微处理器芯…

基于stm32的多旋翼无人机(Multi-rotor UAV based on stm32)

由于一直在调试本项目,好久没有发文章,最近本项目的PID调试初见成效!开始正文前首先感谢各位粉丝的支持,以及对本项目技术上支持的老师以及师兄,谢谢你们! 基于stm32的多旋翼无人机 一、多旋翼无人机飞行原…

5 Go语言的值与指针

本专栏将从基础开始,循序渐进,由浅入深讲解Go语言,希望大家都能够从中有所收获,也请大家多多支持。 查看相关资料与知识库 专栏地址:Go专栏 如果文章知识点有错误的地方,请指正!大家一起学习,…

Ruby语言详解

Ruby语言详解 Ruby,作为一种简单快捷的面向对象脚本语言,自20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发以来,便以其独特的魅力和强大的功能赢得了全球开发者的青睐。Ruby不仅继承了Perl、Smalltalk、Eiffe…

实战深度学习--进行蘑菇分类

数据集:https://pan.quark.cn/s/4d3526600c0c 概述 本笔记将介绍如何使用Python和深度学习库(如TensorFlow和Keras)来构建一个卷积神经网络(CNN)模型,以区分可食用和有毒的蘑菇。我们将从数据准备、模型构…

Http 和 Https 的区别(图文详解)

在现代网络通信中,保护数据的安全性和用户的隐私是至关重要的。HTTP(Hypertext Transfer Protocol)和 HTTPS(Hypertext Transfer Protocol Secure)是两种常见的网络通信协议,但它们在数据保护方面的能力存在…

Linux系统上安装zookeeper

百度网盘 通过网盘分享的文件:zookeeper_linux 链接: https://pan.baidu.com/s/1_hybXZVwTRkotz0VbwbSMw?pwd8888 提取码: 8888 1.将压缩包拖进虚拟机 2.解压压缩包 cd /ruanjian/zookeeper/ tar -zxvf apache-ZooKeeper-3.7.2-bin.tar.gz3. 进入到conf目录 cd …

网络安全防御【IPsec VPN搭建】

目录 一、实验拓扑图 二、实验要求 三、实验思路 四、实验步骤: 修改双机热备的为主备模式: 2、配置交换机LSW6新增的配置: 3、防火墙(FW4)做相关的基础配置: 4、搭建IPsec VPN通道 (1…