Vanligt att störa sig på kollegors kod?

Permalänk
Medlem
Skrivet av Findecanor:

Jo, men jag syftade på kod som fungerar bara om man först offrar en höna, vänd i rätt väderstreck valt efter månens fas, dvs. endast vid precis rätt indata och andra betingelser: med uppenbara race conditions. etc.

Typ folk som skriver manuella JSON, CSV, etc parsers / converters / object.
Man skapar oftast en egen standard som funkar endast i de fallen de har testat istället för att dra ner ett färdigt paket som följer respektive standard/spec.

Inte tala om kod man hittat som konverterar datum på olika magiska håll, eller den klassiska i dotnet Sverige

Double.Parse(input.replace(".", ","), out var leDouble);

PS någon som jobbat i Pyramid lär älska deras YYWWD format på Datum... (år år, vecka vecka, dag) aldrig stött på något så irriterande i mitt liv som utvecklare...

Visa signatur

Arch - Makepkg, not war -||- Gigabyte X570 Aorus Master -||- GSkill 64GiB DDR4 14-14-15-35-1T 3600Mhz -||- AMD 5900x-||- Gigabyte RX6900XT -||- 2x Adata XPG sx8200 Pro 1TB -||- EVGA G2 750W -||- Corsair 570x -||- O2+ODAC-||- Sennheiser HD-650 -|| Boycott EA,2K,Activision,Ubisoft,WB,EGS
Arch Linux, one hell of a distribution.

Permalänk
Medlem

Jag lägger fokus på att ge relevant återkoppling på andras bidrag, om jag inte gör det så får jag skylla mig själv om kodbasen ruttnar över tid.

Permalänk
Medlem

Det är ju därför man har coding guidelines.

Jag stör mig extremt mycket på koden i det projekt jag jobbar nu. Skulle vilja skriva om allt från scratch men tidsbrist gör att det inte är möjligt

Visa signatur

Ryzen 9 5950X, 32GB 3600MHz CL16, SN850 500GB SN750 2TB, B550 ROG, 3090 24 GB
Har haft dessa GPUer: Tseng ET6000, Matrox M3D, 3DFX Voodoo 1-3, nVidia Riva 128, TNT, TNT2, Geforce 256 SDR+DDR, Geforce 2mx, 3, GT 8600m, GTX460 SLI, GTX580, GTX670 SLI, 1080 ti, 2080 ti, 3090 AMD Radeon 9200, 4850 CF, 6950@70, 6870 CF, 7850 CF, R9 390, R9 Nano, Vega 64, RX 6800 XT
Lista beg. priser GPUer ESD for dummies

Permalänk
Medlem

Förvånansvärt sällan jag stör mig på mina kollegors kod, vi har en satt kodstandard och de flesta är bra på att följa den.
Oftast är det min egna kod (kanske delar upp en funktion/metod konstigt i farten) och det går ju alltid att åtgärda om man kommer på det i rimlig tid.

Bristfällig kod ser jag som ett utmärkt tillfälle att skapa en diskussion, och förhoppninsvis lär vi oss båda något.

Det enda jag faktiskt stör mig på, det är när folk envisas med att sär skriva allt.
t.ex:

private static String SWE_CLOCKERS;

Visa signatur

Stationär: Core i9 13900k | Asus X790 ROG Strix Gaming-F | 32GB DDR5 | RX 7900 XT | Lian Li PC-O11 dynamic evo
Laptop: Macbook Air | Apple M1

Permalänk
Medlem
Skrivet av wagnerHerbivore:

Det är så ofta jag kollar på hur mina kollegors kod och tycker att den är otydlig. Oftast är det saker som att inte skriva ut hela namn på variabler och istället ha förkortningar som inte är uppenbara. Ibland verkar dom inte ha läst igenom koden som dom modifierar och använder namn som inte är logiska för dess funktionalitet t.ex glassbil för en sportbils-funktion.

Du inser också självklart att 90% av dina kollegor tycker exakt samma om din kod?

Visa signatur

| Corsair Crystal 460X | Z390-F | 9700K | ROG Ryujn 360mm | RTX 3080Ti | ROG Thor 850W | Vengeance Pro 3200mhz 16cl 16GB (2x8) | 970 Pro 2TB + 2xWD Black 4TB | ROG SWIFT PG279Q | Arctis 7 Pro Wireless | ROG Scope Deluxe red silent | ROG Chakram |

Permalänk
Medlem

