Programming 板


LINE

※ [本文转录自 C_Sharp 看板 #1SuXiP0z ] 作者: s4300026 (s4300026) 看板: C_Sharp 标题: [问题] 改code改到累了 耦合模式 时间: Mon May 20 11:12:23 2019 是这样的 最近小弟改code改到累了, 改到非常想翻桌 想跟各位大神讨论该怎麽做 Obsolete 程式码的编程 我的实际应用状况是这样的:(我举两个例子都是相同问题) =================================== 情境1. WriteTraceLog 在原本一开始的时候我根本不会去写所谓的Log File 只要编译可以过就行了 直到某一天我的程式出问题 我问使用者出了什麽问题? 他说:"就是点点点後就当机了" 能叙述详细一点吗? 他说:"就是如下操作..." 然後实际操作正常... 我:...... 从此我学会了WriteLog的重要性 在这个时候的我 撰写程式码如下 WriteLog("进入OO方法"); WriteLog("做某事已成功"); WriteLog("退出某方法"); 随着事情的发展 我明白到Polling Event Callback方法根本不能这样写 因为会多一堆垃圾讯息 因此改写成 WriteLog("EventCallback已呼叫", isDebugMode); 写到这里 我觉得自己很厉害 以後就可以不用靠使用者口耳相传的方式除错了 只要给我Log档,剩下我自己想办法重现 做到这边 我就在想,如果我能适时的 "顺便" 纪录一些使用者觉得需要的讯息好像也不错? (以前他们是自己做完自己用纸笔纪录的) 就在这个时候 我的解决方法是 一般的 WriteLog 是用 Static, static string logPath; static string logFile; 当要特别处理时我另开变数处理 string dynamicLogPath; string dynamicLogFile; 这样就可以各自处理需要的文件 (赞!) 相安无事一些时间後 我学到了multiThread 因为C#很注重委派方法 我开始在意writeLog是哪个执行序 因此我开始加入thread.CurrentThread, 并开始排版 writeLog("LogStr","NowClassName","NowMethodName"); 然後到了最近 我又学到了 stackTrace(true).GetFrame(1).GetMethod().Name; stackTrace(true).GetFrame(1).GetMethod().DeclareType.Name; 我就想把整个过去的方法整个改掉 不然一路走来的方法实在是太多种了,多到我我觉得我之後一定会忘记哪种是最新的版本 而且印出来的log排版格式完全不一样,看了格外的痛苦. 因此想问写程式有什麽好办法? ================================= 情境2:ConnectMethod 我时常用程式去操控一硬体, 我要给予该硬体一个指定电压电流的命令 (如LED灯泡,可以吃7V~12V的电压) 在一开始的版本中 是采用 类比控制 (不连线) 我就只要直接输出类比电压就结案了 之後我操控的软体升级了 改采用 RS232 去操控 (serialPort连线) 然後我就再写了一个新的版本 又过了几天 我开始担心会不会又改了一个新版本 采用网路去控制 (Ethernet连线) 当我开始意识到这个问题时 我开始找解决方法 在 深入浅出 - 设计模式 中 他们的建议是尽量采用 Interface 做变数型别 尽量不要用 class 当变数型别 class SerialPortConnect{} interface ConnectMethod{} SerialPortConnect myRS232; (X) ConnectMethod myConnectMethod; (O) 但问题是我已经很懒得再动以前的程式码了 因为真的花很多时间处理通讯的问题 好不容易有个 "稍微" 稳定的版本 我想询问版上的大大 会怎麽去处理这样的问题呢? 我目前的想法是添加警告讯息 [Obsolete("请不要使用",false)] public class MyClass{} 但我想知道大家会怎麽去设计 因为我真的改到不想改以前的程式码了... 但我又觉得专案中有一堆过时的东西、各种风格令人烦躁... --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.250.235.221
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1558321945.A.03D.html



※ 发信站: 批踢踢实业坊(ptt.cc)
※ 转录者: s4300026 (60.250.235.221), 05/20/2019 11:21:43
1F:推 fakeking: Log 可用现成的套件如NLog 111.82.50.32 05/20 20:57
2F:→ s4300026: 好的!!! 60.250.235.221 05/21 08:55
3F:推 howardgj94: 我也在想为何log不用套件xd 111.71.108.60 07/12 20:17







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP