为什么bug这么多,论一个规范的开发框架重要性

在公司做项目二次开发快一年了,说实话,每次我和同事调侃,写一个星期代码,就要改一个月bug,心累。为什么我会产出这么多bug,我技术很low吗?我是程序员渣渣?扪心自问,我不服啊

每次做单独项目接口都会写个文档,说明的一清二处,上回和专业线那边合作做开发,根本就不需要我费什么劲跟人沟通,直接一个文档甩过去。

哪怕是搞前后端是我一个人,我也把文档给写了,怕到时候后面的同事接手我的项目,或者项目变更外包给其他团队。

自己做单独项目,技术框架自己搭的,算不上好,但是努力去遵循一些基本的解耦,代码分层规范,响应层只作调用,一行业务代码都不放,所有的业务处理都放在业务层service里面处理,响应层就负责调用

而公司几个主要产品的代码,一个响应方法不写个上千行业务代码,决不罢休 ,简直醉了.

再复杂的业务十几行搞定,不同的独立业务全部拆分,响应层只是把独立的业务再捏合一下就ok了,这样需求变动的时候,那块业务要改,就只需要到service层去调整一下,其他层代码看不都不用看.

再看service层,公共方法用继承抽到父类去,每个业务方法基本一行搞定,复杂的业务查询sql我又全部抽离到一个层去统一管理,代码层次清晰,简洁优雅到一目了然(~_~)

    

所有复杂的sql都放到统一的sql模板层,就不存在一个sql语句到处写,然后表加了改了一个字段,你得改几十个地方,你整个项目只能全局搜索还不一定搜索得全.

反观公司一些项目的代码,简直丧心病狂好吗,见过加一个字段搞了两三天,一开始同事和我说我还不信,知道我一脚也踏进了坑中。

有一些大神总结出来的经验真的是只有被坑过才能理解:

1.一个方法只做一件事情

2.当一段代码重复了第3次的时候,就要把这段代码剥离出来。

3.字面量不要到处写,能用常量定义的就用常量。

时间: 2024-08-02 18:00:08

为什么bug这么多,论一个规范的开发框架重要性的相关文章

一个规范的自定义View——Android开发艺术探索笔记

欢迎转载,转载请注明原文链接http://blog.csdn.net/l664675249/article/details/50787973 一个不规范的自定义View 这个自定义的View很简单,就是画一个圆,实现一个圆形效果的自定义View. 先看一个不规范的自定义View是怎么做的 public class CircleView extends View { private int mColor = Color.RED; private Paint mPaint = new Paint(P

分享几个常用的Xcode插件。第一个, 规范注释生成器VVDocumenter。

http://www.qdmm.com/BookReader/113167,54166719.aspx http://www.qdmm.com/BookReader/113167,54166867.aspx http://www.qdmm.com/BookReader/113167,54166868.aspx http://www.qdmm.com/BookReader/113167,54166869.aspx http://www.qdmm.com/BookReader/113167,5416

接口实际上是定义一个规范、标准

接口往往被我们定义成一类XX的东西. 接口实际上是定义一个规范.标准. ① 通过接口可以实现不同层次.不同体系对象的共同属性: 通过接口实现write once as anywhere. 以JAVA数据库连接为例子:JDBC制定标准:数据厂商实现标准:用户使用标准. 接口通常用来屏蔽底层的差异. ②接口也因为上述原因被用来保持架构的稳定性. 1 package TomText; 2 //算术运算符的使用示例. 3 public class TomText_34 { 4 public static

创建一个规范的django项目

1. 创建项目 2. 创建static目录及配置 1.创建放css, javascript,img的目录 2.在settings.py中将static绝对路径保存到变量STATICFILES_DIRS中. 3. 创建app及配置 3.1 我们希望尽量将各个模块分开,来给程序解耦,降低开发.维护和版本迭代的难度.所以创建多个APP 3.2 但是对于复杂的工程来说,每一个app会有很多表单.功能和url,所以我们将原本在app下的views文件删除,添加上forms和views两个目录,来存放不同的

iOS-----写一个规范的单例--->

1.集成了一个宏 2.两句代码集成单例 3.一句代码调用单例 -------------> 1.集成了一个宏 //这里就要注意了,因为每个单例中,方法名可以不一样,那么我们就不能把名字写死,要灵活自定义,那么就要调用的时候给他传名啊,那么!!!要注意连接符号##的使用,传进来的参数要放到连接符号后面如下 #define iVanSingletonH(name)  +(instancetype)shared##name; //注意这里,一般宏只会判断 宏的名字后面跟着那段是它的代码,所以要加\符号

黑马程序-oc基础---封装 继承 多态 NSString 代码规范格式的重要性

//写代码的一条重要性:就是代码编写规范,尤其是xcode编写对格式的对齐有关系,在下面的代码没有怎么对齐的情况下出现30个警告 //一般oc程序的头文件 #import <Foundation/Foundation.h> typedef enum { SexMan, SexWoman } Sex; //类的声明 @interface Student : NSObject { int _age; // int no; Sex _sex; } -(void)setAge:(int)newAge;

我的第一个python web开发框架(19)——产品发布相关事项

好不容易小白将系统开发完成,对于发布到服务器端并没有什么经验,于是在下班后又找到老菜. 小白:老大,不好意思又要麻烦你了,项目已经弄完,但要发布上线我还一头雾水,有空帮我讲解一下吗? 老菜:嗯,系统上线并不一件简单的事情,它可大可小.如果准备不充分,有可能会很多问题出现.你认为写好代码后要怎么发布? 小白:呃,完成开发后,上传到服务器,然后浏览器可以正常访问... 老菜:看来得普及一下上线的相关知识才行. 正规的产品上线一般可以按下面几个步骤来进行: 1. 开发人员自测(开发环境) 2. 测试人

VsSharp:一个VS扩展开发框架(上)

上篇:设计 一.引子 自2008年起开发SSMS插件SqlSharp(er)的过程中,有一天发现多数代码都大同小异,就像这样. Commands2 commands = (Commands2)_applicationObject.Commands; string toolsMenuName = "Tools"; //Place the command on the tools menu. //Find the MenuBar command bar, which is the top-

我的第一个python web开发框架(3)——怎么开始?

小白与小美公司经过几次接触商谈,好不容易将外包签订了下来,准备开始大干一场.不过小白由于没有太多的项目经验,学过python懂得python的基本语法,在公司跟着大家做过简单功能,另外还会一些HTML和Jquery,对数据库一知半解,看来要完成这个项目也不是一件容易的事情.想到这些小白顿时头都大了起来,想要开干却无从下手,所以只能找对自己挺照顾的部门老大请教一下. 人物介绍:老菜,部门老大,IT老民工,有着十多年开发经验的码农,做过各种项目,开发经验十分丰富,是个热心助人的老好人. 小白:老大救