Tvärtom för mig, har lättare att förstå och redigera/rätta andra personers kod. Men att sitta med en blank sida och skriva någon funktion? Blank i huvudet omedelbart.

Permalänk
Medlem

För att uttrycka mig lindrigt så har jag full förståelse för hur Linus Torvalds uttryckt sig ibland.
Låt koden tala men ibland säger den mest skit.
Något mer som är störande är projekt där utvecklare skriver kommentarer på annat språk än engelska.
Jag kan störa mig på allt även egen kod samtidigt som jag ibland inte bryr mig alls.

Permalänk
Medlem

Haha, shit så gnälliga ni är
Har ni inte codereviews och retrospectives där sådant här ska hanteras?
Ge feedback på kod innan den mergeas in så slipper ni bli sura i efterhand och sätt förväntningarna/arbetssätt i teamet på retrospective.
Lägg lint som en precommit-hook och enforca det när en PR skapas så är ju problemen lösta.
Känns som detta endast är ett problem i team där det sitter folk som inte är vana vid att jobba med andra och dessutom har jäkligt hårt satta åsikter som de håller viktigare än att teamet jobbar på samma sätt?

Visa signatur

Att förespråka Mac på Swec är som att förespråka hybridbilar på en raggarträff i Mora.

Permalänk
Medlem

Tror folk här i tråden borde testa mindfullnes-övningar, eller på andra relevanta sätt söka komma i balans med sig själva. Känns inte helt optimalt att man ska behöva hetsa upp sig och bli arg över andras kodande.

Permalänk
Medlem
Skrivet av Trihxeem:

Haha, shit så gnälliga ni är
Har ni inte codereviews och retrospectives där sådant här ska hanteras?
Ge feedback på kod innan den mergeas in så slipper ni bli sura i efterhand och sätt förväntningarna/arbetssätt i teamet på retrospective.
Lägg lint som en precommit-hook och enforca det när en PR skapas så är ju problemen lösta.
Känns som detta endast är ett problem i team där det sitter folk som inte är vana vid att jobba med andra och dessutom har jäkligt hårt satta åsikter som de håller viktigare än att teamet jobbar på samma sätt?

Ja, vad gäller att adressera problemet så att det allra minst hålls hanterbart så känns det ju som att just arbeta mer/bättre tillsammans är lösningen.

Parprogrammering, att granska varandras föreslagna kodändringar (gärna med direkt konversation snarare än att bara lämna "arga lappar"), retrospektiv, osv är bra verktyg.

Visa signatur

Desktop: Ryzen 5800X3D || MSI X570S Edge Max Wifi || Sapphire Pulse RX 7900 XTX || Gskill Trident Z 3600 64GB || Kingston KC3000 2TB || Samsung 970 EVO Plus 2TB || Samsung 960 Pro 1TB || Fractal Torrent || Asus PG42UQ 4K OLED
Proxmox server: Ryzen 5900X || Asrock Rack X570D4I-2T || Kingston 64GB ECC || WD Red SN700 1TB || Blandning av WD Red / Seagate Ironwolf för lagring || Fractal Node 304

Permalänk
Medlem

På mitt första jobb störde jag mig hela tiden på hur andra formaterade och skrev sin kod när de inte följde kodstandarden, vilket var väldigt ofta.

Sen började jag på ett nytt jobb där det var väldigt tydliga riktlinjer, kodgranskningar och koden formaterades automatiskt efter commit. Visst folk kanske inte alltid skrev den mest optimala koden eller använde de bästa namnen överallt, men jag störde mig inte på något.

Sen gick jag vidare till mitt nuvarande jobb och här saknas kodstandard och kodgranskning helt, vilket jag stör mig på något otroligt. Svårt när jag är den enda som tycker det är viktigt. Men jag får väl försöka kuppa in i alla fall automatisk formatering eller nått i pipelines 😄

Permalänk
Medlem

Nu kodar jag inte så mycket längre, men även om kod kan vara felskriven på en lång rad olika sätt, och ändå funka, retar jag mig fortfarande på bristen av dokumentation inne i koden. Nyligen har det slagits upp som ett av de största problemen inom programutveckling.

Visa signatur
Permalänk
Medlem

Stör mig mycket mer på folk som klagar på min kod. Själv är jag mest glad om någon annan får något gjort öht. Tycker dock att 95% av alla programmerare skriver kod som om de kört tangentbordet i torktumlaren.

