找回密码
 FreeOZ用户注册
楼主: DDD888
打印 上一主题 下一主题

[其他] 如果老板不同意我花时间写unit testing,该如何办啊?

[复制链接]
181#
发表于 30-1-2014 00:40:21 | 只看该作者

上个星期用了大半天写实现,今天又花了大半天改那些fail的test跟写新的test。
没办法,不写test心里感觉怪怪的。也有peer pressure的因素在内。
从现有的test framework上面加东西,还不算太麻烦。
比较怕的是改了一段code,结果发现原来什么test都没有。也不知道改得会不会有问题。
而且现有的test能告诉你那些code应该做有什么行为。改起来比较让人放心。
回复  

使用道具 举报

182#
 楼主| 发表于 30-1-2014 06:49:13 | 只看该作者
cais 发表于 30-1-2014 00:40
上个星期用了大半天写实现,今天又花了大半天改那些fail的test跟写新的test。
没办法,不写test心里感觉 ...

书上说在改之前,如发现没有unit test的话,那先写unit test,然后再改,这样就保证放心了
回复  

使用道具 举报

183#
发表于 30-1-2014 22:02:11 | 只看该作者
DDD888 发表于 30-1-2014 06:49
书上说在改之前,如发现没有unit test的话,那先写unit test,然后再改,这样就保证放心了

理论上是这样的。实际操作上还是难改那种直接上来就改程序的做法。
回复  

使用道具 举报

184#
发表于 30-1-2014 23:12:06 | 只看该作者
提示: 作者被禁止或删除, 无法发言
闲的没事还不如去研究这个:
http://www.usaco.org/index.php?page=open13problems
回复  

使用道具 举报

185#
 楼主| 发表于 31-1-2014 06:44:17 | 只看该作者
black_zerg 发表于 30-1-2014 23:12
闲的没事还不如去研究这个:
http://www.usaco.org/index.php?page=open13problems

我感觉你给的连接对我提高工资毫无意义,写unit test可以提高自己的技术水平啦,写unit test要比写.net程序要难许多啦,许多人放弃写.net unit test在某种程度上是太难,太费力啦,有时候根本就不知道如何写unit test
回复  

使用道具 举报

186#
 楼主| 发表于 31-1-2014 06:46:42 | 只看该作者
cais 发表于 30-1-2014 22:02
理论上是这样的。实际操作上还是难改那种直接上来就改程序的做法。

是的,习惯势力啦,就象tdd一样,要先写测试,再写程序
回复  

使用道具 举报

187#
发表于 31-1-2014 07:11:13 | 只看该作者
black_zerg 发表于 30-1-2014 23:12
闲的没事还不如去研究这个:
http://www.usaco.org/index.php?page=open13problems

這些都是算法題,對數學功底要求很高。

我中學時參加過一些地區性的數學競賽,大三時也代表學校參加過全國大學生計算機比賽還有和周邊一些學校的軟件比賽,拿過一些小獎。總的來說,井底之蛙見識過什麽叫牛人。也知道自己和牛人的差距到底有多遠。

有趣的是,從那時開始,對一些無知無畏的說法(比如那些所謂牛人都是運氣不錯而已啦,難道他們就真的比我們強很多嗎),反倒更容易用平和的心態來面對。

套用比較流行的說法,這些無知無畏的人是不知道自己不知道,而自己只是比較幸運,比他們多知道一點點,知道自己不知道。

回复  

使用道具 举报

188#
发表于 31-1-2014 07:18:26 | 只看该作者
DDD888 发表于 31-1-2014 06:44
我感觉你给的连接对我提高工资毫无意义,写unit test可以提高自己的技术水平啦,写unit test要比写.net程 ...

我覺得如果單純從提高工資的角度來考慮,lz你需要的不是提高技術水平,而是提高你的談判技巧。

技術水平只是談判的籌碼之一,而從目前所了解的情況來看,你的技術水平已經漲停板了,是時候認真面對你的真正短板了。

评分

参与人数 1威望 +20 收起 理由
cais + 20 我很赞同!

查看全部评分

回复  

使用道具 举报

189#
 楼主| 发表于 31-1-2014 07:35:09 | 只看该作者
karl.lee.2004 发表于 31-1-2014 07:18
我覺得如果單純從提高工資的角度來考慮,lz你需要的不是提高技術水平,而是提高你的談判技巧。

技術水 ...

谢谢

我有许许多多的不懂,例如十八年前学写x86的汇编都忘了,我需要补啦,还要学android的arm的汇编
回复  

使用道具 举报

190#
发表于 31-1-2014 08:04:46 | 只看该作者
DDD888 发表于 31-1-2014 07:35
谢谢

我有许许多多的不懂,例如十八年前学写x86的汇编都忘了,我需要补啦,还要学android ...

