Kòlè nan kòd: pwogramasyon ak negativite

Kòlè nan kòd: pwogramasyon ak negativite

Mwen gade yon moso kòd. Sa a ka pi move kòd mwen te janm wè. Pou mete ajou yon sèl dosye nan baz done a, li rekipere tout dosye yo nan koleksyon an epi answit voye yon demann aktyalizasyon nan chak dosye nan baz done a, menm sa yo ki pa bezwen mete ajou. Gen yon fonksyon kat jeyografik ki tou senpleman retounen valè yo pase a li. Gen tès kondisyonèl pou varyab ki gen aparamman menm valè, jis yo rele nan diferan estil (firstName и first_name). Pou chak MIZAJOU, kòd la voye yon mesaj nan yon keu diferan, ki okipe pa yon fonksyon sèvè diferan, men ki fè tout travay la pou yon koleksyon diferan nan menm baz done a. Èske mwen te mansyone ke fonksyon san sèvè sa a soti nan yon "achitekti oryante sèvis" ki baze sou nwaj ki gen plis pase 100 fonksyon nan anviwònman an?

Ki jan li te menm posib fè sa? Mwen kouvri figi m 'ak vizib kriye nan ri mwen. Kòlèg mwen yo mande sa ki te pase, epi mwen repete li an koulè Pi move frape nan BulkDataImporter.js 2018. Tout moun souke tèt mwen avèk senpati e yo dakò: ki jan yo ta ka fè nou sa?

Negativite: yon zouti emosyonèl nan yon kilti pwogramè