Rätt onödigt att störa sig på allt som inte spelar någon roll: mellanslag, parenteser, var ska det vara ett rad-bryt, camel-case vs underline, vilken fil ska en funktion ligga i, 0 vs NULL, ska det vara två if-satser eller en if med en "&&". Allting som inte spelar någon som helst roll förutom att lindra folks OCD.

Hade varit bättre att fokusera på viktigare saker, t.ex:

- kan man skriva om 1000-rader kod till 250?
- finns det felhantering?
- vad händer om alla stjärnorna inte står på rad? krasch? fel-loggning? retries?
- decoupling? (t.ex. när man måste ändra på 10 ställen för att få in en ny feature)
- teknisk skuld? (pga alla dessa punkter)
- lättläslighet? känns som väldigt många skriver så kryptisk & slingrig kod som de bara kan så dom blir svåra att byta ut (konsultkod)
- lägga in callbacks precis överallt för att bevisa att man vet vad en callback är
- kommentarer?
Kod kan vara självbeskrivande, men folk som skriver riktigt rörig kod skulle aldrig få för sig att skriva kommentarer. Är för övrigt rätt komiskt med kommentarer på formen: "denna funktionen tar in en integer och en sträng, och returnerare en bool" <DET SER JAG VÄL REDAN>
- är koden generisk? i ett välskrivet projekt går utvecklingstakten snabbare och snabbare med tiden, brukar vara tvärtom.

Dock så är punkterna ovan mycket svårare att efterleva jämfört en "kodstandard". MISRA-C är det dummaste jag läst btw.

Permalänk

Jag är ganska förvånad över att så många verkar störa sig på sina kollegors kod. Har ni inte linting, typecheckar, code reviews? Om ni i hemlighet stör er på kollegors kod utan att ta upp det och diskutera en gemensam standard, så tror jag det är ett annat problem än koden som måste hanteras i första hand.

Det är väldigt sällan jag stör mig på mina kollegors kod och att döma av de diskussioner vi har, väldigt sällan de stör sig på min kod. Med det sagt betyder det inte att vi inte har diskussioner över till och med tvivelaktiga lösningar, men det är ju för att tillsammans sätta ännu bättre standard över våra projekt.

Jag menar alltså inte att all kod vi skriver är perfekt någonstans. Varken deras eller min. Däremot har vi sunda diskussioner om frågetecken kring koden dyker upp, istället för att störa sig på den.

Visa signatur

Citat:
Ursprungligen inskrivet av Zaturn87
Intel konkurrerar inte längre, de dödar...

Permalänk
Medlem

Det finns en sak som jag kan störa mig rejält på. Och det är när saker är helt onödigt överkomplicerade.

Ni som arbetat med C++ vet att Vector är en standard sedan C++ skapades. Mitt värsta exempel var någon hade bestämt sig för att inte använda standard C++ Vector, utan istället skrivit sin egna Vector klass från scratch, i C++.... Jag höll på att smälla av när jag såg det.

Permalänk
Medlem

Nu är det länge sen, men skrev ett antal spel med riktig spagettikod, visst, dom funkade men en professionell kodare hade slitit sitt hår

Permalänk

stör mig som satan på folk som kör wall of code principen...
går inte hitta ett skit i den utan att först spendera en halv dag och försöka "dekryptera" väggen till något mer läsbart...

eller om man ska snacka mer jobbrelaterat när programmeraren gjort robotprogrammet och bara låtit alla programraderna vara döpta till ABB´s default namn * och kan man inte var varenda kodrad är positionerad i huvet eller mha kordinaterna så ä de en mardröm att jobba med...

Visa signatur

ASUS B550-f-Gaming, R9 5800X3D, HyperX 3200Mhz cl16 128Gb ram, rtx 3070ti.
[Lista] De bästa gratisprogrammen för Windows
[Diskussion] De bästa gratisprogrammen för Windows

Permalänk
Medlem

Nej, men andra stör sig på min kod.

Permalänk
Medlem

Jag känner igen problemet. Boven i dramat bör ju vara halvdan planering, bristande erfarenhet eller kanske bara "dåliga vanor".
Jag har lagt mjukvaruutveckling som yrke på hyllan, engagemanget och självkritiken tog lite mer av mig än jag hade att ge.

Visa signatur

No man is free who is not master of himself

Permalänk
Medlem

Jag stör mig på kod vars utvecklare uppenbarligen saknar grundläggande grammatikregler, så som de dem och 'dom'.

