问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

作为一个程序员,面对别人写的稀烂的代码,怎么办

发布网友 发布时间:2022-04-07 18:08

我来回答

4个回答

懂视网 时间:2022-04-07 22:30

 

  在使用SqlCommand 执行存储过程时,如果存储过程需要参数,就必须将每个参数都输进去,虽然说可以使用AddWithValue 方法,但参数多时仍旧有些麻烦。

  在需要将类的所有属性作为参数时,可以通过反射获取这个类所有的属性和值,并直接添加到参数中。

  不过需要注意的是,必须保证类的属性名和参数名相同(不区分大小写),顺序无所谓。

  

1  private void SetSqlParameters<T>(SqlCommand cmd, T model)
2  where T : class
3  {
4  foreach (PropertyInfo prop in 
5   model.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public))
6   {
7   cmd.Parameters.AddWithValue("@" + prop.Name, prop.GetValue(model, null));
8   }
9  }

  可以看出,这个函数中使用了一个循环来遍历所有属性,并使用GetValue 方法来获得相应的值,之后只需用一句话就可以将所有的属性加入参数列表中。

 1  public Building FindBuilding(Building building)
 2  {
 3  using (SqlConnection con = new SqlConnection(AppConnectionString))
 4   {
 5   SqlCommand cmd = new SqlCommand("FindBuilding", con);
 6   cmd.CommandType = CommandType.StoredProcedure;
 7   SetSqlParameters<Building>(cmd, building);
 8 
 9   con.Open();
10   SqlDataReader reader = cmd.ExecuteReader();
11   if (reader.Read())
12   return new Building
13    (
14    (string)reader["BldgName"],
15    (int)reader["RoomNum"]
16    );
17 
18   return null;
19   }
20  }

 

【乱写代码坑人系列】小插曲(一)将类的所有属性添加为SqlCommand的参数

标签:

热心网友 时间:2022-04-07 19:38

在查阅代码时,经常会发现一些写的不合理的代码。
面对这些代码,首先需要确认修正这些代码的影响范围。

最理想的处置是对代码进行重构,从根本解决代码的混乱问题。
但是大多数情况,我们没有时间进行重构,或者无法确保重构之后的代码不会出现问题。
建议先解决最棘手的问题,然后慢慢对代码进行分析,重构。

热心网友 时间:2022-04-07 20:56

这心情大概就像几百个人堆积木。堆得歪歪扭扭,摇摇晃晃,乱七八糟,你千万不能抽里面的积木,指不定抽了一块就塌了。只能看见哪里觉得不牢靠不停的往那边填积木。只要不倒就好了。

每一位接手者在看代码之后,心里都想着重构。但其实重构了几个方法后,放弃的概率可能会越来越大...

还有些情况其实并不是代码垃圾,而是维护这个代码的人一波又一波的换。新上的人在没有完全熟悉这款业务的时候又不敢随便改,等熟悉了以后,又想着跳槽,或者偷懒。除非遇到一个极其负责的人维护,但是这种人很少。

综上,code review很重要,利用好code review 去统一和实践以及监督,相信可以有效提升代码质量。

网页链接

热心网友 时间:2022-04-07 22:30

给你传了本电子书。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ef英语哪个好 EF英孚英语培训怎么样? 英孚英语好不好 EF英孚教育到底好不好 大佬们,麦芒7和荣耀10那个值得入手?2500以下的机子还有啥好推荐的么... 介绍几款2500元以前的手机 像素一定要高 其他的不做要求 近期想入手一部安卓手机,价格2200到2500左右…买HTC desire Z还是 三星... 笔记本忘记开机密码怎么办急死了 笔记本电脑屏幕开机锁忘记密码 怎么办?急死了 华硕笔记本电脑开机密码忘记了怎样找回?系统是Windows 7旗舰版... 新泰市派出所户籍室五一放假时间 五一派出所放假 沧州市小王庄派出所户籍科五一放假吗? 五一放假期间能不能办省份证? 身份证快过期了,这个五一假期去重拍身份证,想问下派出所节假日可以办理业务么? 户籍科五一放假吗 健康减肥瘦身法 网速快慢与路由器关系大吗 如何健康减肥 分享减肥方法大全 网速慢跟路由器有关系吗 专升本是在大几的时候考试啊 河北省专升本的考试时间,资格,报名时间,录取院校等等相关信息 2026年意大利冬奥会、冬残奥会会徽首次亮相,该会徽有何别致之处? 河北省每年专接本在什么时候考试 河北师大函授专升本考试时间 河北专升本考试时间 常见的标识有哪些? 河北专升本2023年具体时间 身边常见的标志有哪些 女孩子乳头什么时候开始发育啊,什么时候就开始变大了? 派出所弄户口的五一放假吗?我想五一回去弄下户口 今天五月6号不知道派出所户籍科上班了吗? 派出所户籍科端午节放假吗 东莞身份证异地办理点五一放假吗? 派出所户籍科法定节假日上班吗? 《王者荣耀》猴子配什么铭文最厉害? 基础化学中的计算公式 化学计算公式 房产证 加老婆名字 昆明 去哪里办理 需要些什么? 化学质量分数计算公式 化学计算质量的公式 昆明玉泽苑小区房产证 化学的计算公式 分析化学计算公式汇总 初中化学计算公式,要解释 我国历代国民生产总值占世界的比例 化学公式计算 昆明天宇佳苑何时能办房产证 化学ka计算公式是什么? 中国历年的国民生产总值是多少?