開(kāi)發(fā)人員的編程心理學(xué)

向開(kāi)發(fā)人員提供建議的編程心理學(xué)

我之前寫(xiě)過(guò)驶悟,編程有兩個(gè)受眾:CPU 和你的編程伙伴。

還有一些優(yōu)秀的文章惠赫,比如《面向苦難編程》 邑贴,可以幫助你在編程時(shí)調(diào)整目標(biāo)——讓它工作蜂林、讓它漂亮、讓它快速须床,這是那篇文章的建議铐料。

“讓它工作、讓它漂亮、讓它快速”是絕妙的編程建議余赢,也是我從第一次讀它開(kāi)始就一直牢記在心的建議芯义。

編程建議程序首先以 CPU 為目標(biāo)——即“使其工作”。

1 合理的編程建議

然后建議針對(duì)您的編程伙伴妻柒,即必須維護(hù)或查看代碼的人扛拨,讓代碼漂亮。

一旦您的代碼成功滿(mǎn)足其計(jì)算要求举塔,并滿(mǎn)足與我們一起共事的普通人能夠理解的要求绑警,那么,如有必要央渣,我們就可以專(zhuān)心致志地不斷完善它计盒。事實(shí)上, 代碼“漂亮”意味著有可能更容易找到改進(jìn)的機(jī)會(huì)芽丹,因?yàn)樵诖蠖鄶?shù)情況下北启,使代碼“漂亮”意味著更小的、獨(dú)立的函數(shù)拔第,從而使得更易優(yōu)化咕村。

我最近在網(wǎng)上和一位朋友聊天,他提出了一個(gè)問(wèn)題蚊俺,這也反映了我的經(jīng)歷:他的任務(wù)是集成一組代碼懈涛,這些代碼是在沒(méi)有團(tuán)隊(duì)監(jiān)督的情況下創(chuàng)建的。這些代碼缺乏測(cè)試泳猬,并且是獨(dú)立編寫(xiě)的批钠,沒(méi)有遵循與主項(xiàng)目相同的編碼標(biāo)準(zhǔn)。

這是一個(gè)艱難的處境得封。集成這樣的代碼意味著要試圖弄清切入點(diǎn)——這是測(cè)試的職責(zé)——但由于沒(méi)經(jīng)過(guò)測(cè)試埋心,你不得不相信編碼者實(shí)際上滿(mǎn)足了需求,因?yàn)樵诶硐肭榍樾蜗虑好浚瑴y(cè)試也要證明這一點(diǎn)踩窖。

你會(huì)怎么做?你會(huì)給什么編程建議晨横?

image

2 無(wú)沖突面對(duì)

如我所言洋腮,我遇到過(guò)類(lèi)似情形,雖然我承認(rèn)還可以處理得更好手形,但同時(shí)我也認(rèn)為自己已經(jīng)做得夠好了啥供。

人們不喜歡被面對(duì),面對(duì)什么并不重要库糠。迪特里匣锖·邦霍費(fèi)爾(Dietrich Bonhoeffer)有一個(gè)深刻的洞察涮毫,即個(gè)體可能很愚笨,但群體可能超級(jí)愚笨——更糟糕的是贷屎,抵觸挑戰(zhàn)罢防,抵抗力會(huì)隨著參與人數(shù)的增加而增加。(你可以很容易地改變一個(gè)朋友的想法——但是改變一群七個(gè)人的想法卻難于上青天唉侄。)

所以我所做的就是把自己描繪成一個(gè)受到他們的代碼庫(kù)挑戰(zhàn)的人咒吐。我沒(méi)有評(píng)論實(shí)際代碼或它們有多可怕:我讓自己專(zhuān)注是于學(xué)習(xí)代碼,因?yàn)槲也焕斫馑?/p>

這個(gè)功能的測(cè)試在哪里属划?”我問(wèn)道恬叹,盡管我知道沒(méi)有測(cè)試。畢竟同眯,我可能是錯(cuò)的……問(wèn)測(cè)試在哪里是對(duì)他們的溫和刺激绽昼,以便我能從他們那里有所收獲。

這個(gè)問(wèn)題給了他們很大的回旋余地须蜗。

3 強(qiáng)迫自我反省

他們可以指出測(cè)試在哪里確實(shí)滿(mǎn)足了我的需求硅确;也許我只是沒(méi)看到?(在這種情況下唠粥,不存在測(cè)試疏魏,我知道停做,但這不是重點(diǎn)晤愧。我需要他們考慮可能性。)

他們也可以自己觀察到蛉腌,也許測(cè)試不存在官份,作為交接的要求,也許他們可以寫(xiě)一個(gè)烙丛。

當(dāng)您還沒(méi)有設(shè)計(jì)用于測(cè)試的代碼時(shí)舅巷,測(cè)試很困難,但在您接受代碼之前河咽,這不是您的問(wèn)題钠右,這讓他們有機(jī)會(huì)修改自己對(duì)代碼的理解,而不必在意對(duì)他們代碼的看法忘蟹。