Negativite jwe yon wòl enpòtan nan pwogramasyon. Li entegre nan kilti nou epi li itilize pou pataje sa nou aprann ("ou pa fè sa ou pral kwè li, ki jan kòd sa a te ye!”), eksprime senpati atravè fristrasyon (“Bondye, POUKISA fè sa?”), montre tèt ou (“mwen pa ta janm se konsa pa t 'fè li"), mete blame sou yon lòt moun ("nou echwe akòz kòd li a, ki enposib kenbe"), oswa, jan sa abitye nan òganizasyon ki pi "toksik" yo, kontwole lòt moun atravè yon santi w wont ("Kisa w t ap menm panse?"? kòrèk").

Kòlè nan kòd: pwogramasyon ak negativite

Negativite tèlman enpòtan pou pwogramè yo paske li se yon fason trè efikas pou transmèt valè. Yon fwa mwen te ale nan yon kan pwogramasyon, ak pratik nòmal pou enstile yon kilti endistri nan elèv yo se te bay san gad dèyè mem, istwa, ak videyo, ki pi popilè nan yo eksplwate. fristrasyon pwogramè yo lè yo fè fas ak enkonpreyansyon moun yo. Li bon pou w kapab sèvi ak zouti emosyonèl pou idantifye Bon, Move, Lèd, Pa Fè Sa, Jamè ditou. Li nesesè yo prepare fèk vini pou lefèt ke yo pral pwobableman mal konprann pa kòlèg ki lwen IT. Ke zanmi yo pral kòmanse vann yo ide app milyon dola. Yo pral oblije moute desann nan labirent kontinuèl nan kòd demode ak yon pakèt moun sou minotaur nan kwen an.

Lè nou aprann pwograme pou premye fwa, konpreyansyon nou sou pwofondè "eksperyans pwogramasyon" la baze sou obsève reyaksyon emosyonèl lòt moun. Sa a ka klèman wè nan posts yo nan konnen ProgrammerHumor, kote yon anpil nan pwogramasyon newbie pann soti. Anpil moun komik yo, nan yon degre oswa yon lòt, ki gen koulè ak diferan tout koulè nan negativite: desepsyon, pesimis, endiyasyon, kondesandans ak lòt moun. Men, si sa a pa sanble ase pou ou, li kòmantè yo.

Kòlè nan kòd: pwogramasyon ak negativite

Mwen remake ke kòm pwogramasyon yo pran eksperyans, yo vin pi plis ak plis negatif. Débutan, san okouran difikilte k ap tann yo, kòmanse ak antouzyasm ak volonte pou kwè ke kòz difikilte sa yo se tou senpleman yon mank de eksperyans ak konesans; epi evantyèlman yo pral konfwonte ak reyalite bagay yo.

Tan pase, yo pran eksperyans epi yo vin kapab fè distenksyon ant bon kòd ak move. Epi lè moman sa a rive, jèn pwogramasyon yo santi yo fristrasyon pou yo travay ak yon move kòd evidamman. Men, si yo travay nan yon ekip (adistans oswa an pèsòn), yo souvan adopte abitid emosyonèl yo nan kòlèg ki gen plis eksperyans. Sa a souvan mennen nan yon ogmantasyon nan negativite, paske jèn yo kounye a ka pale byen sou kòd epi divize li an move ak bon, kidonk montre ke yo "nan konnen." Sa a plis ranfòse negatif la: soti nan desepsyon, li fasil jwenn byen ak kòlèg yo epi vin yon pati nan yon gwoup; kritike move kòd ogmante estati ou ak pwofesyonalis nan je lòt moun: moun ki eksprime opinyon negatif yo souvan pèrsu kòm pi entelijan ak konpetan.

Ogmante negativite se pa nesesèman yon move bagay. Diskisyon sou pwogramasyon, pami lòt bagay, yo trè konsantre sou bon jan kalite a nan kòd la ekri. Ki sa ki kòd la konplètman defini fonksyon li gen entansyon fè (hardware, rezo, elatriye sou kote), kidonk li enpòtan pou kapab eksprime opinyon w sou kòd sa a. Prèske tout diskisyon yo vini sou si kòd la bon ase, ak kondane manifeste yo nan move kòd nan tèm ki gen konotasyon emosyonèl karakterize kalite kòd la:

  • "Genyen anpil enkonsistans lojik nan modil sa a, li se yon bon kandida pou optimize pèfòmans enpòtan."
  • "Modil sa a trè move, nou bezwen refactorize li."
  • "Modil sa a pa fè sans, li bezwen reekri."
  • "Modil sa a absoli, li bezwen patched."
  • "Sa a se yon moso nan belye mouton, pa yon modil, li pa t 'bezwen ekri ditou, kisa lanfè a te panse otè li a."

By wout la, se "lage emosyonèl" sa a ki fè devlopè yo rele kòd la "sexy", ki raman jis - sof si ou travay nan PornHub.

Pwoblèm lan se ke moun yo etranj, M'enerve, bèt emosyonèl, ak pèsepsyon ak ekspresyon nan nenpòt emosyon chanje nou: nan premye sibtil, men sou tan, dramatikman.

Yon pant glise boulvèse nan negativite

Kèk ane de sa, mwen te yon ekip enfòmèl dirije ak entèvyouve yon pwomotè. Nou te vrèman renmen l: li te entelijan, li te poze bon kesyon, li te gen konesans sou teknoloji, epi li anfòm byen ak kilti nou an. Mwen te patikilyèman enpresyone pa pozitivite l 'ak jan inisyateur li te sanble. Apre sa, mwen anboche l '.

Nan epòk sa a, mwen te travay nan konpayi an pou yon koup de ane ak te santi ke kilti nou an pa t 'trè efikas. Nou te eseye lanse pwodwi a de fwa, twa fwa ak yon koup plis fwa anvan mwen te rive, ki te mennen nan gwo depans sou retravay, pandan ki nou pa te gen anyen yo montre eksepte nwit long, dat limit sere ak pwodwi ki te travay. Ak byenke mwen te toujou ap travay di, mwen te ensèten sou dènye dat limit la te ba nou pa jesyon. Apre sa, li dekontrakte fè sèman lè diskite sou kèk aspè nan kòd la ak kòlèg mwen yo.

Se konsa, li pa te etone-menm si mwen te sezi-ke kèk semèn pita, menm nouvo pwomotè sa a te di menm bagay negatif mwen te fè (ki gen ladan sèmante). Mwen reyalize ke li ta konpòte yon fason diferan nan yon konpayi diferan ak yon kilti diferan. Li jis adapte ak kilti ke mwen te kreye a. Mwen te genyen yon santiman koupab. Akoz eksperyans subjectif mwen, mwen te enstile pesimis nan yon fèk vini ke mwen te konnen kòm konplètman diferan. Menmsi li vrèman pa t konsa e li t ap jis mete yon aparans pou montre ke li te kapab anfòm, mwen te fòse atitid kaka mwen sou li. Epi tou sa ki di, menm nan betiz oswa an pasan, gen move fason pou yo tounen sa yo kwè.

Kòlè nan kòd: pwogramasyon ak negativite

Fason negatif

Ann retounen nan ansyen pwogramè newbie nou yo, ki te genyen yon ti sajès ak eksperyans: yo te vin pi abitye ak endistri pwogramasyon an epi yo konprann ke move kòd se toupatou, li pa ka evite. Li rive menm nan konpayi yo ki pi avanse konsantre sou bon jan kalite (epi kite m 'remake: aparamman, modèn pa pwoteje kont move kòd).

Bon script. Apre yon tan, devlopè kòmanse aksepte ke move kòd se yon reyalite nan lojisyèl e ke travay yo se amelyore li. E ke si move kòd pa ka evite, Lè sa a, pa gen okenn pwen nan fè yon meli melo sou li. Yo pran chemen Zen, konsantre sou rezoud pwoblèm oswa travay ki konfwonte yo. Yo aprann kijan pou byen mezire ak kominike kalite lojisyèl bay pwopriyetè biznis, ekri estimasyon ki byen fonde ki baze sou ane eksperyans yo, epi finalman resevwa rekonpans jenere pou valè enkwayab ak kontinyèl yo nan biznis la. Yo fè travay yo tèlman byen ke yo jwenn peye 10 milyon dola nan bonis epi pran retrèt yo fè sa yo vle pou tout rès lavi yo (tanpri pa pran li pou akòde).

Kòlè nan kòd: pwogramasyon ak negativite

Yon lòt senaryo se chemen fènwa a. Olye pou yo aksepte move kòd kòm yon inevitab, devlopè pran li sou tèt yo pou yo rele tout move nan mond lan pwogramasyon pou yo ka simonte li. Yo refize amelyore kòd ki egziste deja pou anpil bon rezon: "moun yo ta dwe konnen plis epi yo pa dwe tèlman estipid"; "li se dezagreyab"; "sa a se move pou biznis"; "sa a pwouve kijan mwen entelijan"; "si mwen pa di ou ki sa yon move kòd sa a se, konpayi an antye pral tonbe nan oseyan an," ak sou sa.

Se vre wi pa kapab aplike chanjman yo vle paske biznis la malerezman dwe kontinye devlope epi yo pa ka pase tan enkyete sou kalite a nan kòd la, moun sa yo jwenn yon repitasyon kòm plenyen. Yo kenbe yo pou konpetans segondè yo, men yo pouse nan maj yo nan konpayi an, kote yo pa pral anbete anpil moun, men yo pral toujou sipòte operasyon an nan sistèm kritik. San aksè a nouvo opòtinite devlopman, yo pèdi konpetans epi yo sispann satisfè demand endistri yo. Negativite yo vin tounen anmè anmè, e kòm rezilta yo manje ego yo lè yo diskite ak etidyan ki gen ventan sou vwayaj ansyen teknoloji yo pi renmen yo te pran e poukisa li toujou cho konsa. Yo fini pran retrèt ak viv soti laj yo sèmante sou zwazo.

Reyalite a pwobableman manti yon kote nan mitan de ekstrèm sa yo.

Gen kèk konpayi ki gen anpil siksè nan kreye kilti trè negatif, izolasyon, ki gen anpil volonte (tankou Microsoft anvan li dizan pèdi) - souvan sa yo se konpayi ak pwodwi ki parfe anfòm mache a ak bezwen an grandi pi vit ke posib; oswa konpayi ki gen yon yerachi nan lòd ak kontwòl (Apple nan pi bon ane yo nan Travay), kote tout moun fè sa yo di yo. Sepandan, rechèch modèn biznis (ak bon sans) sijere ke maksimòm entèlijans, ki mennen nan inovasyon nan konpayi yo, ak pwodiktivite segondè nan moun, mande pou nivo ki ba nan estrès sipòte kontinyèl panse kreyatif ak metodik. Epi li trè difisil pou fè travay kreyatif, ki baze sou diskisyon si w ap toujou ap enkyete w sou sa kòlèg ou yo pral di sou chak liy nan kòd ou a.

Negativite se jeni kilti pòp

Jodi a, yo peye plis atansyon sou atitid enjenyè yo pase tout tan anvan. Nan òganizasyon jeni, règ la "Pa gen kòn". Plis ak plis anekdot ak istwa ap parèt sou Twitter sou moun ki te kite pwofesyon sa a paske yo pa t 'kapab (pa ta) kontinye sipòte ostilite ak move volonte anvè moun ki andeyò. Menm Linus Torvalds dènyèman te eskize ane nan ostilite ak kritik anvè lòt devlopè Linux - sa a te mennen nan deba sou efikasite nan apwòch sa a.

Gen kèk toujou defann dwa Linus yo dwe trè kritik - moun ki ta dwe konnen anpil sou avantaj ak dezavantaj nan "negativite toksik". Wi, sivilite trè enpòtan (menm fondamantal), men si nou rezime rezon ki fè anpil nan nou pèmèt ekspresyon opinyon negatif yo tounen "toksisite", rezon sa yo sanble patènèl oswa adolesan: "yo merite li paske yo se moun sòt. ", "li dwe asire w ke yo pa pral fè l 'ankò," "si yo pa t' fè sa, li pa ta gen pou rele sou yo," ak sou sa. Yon egzanp enpak reyaksyon emosyonèl yon lidè genyen sou yon kominote pwogramasyon se akwonim kominote Ruby a MINASWAN - "Matz is nice so we are nice."

Mwen remake ke anpil moun ki fè patizan apwòch "touye yon moun fou" souvan pran swen anpil sou bon jan kalite a ak kòrèk nan kòd la, idantifye tèt yo ak travay yo. Malerezman, yo souvan konfonn dite ak frigidité. Dezavantaj nan pozisyon sa a soti nan senp imen an, men enpwodiktif dezi yo santi yo siperyè lòt moun. Moun ki vin plonje nan dezi sa a vin bloke nan chemen fènwa a.

Kòlè nan kòd: pwogramasyon ak negativite

Mond lan nan pwogramasyon an ap grandi rapidman epi li ap pouse kont fwontyè yo nan kontenè li yo - mond lan ki pa pwogramasyon (oswa se mond lan nan pwogramasyon an yon veso pou mond lan ki pa pwogramasyon? Bon kesyon).

Kòm endistri nou an ap grandi nan yon vitès ki toujou ap ogmante ak pwogramasyon vin pi aksesib, distans ki genyen ant "techies" ak "nòmal" ap fèmen rapidman. Mond pwogramasyon an de pli zan pli ekspoze a entèraksyon entèpèsonèl moun ki te grandi nan kilti nerd izole nan kòmansman boom teknoloji a, e se yo menm ki pral fòme nouvo mond pwogramasyon an. Ak kèlkeswa nenpòt agiman sosyal oswa jenerasyon, efikasite nan non kapitalis pral parèt nan kilti konpayi ak pratik anbochaj: pi bon konpayi yo tou senpleman pa pral anboche nenpòt moun ki pa ka kominike net ak lòt moun, ale pou kont li gen bon relasyon.

Ki sa mwen te aprann sou negativite

Si ou pèmèt twòp negativite kontwole tèt ou ak entèraksyon ak moun, vire nan toksisite, Lè sa a, li se danjere pou ekip pwodwi ak chè pou biznis. Mwen te wè (ak tande pale de) pwojè inonbrabl ki te tonbe apa epi yo te konplètman rebati ak gwo depans paske yon pwomotè ou fè konfyans te gen yon rankin kont teknoloji a, yon lòt devlopè, oswa menm yon sèl dosye chwazi reprezante bon jan kalite a nan tout kodbaz la.

Negativite tou demoralize ak detwi relasyon yo. Mwen pap janm bliye ki jan yon kòlèg te reprimande m paske m te mete CSS nan move fichye a, sa te fache m e li pat pèmèt mwen kolekte panse m pandan plizyè jou. Ak nan tan kap vini an, mwen fasil pèmèt yon moun konsa yo dwe tou pre youn nan ekip mwen yo (men ki moun ki konnen, moun ki chanje).

Finalman, negatif la literalman mal sante ou.

Kòlè nan kòd: pwogramasyon ak negativite
Mwen panse ke sa a se sa ki yon klas mèt sou souri ta dwe sanble.

Natirèlman, sa a se pa yon agiman an favè transmisyon ak kontantman, mete dis milya dola emoticon nan chak demann rale, oswa ale nan yon klas mèt sou souri (non, byen, si se sa ou vle, Lè sa a, pa gen pwoblèm). Negativite se yon pati trè enpòtan nan pwogramasyon (ak lavi moun), siyal bon jan kalite, ki pèmèt yon moun eksprime santiman ak konpasyon ak moun parèy. Negativite endike insight ak pridans, pwofondè pwoblèm nan. Mwen souvan remake ke yon devlopè te rive nan yon nivo nouvo lè li kòmanse eksprime enkredilite nan sa li te deja timid epi ki pa sèten sou. Moun yo demontre rezonab ak konfyans ak opinyon yo. Ou pa ka rejte ekspresyon negativite a, sa ta dwe Orwellian.

Sepandan, negativite bezwen dòz ak balanse ak lòt kalite enpòtan imen: senpati, pasyans, konpreyansyon ak imè. Ou ka toujou di yon moun ke li vise san yo pa rele oswa sèmante. Pa underestimate apwòch sa a: si yon moun di ou san okenn emosyon ke ou te seryezman dezòd, li vrèman pè.

Lè sa a, plizyè ane de sa, CEO a te pale avè m '. Nou te diskite sou sitiyasyon aktyèl la nan pwojè a, Lè sa a, li te mande ki jan mwen te santi. Mwen te reponn ke tout bagay te byen, pwojè a te deplase, nou te travay tou dousman, petèt mwen manke yon bagay epi yo bezwen yo dwe rekonsidere. Li te di ke li te tande m pataje plis panse pesimis ak kòlèg nan biwo a, e ke lòt moun te remake sa tou. Li te eksplike ke si mwen te gen dout, mwen te kapab konplètman eksprime yo bay jesyon, men mwen pa "retire yo." Kòm yon enjenyè dirijan, mwen dwe sonje ki jan pawòl mwen yo afekte lòt moun paske mwen gen anpil enfliyans menm si mwen pa reyalize li. Apre sa, li te di m 'tout bagay sa yo trè dousman, epi finalman te di ke si mwen reyèlman te santi tankou sa, Lè sa a, mwen pwobableman bezwen reflechi sou sa mwen vle pou tèt mwen ak karyè mwen. Se te yon konvèsasyon ekstrèmman dou, jwenn li oswa soti nan chèz ou a. Mwen te remèsye l pou enfòmasyon sou fason atitid mwen chanje pandan sis mwa te afekte lòt moun mwen pa remake.

Se te yon egzanp remakab, jesyon efikas ak pouvwa a nan yon apwòch mou. Mwen reyalize ke mwen te sanble sèlman gen konfyans total nan konpayi an ak kapasite li nan reyalize objektif li yo, men an reyalite mwen te pale ak kominike ak lòt moun nan yon fason konplètman diferan. Mwen te reyalize tou ke menm si mwen te santi m ensèten sou pwojè mwen t ap travay sou la, mwen pa ta dwe montre santiman mwen bay kòlèg mwen yo epi gaye pesimis tankou yon kontajyon, diminye chans nou pou siksè. Olye de sa, mwen te kapab agresif transmèt sitiyasyon reyèl la bay jesyon mwen an. Men, si mwen te santi ke yo pa t ap koute m ', mwen te kapab eksprime dezakò mwen nan kite konpayi an.

Mwen te resevwa yon nouvo opòtinite lè mwen te pran pozisyon nan tèt evalyasyon pèsonèl. Kòm yon ansyen enjenyè anchèf, mwen pran anpil prekosyon pou m eksprime opinyon mwen sou kòd eritaj nou an (ki toujou ap amelyore). Pou apwouve yon chanjman, ou bezwen imajine sitiyasyon aktyèl la, men ou pa pral jwenn okenn kote si w ap plenyen nan jemi, atake, oswa renmen an. Finalman, mwen isit la pou konplete yon travay epi mwen pa ta dwe pote plent sou kòd la nan lòd yo konprann li, evalye li, oswa ranje li.

An reyalite, plis mwen kontwole reyaksyon emosyonèl mwen an nan kòd la, plis mwen konprann ki sa li ta ka vin ak mwens konfizyon mwen santi. Lè m te eksprime tèt mwen ak kontrent ("dwe gen plas pou plis amelyorasyon isit la"), mwen te fè tèt mwen ak lòt moun kontan epi mwen pa pran sitiyasyon an twò oserye. Mwen reyalize ke mwen te kapab estimile ak diminye negativite nan lòt moun lè mwen parfe (anmèdan?) rezonab ("ou gen rezon, kòd sa a se trè move, men nou pral amelyore li"). Mwen byen kontan wè ki jan lwen mwen ka ale sou chemen Zen an.

Esansyèlman, mwen toujou ap aprann ak reaprann yon leson enpòtan: lavi a twò kout pou yo toujou fache ak doulè.

Kòlè nan kòd: pwogramasyon ak negativite

Sous: www.habr.com

Add nouvo kòmantè