Permalänk
Medlem
Skrivet av Luminous:

Boven i dramat bör ju vara halvdan planering, bristande erfarenhet eller kanske bara "dåliga vanor".

Brist på tid är nog det vanligaste problemet. Om man ska göra något halvkomplicerat så har man ofta inte full koll på problemställningen förrän en fungerande version är på plats och då ger det bara marginell nytta att göra om något för att det ska bli snyggare och mer lättunderhållet. Har man en deadline att jobba mot så är det ”good enough” som gäller.

Jag har nog mindre tvångssyndrom än de flesta här eftersom jag sällan stör mig på utseendegrejer som formattering. Och det är sällsynt att jag stör mig på organisation av kod.

Det som däremot gör mig rejält sur är när folk uppenbart inte har gjort ett enda test av sin kod eller övervägt gränsvärdesproblematik och jag blir tvungen att lägga en kväll för att få deras funktionalitet att faktiskt fungera innan demo eller för att komma vidare själv.

Permalänk
Medlem
Skrivet av Xeonist:

Det är väl med kod som med alla språk.
Normalt gör jag typ aldrig det (leker språkpolis), men ditt inlägg var ju inte språkligt optimalt. Men jag förstod precis vad du menade, och det är ju det enda syftet med språket.

Huvudsaken är att man förstår varandra? Ibland (väldigt ofta) skriver man i all hast utan att korrekturläsa.

Permalänk
Medlem