你学汇编这些是你的兴趣爱好,还是工作需要?

如果lz确实想从交流中获益,那我愿意分享一下自己的一些看法。

如果lz只是在打哈哈,呵呵,那就这样吧:)
回复  

使用道具 举报

191#
发表于 31-1-2014 08:50:15 | 只看该作者
karl.lee.2004 发表于 31-1-2014 08:04
你学汇编这些是你的兴趣爱好,还是工作需要?

如果lz确实想从交流中获益,那我愿意分享一下自己的一些 ...

我觉得你说的没错,ddd888兄被他老板压榨得很厉害
问题不在技术上,而是他老板的问题

我是觉得走为上策,一个人的性格很难改变的
不过兄台觉得可以通过谈判解决问题
这点我也挺感兴趣的,能不能分享下你的见解?

Btw,我不觉得ddd888是在打哈哈,只是他比较谦虚而已
回复  

使用道具 举报

192#
发表于 31-1-2014 14:46:38 | 只看该作者
planetkeeper 发表于 31-1-2014 08:50
我觉得你说的没错,ddd888兄被他老板压榨得很厉害
问题不在技术上,而是他老板的问题
Btw,我不觉得ddd888是在打哈哈,只是他比较谦虚而已

的确是挺谦虚的。
回复  

使用道具 举报

193#
 楼主| 发表于 31-1-2014 14:51:18 | 只看该作者
karl.lee.2004 发表于 31-1-2014 07:11
這些都是算法題,對數學功底要求很高。

我中學時參加過一些地區性的數學競賽,大三時也代表學校參加過 ...

其实如果能跳出圈外,那一个个门上的锁都会迎刃而开。
回复  

使用道具 举报

194#
发表于 31-1-2014 19:08:22 | 只看该作者
提示: 作者被禁止或删除, 无法发言
karl.lee.2004 发表于 31-1-2014 07:11
這些都是算法題,對數學功底要求很高。

我中學時參加過一些地區性的數學競賽,大三時也代表學校參加過 ...

是的,我觉得有些人真的脑子很好而且从小开始就做过很多正规的训练。 没法比。感觉真正的大牛都在科学界。工程类的东西容易做成,但是其实都没什么难度,只要智商OK的都能搞的出来,愿意不愿意而已。科学界的问题就是太难做出突破。

评分

参与人数 1威望 +50 收起 理由
karl.lee.2004 + 50 我很赞同!

查看全部评分

回复  

使用道具 举报

195#
发表于 31-1-2014 20:49:56 | 只看该作者
提示: 作者被禁止或删除, 无法发言
DDD888 发表于 31-1-2014 06:44
我感觉你给的连接对我提高工资毫无意义,写unit test可以提高自己的技术水平啦,写unit test要比写.net程 ...


我能说实话么,相对于程序本身,花费更多的时间在unit test 上 在我看就和笑话一样。 要是觉得写 .net太容易,算法题又太空洞,不如去写个游戏引擎玩玩

评分

参与人数 1威望 +50 收起 理由
karl.lee.2004 + 50 你太搞笑了!

查看全部评分

回复  

使用道具 举报

196#
 楼主| 发表于 1-2-2014 06:11:51 | 只看该作者
black_zerg 发表于 31-1-2014 20:49
我能说实话么,相对于程序本身,花费更多的时间在unit test 上 在我看就和笑话一样。 要是觉得写 .net太 ...

我的心得是写unit test就如同写contract,unit test函数的名字描述了合同的内容,unit test函数测试合同的实现,被测试的函数本身是合同的实现,只要unit test 和被测试的函数不匹配就可以通过阅读unit test函数的名字来review到底是哪出错,这样简单的process简直是发明计算机以来最好的东西啦
回复  

使用道具 举报

197#
发表于 1-2-2014 06:43:20 | 只看该作者
提示: 作者被禁止或删除, 无法发言
本帖最后由 black_zerg 于 1-2-2014 06:56 编辑

你有这个心得,我个人的猜测是你的程序逻辑简单,变动少,目前又有这个时间。而且有可能你的程序本身也没什么好改进的了,所以你开始追求百分百覆盖。但是我会很意外,如果你的测试如果能帮助你发现很多bug。而且unit test怎么能算是‘最好的东西’, 追求百分百覆盖简直是最傻的东西。我认为这个已经属于迷信了,在一个复杂程序的情况下,百分百覆盖在逻辑上几乎是不可能的,只不过看起来都覆盖了,实际上你不可能覆盖所有的变数。这个完全就是虚假的安全感。
刚看到这个,很有意思:
http://stackoverflow.com/questio ... rtab=active#tab-top

引用一下:

I get paid for code that works, not for tests, so my philosophy is to test as little as possible to reach a given level of confidence (I suspect this level of confidence is high compared to industry standards, but that could just be hubris)

