热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

勿以恶小而为之,勿以善小而不为

之前我有提到做过的一个demo类的项目,因为觉得一个demo能跑就行,没有必要把日志之类的功能加上去,结果把别人给坑了。现在我发现,某个项目因为自己当初偷懒,如今把自己坑了。起因大概两个月前,

之前我有提到做过的一个demo类的项目,因为觉得一个demo能跑就行,没有必要把日志之类的功能加上去,结果把别人给坑了。现在我发现,某个项目因为自己当初偷懒,如今把自己坑了。

起因

大概两个月前,我接手了一个转手了好几个人的项目。主要需求就是处理一下数据库的数据,然后在页面上展示一下。前端没有什么要求,用easyui套一下就行,页面也就一两个。项目的前端是用JSP做的,而且貌似每一个接手的人都做了一些页面,但这些页面大都样式丑陋,基本没法看,而且现在也完全没有用了。
因为考虑到页面不多,而且项目持续时间也不会太长,需求没有几个,所以我决定前端沿用JSP,尽管我觉得thymleaf更好用。而且,因为只有两个页面,我也懒得去做组件化,layout了,代码大量复制粘贴

接下来的两个月里,陆陆续续接到了一些需求,增加了一些功能和页面,代码渐渐膨胀了起来。今天,当我再次接到了新需求,打开项目的时候,我发现代码已经变得有点难维护了。
首先是自己粘贴的大量重复代码,看到就头疼,但好歹是自己写的,里面的逻辑还看得懂;其次是页面没有layout和组件化,实现新页面的时候又要做之前做过的重复工作;最重要的是当我想用JSP自定义tag实现layout功能的时候,发现jstl嵌套进自定义的tag之后居然失效(最后发现其实是easyui的问题),因为对JSP不熟悉,找到这个问题花了我很多时间。

反思

其实我也没有料到,当初一个简简单单的小项目会变成现在这样。如果早知道的话,我就不会这么随意地去做了。结果现在又要花大量的时间去对代码进行重构。由此我想到了当前还在专职做前端开发的时候参与的一个app项目。项目初期是用jQuery快速搭建的原型,之后在原型的基础上,不断新增功能,但又没有及时进行重构,结果后来积重难返,前端开发们只能痛苦地用jQuery操作着DOM,而无法享受到MVVM框架带来的便利。

对于每一个接手的项目,我们其实无法预测最后它会发展成什么样,是做完就再也不会碰了还是会一直有新需求。既然如此,我们对任何一个项目都不该偷懒,该做的事情要做到位,该有的功能一个不能落下,代码规范不能放松。否则,我们坑的可能不是别人,而是未来看到当初写的代码后悔不已的自己。

该重构的还是要重构,希望类似的错误自己以后不再犯。


推荐阅读
  • 深入解析Unity3D游戏开发中的音频播放技术
    在游戏开发中,音频播放是提升玩家沉浸感的关键因素之一。本文将探讨如何在Unity3D中高效地管理和播放不同类型的游戏音频,包括背景音乐和效果音效,并介绍实现这些功能的具体步骤。 ... [详细]
  • 为何Compose与Swarm之后仍有Kubernetes的诞生?
    探讨在已有Compose和Swarm的情况下,Kubernetes是如何以其独特的设计理念和技术优势脱颖而出,成为容器编排领域的领航者。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • 随着Linux操作系统的广泛使用,确保用户账户及系统安全变得尤为重要。用户密码的复杂性直接关系到系统的整体安全性。本文将详细介绍如何在CentOS服务器上自定义密码规则,以增强系统的安全性。 ... [详细]
  • 3DSMAX制作超现实的体育馆模型
    这篇教程是向脚本之家的朋友介绍3DSMAX制作超现实的体育馆模型方法,教程制作出来的体育馆模型非常地不错,不过教程有点难度,需要有一定基础的朋友学习,推荐到脚本之家,喜欢的朋友可 ... [详细]
  • 本文介绍了如何在AngularJS应用中使用ng-repeat指令创建可单独点击选中的列表项,并详细描述了实现这一功能的具体步骤和代码示例。 ... [详细]
  • 在项目冲刺的最后一天,团队专注于软件用户界面的细节优化,包括调整控件布局和字体设置,以确保界面的简洁性和用户友好性。 ... [详细]
  • JavaScript 页面卸载事件详解 (onunload)
    当用户从页面离开时(如关闭页面或刷新页面),会触发 onunload 事件,此时可以执行预设的脚本。需要注意的是,不同的浏览器对 onunload 事件的支持程度可能有所不同。 ... [详细]
  • 默认情况下,Git 使用 Nano 编辑器进行提交信息的编辑,但如果您更喜欢使用 Vim,可以通过简单的配置更改来实现这一变化。本文将指导您如何通过修改全局配置文件来设置 Vim 作为默认的 Git 提交编辑器。 ... [详细]
  • 探索Java 11中的ZGC垃圾收集器
    Java 11引入了一种新的垃圾收集器——ZGC,由Oracle公司研发,旨在支持TB级别的内存容量,并保证极低的暂停时间。本文将探讨ZGC的开发背景、技术特点及其潜在的应用前景。 ... [详细]
  • 本文探讨了使用普通生成函数和指数生成函数解决组合与排列问题的方法,特别是在处理特定路径计数问题时的应用。文章通过详细分析和代码实现,展示了如何高效地计算在给定条件下不相邻相同元素的排列数量。 ... [详细]
  • 在Notepad++中配置Markdown语法高亮及实时预览功能
    本文详细介绍了如何在Notepad++中配置Markdown语法高亮和实时预览功能,包括必要的插件安装和设置步骤。 ... [详细]
  • 探讨如何在映射文件中处理重复的属性字段,以避免数据操作时出现错误。 ... [详细]
  • 网络流24题——试题库问题
    题目描述:假设一个试题库中有n道试题。每道试题都标明了所属类别。同一道题可能有多个类别属性。现要从题库中抽取m道题组成试卷。并要求试卷包含指定类型的试题。试设计一个满足要求的组卷算 ... [详细]
  • 利用无代码平台实现高效业务应用开发
    随着市场环境的变化加速,全球企业都在探索更为敏捷的应用开发模式,以便快速响应新兴的商业机遇。然而,传统的软件开发方式不仅成本高昂,而且耗时较长,这往往导致IT与业务部门之间的合作障碍,进而影响项目的成功。本文将探讨如何通过无代码开发平台解决这些问题。 ... [详细]
author-avatar
手机用户2502921663
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有