Ett tips för att få upp kodkvalitet både hemma och på jobbet kan vara att börja använda analysverktyg som t.ex. SonarLint (gratis från https://www.sonarlint.org/) som man via sin utvecklingsmiljö ser problem i filerna man jobbar i. Om man sätter upp en server som analyserar all kod i repon och integrerar det med automatiska byggen kan man få bra koll på status på hela projekt och status på ny kod. Vi får mail från vår server när vi råkar checka in kod som innehåller saker som avviker från regelverket.

Visa signatur

Workstation 5950X|7900XTX|O11 Dynamic Vardagsrum 3900X|6900XT|Torrent Nano
VR Reverb G2|PSVR2|Pico 4|Quest 3|Oculus Quest|Samsung Odyssey+

Permalänk
Inaktiv

Nja, med lång erfarenhet är det svårt att störa sig på någons annan kod, trots otydliga variabelnamn och liknande. Det blir lätt med åren att snabbt läsa vad koden gör genom att helt enkelt läsa vad koden gör, snarare än hur den beskrivs av programmeraren.

Det som egentligen kan göra mig irriterad är när systemarkitektur och design är grovt inkompetent utfört. Men det är ju på en större skala än bara några kodstycken, utan är ju problem på en mer fundamental nivå.

Exempel på detta återfinns i Unreal motorn, särskilt i versioner 4.27-5.0, samt deras arbeten med OpenXR och Vulkan. Här finns mycket frustration och tecken på att dom haft bråttom, samt kanske prioriterat fel och satt juniorer på att utveckla fundamentala system. UE är ju dock ett stort projekt med många kockar, så kvaliteten skiljer sig avsevärt beroende på vart i koden man kollar.

Denna sorts inkompetens var väldigt vanlig bland kollegor när jag jobbade för ett konsultbolag också.

Permalänk
Medlem

Lyckligtvis har jag nästan alltid arbetat i team med extremt duktiga utvecklare, så det har sällan funnits saker att irritera sig på mer än min egen kod. Särskilt när man har varit tvungen att få ihop saker under stor tidspress, men det brukar lösa sig över tid om man refaktoriserar med jämna mellanrum.

Det största irritationsmomentet är annars när systemarkitekter gör onödigt tillkrånglade lösningar för att visa hur duktiga de är på att rita boxar och pilar istället för att hålla det enkelt eller när produktchefen hela tiden försöker forcera in nya obegripliga features från sidan rakt in i våra redan överfulla sprintar. Det kan leda till dålig kod på sikt. Sedan gillar jag inte folk som skriver lika mycket kommentarer som kod. Bra kod dokumenterar till viss del sig själv.

Permalänk
Medlem
Skrivet av KAD:

Brist på tid är nog det vanligaste problemet. Om man ska göra något halvkomplicerat så har man ofta inte full koll på problemställningen förrän en fungerande version är på plats och då ger det bara marginell nytta att göra om något för att det ska bli snyggare och mer lättunderhållet. Har man en deadline att jobba mot så är det ”good enough” som gäller.

Det håller jag inte med om. Har man bra vanor så skriver man lättläst kod med kommentarer per automatik.
Kommentarer som förklarar kodavsnitt skriver man ibland t.om. före koden som en direkt produkt av att man reder ut vad koden ska göra.

Från ditt inlägg får jag annars det allmänna intrycket av att ditt jobb inte har särskilt bra styrning över utvecklingprocessen.

Visa signatur

För övrigt anser jag att tobak ska förbjudas.

Permalänk
Avstängd
Skrivet av eMannen:

Ett tips för att få upp kodkvalitet både hemma och på jobbet kan vara att börja använda analysverktyg som t.ex. SonarLint (gratis från https://www.sonarlint.org/) som man via sin utvecklingsmiljö ser problem i filerna man jobbar i. Om man sätter upp en server som analyserar all kod i repon och integrerar det med automatiska byggen kan man få bra koll på status på hela projekt och status på ny kod. Vi får mail från vår server när vi råkar checka in kod som innehåller saker som avviker från regelverket.

Vi körde ett tag med Sonarlint som ett krav. Pull requests som inte klarade den kollen misslyckades och var tvungna att rättas innan en incheckning gick igenom. Men det blev lite trubbigt, jobbar man iterativt med korta sprintar så kanske man behöver kunna få in saker som inte är helt klara och liknande, inte minst för att jag jobbar i en RnD-organisation.

Permalänk
Medlem
Skrivet av snajk:

Vi körde ett tag med Sonarlint som ett krav. Pull requests som inte klarade den kollen misslyckades och var tvungna att rättas innan en incheckning gick igenom. Men det blev lite trubbigt, jobbar man iterativt med korta sprintar så kanske man behöver kunna få in saker som inte är helt klara och liknande, inte minst för att jag jobbar i en RnD-organisation.

Vi rejectar inte kod som inte uppfyller kraven, men man får som sagt ett mail. Vissa regler kör vi mer hårda linjen på som t.ex. null-analys, resursläckor och säkerhetshål, men många regler är mer rekommendationer och man kan låta dem vara.
När vi började med detta hade vi redan ett långt gånget projekt så kvaliteten i koden och "kodskulden" var redan i ett skick som inte tillät oss att köra stenhårt på reglerna. Det är dock bra att få en analys gjord på hela kodbasen och få koll på problem i filer som sällan/aldrig någon kikar i.

Visa signatur

Workstation 5950X|7900XTX|O11 Dynamic Vardagsrum 3900X|6900XT|Torrent Nano
VR Reverb G2|PSVR2|Pico 4|Quest 3|Oculus Quest|Samsung Odyssey+

Permalänk
Avstängd
Skrivet av eMannen:

Vi rejectar inte kod som inte uppfyller kraven, men man får som sagt ett mail. Vissa regler kör vi mer hårda linjen på som t.ex. null-analys, resursläckor och säkerhetshål, men många regler är mer rekommendationer och man kan låta dem vara.
När vi började med detta hade vi redan ett långt gånget projekt så kvaliteten i koden och "kodskulden" var redan i ett skick som inte tillät oss att köra stenhårt på reglerna. Det är dock bra att få en analys gjord på hela kodbasen och få koll på problem i filer som sällan/aldrig någon kikar i.

Jo det fanns någon ambition hos oss ett tag att det skulle vara krav på "treat warnings as errors" men det höll ju inte alls.

Permalänk
Medlem
Skrivet av KAD:

Brist på tid är nog det vanligaste problemet. Om man ska göra något halvkomplicerat så har man ofta inte full koll på problemställningen förrän en fungerande version är på plats och då ger det bara marginell nytta att göra om något för att det ska bli snyggare och mer lättunderhållet. Har man en deadline att jobba mot så är det ”good enough” som gäller.

Jag har nog mindre tvångssyndrom än de flesta här eftersom jag sällan stör mig på utseendegrejer som formattering. Och det är sällsynt att jag stör mig på organisation av kod.

Det som däremot gör mig rejält sur är när folk uppenbart inte har gjort ett enda test av sin kod eller övervägt gränsvärdesproblematik och jag blir tvungen att lägga en kväll för att få deras funktionalitet att faktiskt fungera innan demo eller för att komma vidare själv.

Jepp jag ser brist på tid som en orsak till dålig planering.

Visa signatur

No man is free who is not master of himself