根据我们组的经验,很多时候bug太多,并不是程序员本身的写代码的能力,而是用户需求没做好。 看你们公司那么小,很多工作应该都是 ad-hoc 临时起意的,或者 requirement 没有定义好,或者根本就没有 requirement。老板有个大概的需求在脑子里,给你大概讲一下,你的理解,也许只有20%和他想的重合。因为他也没有给你细节和各种 use cases,这样看来来就好像你做了东,忘了西,顾了右,落了左。 有经验的程序员,或者说在那个公司工作久了,就会意识到,哦,这个地方我要注意一下,或者,问一下同事,某些 use case 需不需要,需要什么样的结果,这样 design architecture 的时候,就会注意到。 没经验的,或者在公司很短时间的,因为对公司产品不熟,不少 business logic 不了解,看起来就好像人能力不行,其实,他们写的代码本身根本没有问题,只是设计构架的时候,很多东西没有考虑到。
没人做测试,而且可以用来测试的样本非常少,
老板非常严厉,要求马上上线,压力山大
请问如何让程序尽量减少bug,或是在log内有了error msg, 能快速的定位到错误代码的那一行?
已经尽量让代码简洁了,naming 也都consistent, 还写log, 上了一些ut。
现在的办法是用一个try catch 把所有code, 都包裹起来,能看到error, 但是无法定位error, 除非用debug tools一点一点run
谢谢大家
像一般的语言报错,都有一种写法,类似于 __FILE__, __LINE__, 你可以自己写log到自己指定的文件。
这里面大家喜欢保存,当前文件,某一行出错。
通过log来定位到底哪一段出了问题的常见做法是,在函数里定义一个局部变量,一开始初始化为零,然后在每个可能出问题的那一行代码下面把这个变量加一,最后dump log的时候把变量值写进去。这样你大概就知道是什么位置出错。
try and catch你要re-throw,不要直接放log。这样才能有stack trace。
估计他老板不给时间让他写unit test。哎。
反正就是要让自己日子好过,unit test,integration test,acceptance test都该有。都该扩大covarage。
然后是log,是metrics,是tracing。
不过最关键的是architecture。是设计一个好的系统。是ops,保障足够的cpu,memory,network。一旦server下线能立刻发现。
你这问的是写程序的最高境界,哪有shortcut啊
spring 里面我估计也有类似的功能。这是chatgpt给的例子。
startup 都是 0 unit test, 直接 production. 哈哈。
他说公司就他一个程序员,而且要马上go live, 现在回去搞UT?
我觉得如果要马上上线了,那技术层补救的方法有限。尤其是你们那里就你一个程序员。 只有一个程序员的麻烦的地方在于,你说一些技术上的困难或潜在的问题,你找不到别人在支持你,因为剩下的人毛也不懂。
如果是我,除了技术层,我会做两件事, 第一,说服你老板至少找个人进行全面high level功能测试,这样至少能看看需求和implementation是不是一致,而且这个人也能share一部分责任。 第二,我不知道你这是整个产品上线,还是说一个feature上线, 我假设是功能上线,那你能不能加个switch, 万一挂了的话能把这个功能关掉。
感觉这个公司没啥前途,有机会赶紧跳船跑路吧。
不写test 害人害己。写完测试覆盖率90%才算写完了,要不然半成品都不是,怎么敢直接production, 太粗糙了。
同建议跑路,感觉像转行的人什么都不懂在乱搞
这老板真不行。程序都是试错试好的。老司机出错少,那是因为以前踩坑多。不愿花老司机的钱,就只能这质量。
怎么老觉得整天国人怼国人?!怎么是乱搞?!能给点意见就最好,不给就不要太Mean。你不转码,别人天天转码,国人转码就动了你的蛋糕?!
这公司是火坑,楼主能跑就跑吧
其实,这种公司,完全不需要 雇个人 自己从头写。
看哪个好的,完全可以买一个 类似的架构,在那个基础上 再 customize 一下 就可以了
是的,我早就一针见血的指出了。
关键是公司的产品是什么, 要是 碰上早期的 google, fb, 你梦里都可以写 code.
根据我们组的经验,很多时候bug太多,并不是程序员本身的写代码的能力,而是用户需求没做好。
看你们公司那么小,很多工作应该都是 ad-hoc 临时起意的,或者 requirement 没有定义好,或者根本就没有 requirement。老板有个大概的需求在脑子里,给你大概讲一下,你的理解,也许只有20%和他想的重合。因为他也没有给你细节和各种 use cases,这样看来来就好像你做了东,忘了西,顾了右,落了左。
有经验的程序员,或者说在那个公司工作久了,就会意识到,哦,这个地方我要注意一下,或者,问一下同事,某些 use case 需不需要,需要什么样的结果,这样 design architecture 的时候,就会注意到。
没经验的,或者在公司很短时间的,因为对公司产品不熟,不少 business logic 不了解,看起来就好像人能力不行,其实,他们写的代码本身根本没有问题,只是设计构架的时候,很多东西没有考虑到。
再牛的程序员也写不出bug free的大型程序。都是测出来的。
哈哈,我组里有个娃,特别爱用 try-catch,偷偷摸摸把exception 吃了,又不throw,他所谓的 fail gracefully,结果就是测试初期,看不到问题,程序从来不 crash,很多东西不能用,最后一分钟才测出来 (QA黑盒测的,小朋友没写 unit test,后来我们要求所有人都写 unit test)
哈哈哈连dev环境都没有的
这种应该就是做公司内部的应用程序的,就算下线了也没啥,公司照样可以转
其实这种老板很好相处,都是楼主一人说了算,好爽啊!
否则,很难做的
应该有免费的version control软件
不用自己干 看别人干就行 他现在这种情况 不仅吃不到猪肉 连🐷长什么样都看不到
git啊
QA可以自己做,就是把全部成功案例走一遍,再finalize
这样的公司有点可怕,快逃吧。
菜鸟可不就是bug多吗,老鸟也写不出没bug的code。。。。。