我上面说了不妨去写个游戏(引擎)不是开玩笑,我认真觉得这个很需要设计 我自己也感兴趣。真是强程序员的话,把精力放在测试上简直是浪费天赋。我是从纯技术和追求productivity的角度来看,所以这些观点也只会和同行们分享。要从创造GDP的角度看,只要老板给钱,那就是好技术。产品做完了一帮人坐着写测试,那也大家有活干。

评分

参与人数 1威望 +20 收起 理由
xychar + 20 谢谢分享!

查看全部评分

回复  

使用道具 举报

198#
发表于 1-2-2014 07:18:36 | 只看该作者
本帖最后由 karl.lee.2004 于 1-2-2014 08:19 编辑
black_zerg 发表于 1-2-2014 06:43
你有这个心得,我个人的猜测是你的程序逻辑简单,变动少,目前又有这个时间。而且有可能你的程序本身也没什 ...


你這個stackoverflow的引用很好,因為最高票數的回答中第一句就已經說清楚了問題所在:

I get paid for code that works, not for tests

更有說服力的是,這話是Kent Beck提出來的。

如果公司老闆覺得test是重要的,是的確可以保障公司的產品/服務質量的,那他就會pay for the tests。這時候你的工資裡面就包含了寫test的成本。我工作過的一家F500的銀行,其senior software engineer的JD裡面就明確指出工作中包含產品的test,所以可以認為公司已經paid for tests。

否則既然連公司老闆都不重視test,你一個前線員工還用自己的資源去為公司寫test,好聽點就是commitment,對自己的code負責,難聽點就是那個什麽的。不過你總是能找到一些正面的東西來激勵自己的,不是嗎:)

當然,實際情況是老闆不會指明給你的工資中包含什麽test的成本,他要的就是簡單直接的給你工資,你給我deliver能用的東西:你是幫我解決問題,不是給我製造麻煩的。所以什麽unit testing的,屬於你的工作範圍內的東西,反正工資就那麼多了,你自己看著辦。

在這種粗放型的公司,你要說服老闆給你額外資源寫unit testing,你就要讓老闆相信:

0. unit testing是必須的(可以提高軟件質量,不致於deliver后引入更多麻煩)
1. 目前公司給你的資源是不夠的(你經常加班,是在用個人時間補貼公司)
2. 如果因此帶來什麽大的麻煩,即使你肯加班,也是有心無力的(這點是關鍵,既說明了你主觀上是願意為公司解決麻煩,但客觀上因為前期投入實在不足,欠下的債實在太多,你也回天乏術了)

最後說句大實話,對於這類已經明顯超出技術範疇的問題,你還企圖用技術手段來解決,是不是有點緣木求魚了?

评分

参与人数 1威望 +20 收起 理由
xychar + 20 谢谢分享!

查看全部评分

回复  

使用道具 举报

199#
 楼主| 发表于 1-2-2014 07:21:55 | 只看该作者
black_zerg 发表于 1-2-2014 06:43
你有这个心得,我个人的猜测是你的程序逻辑简单,变动少,目前又有这个时间。而且有可能你的程序本身也没什 ...

我写的程序应该算普通的应用啦,逻辑应该属于正常,变动和普通的商业应用一样,属于一直在变的,而且我工作的公司是小公司,没有BA啦,所以变动更多啦,当然我是很忙的,没有时间啦,而且因为现在拿到了一个大客户,我估计客户在release以后会提出各种要求啦
回复  

使用道具 举报

200#
发表于 1-2-2014 07:33:16 | 只看该作者
DDD888 发表于 1-2-2014 07:21
我写的程序应该算普通的应用啦,逻辑应该属于正常,变动和普通的商业应用一样,属于一直在变的,而且我工 ...


這麼說來你是client facing的,連BA的活也干了?

我的經驗是,如果沒有一個PM,BA或team lead擋著,直接讓client接觸開發人員的話,大家都會累死,而且效果通常不好。

無論如何,讓client-facing的人去寫unit testing,又是一個讓我“漲見識,開眼界”的例子:)

你這是要自己當老闆的節奏啊...
回复  

使用道具 举报

201#
 楼主| 发表于 1-2-2014 08:07:28 | 只看该作者
karl.lee.2004 发表于 1-2-2014 07:33
這麼說來你是client facing的,連BA的活也干了?

我的經驗是,如果沒有一個PM,BA或team lead擋著, ...

没有啦,由我老板转发客户要修改网站的email
回复  

使用道具 举报

202#
发表于 1-2-2014 08:14:07 | 只看该作者
DDD888 发表于 1-2-2014 08:07
没有啦,由我老板转发客户要修改网站的email