當(dāng)然飒房,也許你沒(méi)有權(quán)限要求這樣的測(cè)試。在這種情況下媚值,您可能需要向利益相關(guān)者(負(fù)責(zé)交付代碼的人)請(qǐng)求幫助狠毯,并指出未測(cè)試代碼的集成引入了可變的可靠性(即,它是不可靠的褥芒,因?yàn)槟荒芗僭O(shè)它是可靠的)嚼松。

與利益相關(guān)者就可靠性進(jìn)行對(duì)話(huà)可能會(huì)您有權(quán)回去進(jìn)行結(jié)構(gòu)和測(cè)試的對(duì)話(huà)。

4 編程建議心理學(xué)

再者說(shuō),這種對(duì)話(huà)完全可以顛倒過(guò)來(lái)献酗。如果他們編寫(xiě)了意大利面條式的代碼并為此感到自豪——誰(shuí)不會(huì)呢寝受?—您會(huì)簡(jiǎn)單地要求他們編寫(xiě)它,以便您的小腦袋可以像理解根據(jù)組織約定編寫(xiě)的代碼一樣容易地理解它罕偎。

“哇羡蛾,那個(gè)243行的函數(shù)太厲害了,就是看不懂锨亏。你能告訴我我們?nèi)绾螌⑺纸獠⒅貥?gòu)為具有更小的函數(shù)和組合嗎痴怨? 而這個(gè)對(duì)“j”的引用,是一個(gè)索引嗎器予?我們能把它命名為它實(shí)際代表的東西嗎浪藻?是窗口句柄嗎? 請(qǐng)幫幫我乾翔,我真的不明白爱葵。”

這是基本的心理學(xué)原理反浓。在某種程度上萌丈,這是一種操縱,但我們每天和每次互動(dòng)都以溫和(希望是善良)的方式操縱人們:當(dāng)我們與人打招呼時(shí)雷则,我們會(huì)微笑辆雾,以觸發(fā)特定的內(nèi)啡肽,我們首先提到好消息(或許不是)創(chuàng)造有利于我們想要的特定心態(tài)月劈。為自己的目的使用人們的思維和感知方式并不奇怪度迂,如果結(jié)果是正面的,那么這樣做也不是壞事猜揪。

不要害怕用心理學(xué)來(lái)幫助你編程惭墓。這可能很難,因?yàn)橛袝r(shí)它意味著你不能對(duì)那些可能真的需要大喊大叫的人大喊大叫——但大喊大叫往往會(huì)適得其反而姐,如果目標(biāo)是富有成效腊凶,那么我們需要考慮如何創(chuàng)造我們的工作環(huán)境,而不是通過(guò)按住別人來(lái)滿(mǎn)足我們的私欲拴念。


注:本文譯自:The psychology of offering programming advice to developers - Coffee Talk: Java, News, Stories and Opinions (theserverside.com)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末钧萍,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子丈莺,更是在濱河造成了極大的恐慌划煮,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缔俄,死亡現(xiàn)場(chǎng)離奇詭異弛秋,居然都是意外死亡器躏,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)蟹略,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)登失,“玉大人,你說(shuō)我怎么就攤上這事挖炬±空悖” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵意敛,是天一觀的道長(zhǎng)馅巷。 經(jīng)常有香客問(wèn)我,道長(zhǎng)草姻,這世上最難降的妖魔是什么钓猬? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮撩独,結(jié)果婚禮上敞曹,老公的妹妹穿的比我還像新娘。我一直安慰自己综膀,他們只是感情好澳迫,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著剧劝,像睡著了一般橄登。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上担平,一...
    開(kāi)封第一講書(shū)人閱讀 52,268評(píng)論 1 309
  • 那天示绊,我揣著相機(jī)與錄音,去河邊找鬼暂论。 笑死,一個(gè)胖子當(dāng)著我的面吹牛拌禾,可吹牛的內(nèi)容都是我干的取胎。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼湃窍,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼闻蛀!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起您市,我...
    開(kāi)封第一講書(shū)人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤觉痛,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后茵休,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體薪棒,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡手蝎,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了俐芯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片棵介。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖吧史,靈堂內(nèi)的尸體忽然破棺而出邮辽,到底是詐尸還是另有隱情,我是刑警寧澤贸营,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布吨述,位于F島的核電站,受9級(jí)特大地震影響钞脂,放射性物質(zhì)發(fā)生泄漏锐极。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一芳肌、第九天 我趴在偏房一處隱蔽的房頂上張望灵再。 院中可真熱鬧,春花似錦亿笤、人聲如沸翎迁。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)汪榔。三九已至,卻和暖如春肃拜,著一層夾襖步出監(jiān)牢的瞬間痴腌,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工燃领, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留士聪,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓猛蔽,卻偏偏與公主長(zhǎng)得像剥悟,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子曼库,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容