你老闆轉發時,有沒有加入他的opinion或suggestion?

如果有的話,那就是你的老闆在做BA的活。除非是很urgent的case,否則通常的做法都是BA累積了一堆客戶的requirement后才找開發談。

如果只是單純fwd的話,他充其量只不過做了人肉中繼,最後還是要你來client-facing。
回复  

使用道具 举报

203#
 楼主| 发表于 1-2-2014 08:30:41 | 只看该作者
karl.lee.2004 发表于 1-2-2014 08:14
你老闆轉發時,有沒有加入他的opinion或suggestion?

如果有的話,那就是你的老闆在做BA的活。除非是 ...

应该是老板做BA啦
回复  

使用道具 举报

204#
 楼主| 发表于 1-2-2014 13:50:44 | 只看该作者
cais 发表于 11-12-2013 23:18
手机的自动化测试还没做过。据说android的比iphone的要好很多。
不过最少服务器方面的api应该是可以做到 ...


我是用C#开发android的,总经理不懂java,只懂vb.net,所以我用C#,对他比java更贴心

我用mvvmCross支持手机的自动化测试,包括android, iphone, Windows phone, Windows 8 store app

评分

参与人数 1威望 +50 收起 理由
cais + 50 谢谢分享!

查看全部评分

回复  

使用道具 举报

205#
 楼主| 发表于 1-2-2014 13:55:08 | 只看该作者
black_zerg 发表于 31-1-2014 20:49
我能说实话么,相对于程序本身,花费更多的时间在unit test 上 在我看就和笑话一样。 要是觉得写 .net太 ...

在写了839个C#的unit test后,我发觉我在unit test上所花时间大幅度减少,比写普通的程序要容易多了

这就好比写unit test类似于包工头,写程序的相当于工人,工人做好工作后,包工头只需要检查结果,检查结果当然比实际做工要轻松许多啦
回复  

使用道具 举报

206#
发表于 1-2-2014 20:57:51 | 只看该作者
提示: 作者被禁止或删除, 无法发言
DDD888 发表于 1-2-2014 13:50
我是用C#开发android的,总经理不懂java,只懂vb.net,所以我用C#,对他比java更贴心

我用mvvmCross支持 ...

用c#写android? 你的程序能跨平台么?还是说一个平台一个程序,但是都可以用C#写?
回复  

使用道具 举报

207#
 楼主| 发表于 2-2-2014 04:33:22 | 只看该作者
black_zerg 发表于 1-2-2014 20:57
用c#写android? 你的程序能跨平台么?还是说一个平台一个程序,但是都可以用C#写?

跨平台
回复  

使用道具 举报

208#
发表于 2-2-2014 07:02:49 | 只看该作者

這個挺有趣喔,用c#來開發android:)

這段時間我在看python,打算之後用來開發android玩玩。有時候覺得java真的太“重”了。

我覺得在沒有壓力的情況下去學一門技術,然后再根據興趣寫些小東西玩玩,也是很快樂的事情。

之前玩過一些解謎遊戲,遇到一些排列組合的謎題,幾個回合下來發現頭腦簡單的我似乎更傾向於與暴力拆解(開始明白為啥老美心算能力不咋地,但用起計算機來解決問題的能力超強),於是就搬java出來寫遞歸窮舉。

LP在旁邊看的莫名其妙,為啥好端端的玩著遊戲,突然又跑去寫程序了...
回复  

使用道具 举报

209#
发表于 2-2-2014 07:54:42 | 只看该作者
提示: 作者被禁止或删除, 无法发言
本帖最后由 black_zerg 于 2-2-2014 08:12 编辑

python也能开发android? 怎么写? python确实是很高效的语言,而且重视解决问题,而不是java那么死板。我对python很有兴趣,以后多交流。我真的很意外这么高效的语言没有一统江湖。

手机开发我倒是偏向 纯native(每个平台一套,用原生语言,但是看起来类似) 或者就是 html5 (跨平台,phonegap包裹一下之类)。 html明显容易,单一代码跨平台。native则可以做到极致,确保能利用设备,系统和开发工具的所有能力。这个是没办法的办法,每个平台都有自己的一套东西,我们开发的只能配合。

Java本身就有点重,但是让Java更重的是程序员们,都是以把东西弄的冗长复杂为荣。说来说去还是CRUD太简单,大家都闲的
回复  

使用道具 举报

210#
发表于 2-2-2014 07:55:11 | 只看该作者
提示: 作者被禁止或删除, 无法发言

你用xamarin 之类的?
回复  

使用道具 举报

您需要登录后才可以回帖 登录 | FreeOZ用户注册

本版积分规则

小黑屋|手机版|Archiver|FreeOZ论坛

GMT+11, 2-11-2024 15:36 , Processed in 0.074754 second(s), 51 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表