» »

V kakšnem stilu pišete vašo kodo?

V kakšnem stilu pišete vašo kodo?

kuall ::

BigWhale je izjavil:


Tud tvoj github account se cakamo... :>

Ga nimam. Saj je bil tvoj čist zadost za tole temo. :) Je blo kar zabavno najti primer, kako programiraš točno tako, kakor tule na veliko nasprotuješ.
Imaš tako veliko željo podtikat neke podle stvari nasprotniku z željo po ceneni zmagi, da se boš zatekel celo k nasprotovanju samemu sebi, kot sem ti lepo dokazal.

WizzardOfOZ ::

FTad je izjavil:

SloKin je izjavil:


Cemu se vedno na vrhu funkcije definirate parametre? Ok so jeziki kjer to moras naredit ampak nisem preprican, da tale spada mednje. Definiras cim blizje ko potrebujes. S tem povecas preglednost in zmanjsas moznost napak.


Se popolnoma strinjam in tudi sam programiram na ta način.

Odvisno od jezika. Pri nekaterih je prva stvar da definiraš spremenljivke (cobol recimo).
Pri novejših se pa strinjam da tam kjer jo uporabiš, ker ostalo je navlaka.

BigWhale je izjavil:

WizzardOfOZ je izjavil:

Linux je nekaj drugega kot ZOS. Če delaš na linux particijah na mainframeu imaš ogromno več možnosti.
Delaš pa lahko tudi v IDE, ampak je hitreje direkt v konzoli. Parkrat hitreje. Vsaj zame.


Narobe si me razumel. :) Velik stvari je blo treba narest tud na samih VSMjih in napisat en kup toolinga, pa smo vseeno imel proper version control. Delanje direkt v konzoli in izgovor, da gre tko velik hitrejs je sam izgovor za narobe postavljeno produkcijo. Na zalost.

Sej tudi v konzoli laufa version control. Imamo orodje. Sej tidi delamo z njim. Ampak gita pa ne moreš imet.

Z vsm misliš vsam? Vsam je bolj malo ostalo za uporabo z direktnim dostopom. Smo vse preselili v db2 (je hitrejše)
Milčinski je napisal butalce kot prispodobo in ne kot priročnik!!!
Svuda u svijetu ima budala ali je izgleda kod nas centrala!!!

Zgodovina sprememb…

FTad ::

Ja to drzi, ko zagovarjam tak pristop, imam v mislih visjenivojske jezike, kar pa mislim, da se predpostavlja v glavnini celotne teme.

BigWhale ::

kuall je izjavil:

Imaš tako veliko željo podtikat neke podle stvari nasprotniku z željo po ceneni zmagi, da se boš zatekel celo k nasprotovanju samemu sebi, kot sem ti lepo dokazal.


Vse kar dokazujes, dokazujes predvsem samemu sebi in prepricujes sebe. :)

kuall ::

Ni bilo za pričakovat, da boš bil zmožen priznat, da si nasprotoval sam sebi. Vsaj s tem se lahko potolažiš, da nisi osamljen v tem. Sem že imel primere, ko sem jim dal dokaz in so kljub dokazu trdili svoje zmotno prepričanje.

OrkAA ::

Saj ves da obstaja moznost, da nisi zadovoljen s kodo, ki si jo napisal sam? Ker si pac hitel, ti je bilo vseeno, gre za hobi projekt, whatever ..

V moji zgodovini lahko najdes ogromno kode, ki je katastrofalna, a mi je s casom uspela pokazat zakaj tisti pristop ni bil dober.

kuall ::

Tako kodo, kjer je vse nametano skupaj brez logičnih presledkov (ne preveč in ne premalo) stalno gledam od drugih programerjev (od takih kot ste vi). Ne vem zakaj se ne morete malo potruditi, da ne boste tako mučili svojih naslednikov? Vsaka funkcija ne more imeti samo 5 vrstic, vse kar je več pa je treba ločit na bloke.

Zgodovina sprememb…

  • spremenilo: kuall ()

OrkAA ::

Zdaj se itak nekaj brezveze prepucavate, ker ima vsak v glavni neko drugo idejo o cem je govora.

Ti stalno razpredas o blokih, ki so sicer cisto normalen del programiranja in jih uporablja vecina, nekateri ti pa kontrirajo, ker predvidevajo, da bloke uporabljas tudi tam, kjer funkcija zajema funkcionalnosti, ki logicno ne pasejo skupaj in bi jih moral locit na posamezne funkcije.

Pac debata zaradi debate, kar nekaj :)

Verjetno bo bolj produktivno, ce pokazes dejanske izseke kode, ki jo uporabljas v produkciji, pa se potem pokomentira kaj je smiselno in kaj ne.

kuall ::

Itak da je osnovni problem debate, ker so BigWhale in ostali NAMENOMA narobe razumeli, da sem proti funkcijam samo zato, da so lahko sebe naredili pametne. To se na slo techu stalno dela. V resnici funkcije prav rad uporabljam, tudi classe in vgnezdene classe za organiziranje kode. Imam pač rad urejene stvari, to je osnova dobrega progamerja.

WizzardOfOZ ::

OrkAA je izjavil:

Saj ves da obstaja moznost, da nisi zadovoljen s kodo, ki si jo napisal sam? Ker si pac hitel, ti je bilo vseeno, gre za hobi projekt, whatever ..

V moji zgodovini lahko najdes ogromno kode, ki je katastrofalna, a mi je s casom uspela pokazat zakaj tisti pristop ni bil dober.


Če jaz pogledam svoje začetne programe, se samo smejim kaj sem včasih počel. Ampak s tem dobivaš kilometrino, in s kilometrino se tudi koda izboljšuje.
Milčinski je napisal butalce kot prispodobo in ne kot priročnik!!!
Svuda u svijetu ima budala ali je izgleda kod nas centrala!!!

Invictus ::

Spet eno brezzvezno prepucavanje o povsem subjektivnih in dostikrat tehnično omejenih, zadevah.

In seveda favoriziranje orodja, ki ga vsak sam uporablja, kot da je suho zlato...

V praksi se pač prilagodiš, po sili razmer, sploh če stranka pač ni preveč prilagodljiva in sposobna prenesti kake kritike...
"Life is hard; it's even harder when you're stupid."

http://goo.gl/2YuS2x

Smurf ::

kuall je izjavil:

Itak da je osnovni problem debate, ker so BigWhale in ostali NAMENOMA narobe razumeli, da sem proti funkcijam samo zato, da so lahko sebe naredili pametne. To se na slo techu stalno dela. V resnici funkcije prav rad uporabljam, tudi classe in vgnezdene classe za organiziranje kode. Imam pač rad urejene stvari, to je osnova dobrega progamerja.

Pac v tej temi si povedal ze kar nekaj stvari, ki niso ravno najboljsa praksa v programiranju. Popravili smo te zato, da se mogoce manj izkuseni programerji kaj naucijo, v cemer tudi vidim sam point te teme.

Dvomim, da se kdorkoli hoce delati pametnega. Te stvari niso znaki "pametnosti", ampak zgolj dejstvo da poznas pravilne vzorce v programiranju.

BigWhale ::

kuall je izjavil:

Ni bilo za pričakovat, da boš bil zmožen priznat, da si nasprotoval sam sebi. Vsaj s tem se lahko potolažiš, da nisi osamljen v tem. Sem že imel primere, ko sem jim dal dokaz in so kljub dokazu trdili svoje zmotno prepričanje.


A ti je res treba se enkrat razloziti kaj pomeni napisat kodo za en tutorial in jo komentirat tako, da jo bo znal brati tudi nekdo, ki mogoce prvic al pa drugic bere neko kodo in kaj pomeni pisat kodo za kak drug namen?

kuall ::

Vsak noob zna pisat kodo, ki jo je težko razumet.

Pametni pišemo kodo, ki jo zna vsak noob razumet.

Evo, že napredujemo. Zdaj mi govorite, da je moja koda preveč enostavna lol.

Zgodovina sprememb…

  • spremenilo: kuall ()

napsy ::

kuall, nihce ne pravi, da mora bit koda zapletena ... a kot dober inzinir moras vcasih posegat po principih, ki veljajo kot dobra praksa in kodo naradi dejansko bolj berljivo in znosno kot "enostavno kodo".

Kot en banalni primer, lahko naredis eno for zanko, ki jo bo nekdo, ki bo prvic videl programsko kodo tezje razumel, kot da 5x ponovis podoben stavek. Sedaj samo kompleksnost problema povecas. Se pravi, namesto zanke imas nek drug, tezji problem za resit. Zna se pac zgodit, da manj izkuseni programerji *trenutno* to ne bodo razumel, a kasneje z izkusnjami pa bodo.
"If you die, you die. But when you live you live. There is no time to waste."

kuall ::

Kode se ne sme podvajat ja.

Dejstvo ostaja, da bw trdi, da ne smeš programirat tako, da bodo kodo razumeli novinci. Jaz trdim, da moraš točno tako programirat.

napsy ::

Nisi dojel mojega pointa ... tudi to kar pravis, da BigWhale trdi, jaz tega ne vidim ... za celo stran debate te zelimo prepricat, da je cist OK ce se zmotis. Ce pa zelis vztrajat pri svojem pa ne poslusat nasvetov ljudi, ki pa le nekaj vedo in so nekaj ze dali skozi (tudi osebno poznam nekatere), si pa sam kriv, ker ocitno nisi sposoben sprejet konstruktivne kritike.

Kot je ze nekdo omenil, s takim mind-setom ne bos prisel dalec, ker ti tvoj ego prepricuje, da bi se naucil kaj novega. Se ne mislim vec ukvarjat s tvojimi teorijami zarote pa kok si oh in sploh najbolsi na celem forumu.
"If you die, you die. But when you live you live. There is no time to waste."

Zgodovina sprememb…

  • spremenil: napsy ()

kuall ::

Vem, da osebno poznaš nekatere, saj to se z aviona vidi, da jih braniš iz subjektivnih razlogov. Jaz hitro ugotovim kdo kam paše, ti pa ne tako.

Spet si napisal en splošen pokroviteljski odgovor, kakršni so bili vsi tvoji v tem temi. Sploh ne vem o čem govoriš? Pri čem jaz vztrajam in kaj me hočete vi naučiti? Saj bolje, da ne odgovoriš, ker bodo spet sama podtikanja.

FTad ::

Jaz pa vec ne vem, o cem ti ze govoris. Rdeca nit se je izgubila nekje na sredini teme oz si jo zasegel in napol zasmetil, da je v bistvu vse samo prepucavanje "ti vs vsi ostali" oz jaz imam prav, brez dvoma in vsi ostali se motimo. Spominjaš me na teme, ko uleti Hipatija, kadar je govora o moških in jih začne pljuvati iz leve in desne, pa bolj ko ji konstruktivno želimo povedati, da ni vse enodimenzionalno, bolj svoje trobi.

SloKin ::

Ej kuall. Jaz imam celo enovrsticne funkcije v svoji kodi. A mislis, da delam kaj narobe?

Bal si se vprasat pa ti bom vseeno povedal. Vzemi svoj primer kode posiljanja maila. Okoli te tvoje funkcije daj for loop, ki bo poslal 10k personaliziranih mailov. Nato pa modro premisli kaj v tvoji funkciji je nepotrebno kurjenje resursov. Kaj hitro bos prisel do tega, da dolocene stvari nimajo tam kaj za delat. Saj razumem... Pac si tip programeja, ki mece kodo na kup in ce rata pac rata. Monkey style...

Kar se tice tvojih deklaracij spremenljivk na vrhu.
string body = "kuall je dobil povisico."
// 50 vrstic, ki nimajo popolnoma nobene veze s spremenljivko body
// dodam, ker lahko pa naj se kuall mece na zobe
body += " Jebe naj se. Saj ni edini."
// 50 vrstic ki spet nimajo nobene veze z body
body += " kuall je pravi moski!"
postOnSloTech(body)

Pa si poglej berljivost tvoje kode. Ne samo, da moram skocit na vrh in potem nazaj. Celo searchat bom moral po vseh referencah.

Kaj sem jaz potegnil iz teme in kar bi svetoval drugim? Ce boste delali kot pravi kuall boste lahko delali samo z njim in njegovo ekipo. Ostali svet ga namrec ne zeli zaposliti...

FTad ::

@SloKin

hvala, you just made my night :) ...inserts thank you meme... :)

Zgodovina sprememb…

  • spremenil: FTad ()

kuall ::

FTad je izjavil:

Rdeca nit se je izgubila nekje na sredini teme oz si jo zasegel in napol zasmetil

jaz vam samo odgovarjam, pa sploh nisem vsem odgovoril.
nehajte se ukvarjat z menoj pa bo problem rešen, tako kot napsy. saj nisem rad v centru pozornosti. ne vem, zakaj sem vam tako zanimiv. najbrž zato, ker podzavestno veste, da imam prav.
če me pa kdo omeni mu odgovorim, čeprav sem neumen, da se ukvarjam z vami, ker res čudne streljate. npr na zadnji slokin primer kode nimam komentarja, preveč čudaško zame.

Z osebnimi napadi in posmehovanjem je začel BigWhale in zdaj ga čredica posnema, ker je "šef". Predvidljivo. Tema je dober primer, kako je forum postal tak, kakršen je.

BigWhale ::

kuall je izjavil:


Dejstvo ostaja, da bw trdi, da ne smeš programirat tako, da bodo kodo razumeli novinci. Jaz trdim, da moraš točno tako programirat.


A to se namenoma delas, da ne razumes napisanega, zato, da bi izpadel, da imas prav, al resnicno ne razumes kaj sem povedal? Pac, ce ne razumes, ti lahko se enkrat razlozim, ce se pa sam delas debila, pol pa pac vemo kje smo ...

BigWhale ::

kuall je izjavil:

Spet si napisal en splošen pokroviteljski odgovor, kakršni so bili vsi tvoji v tem temi.


:))))

kuall je izjavil:

Tako kodo, kjer je vse nametano skupaj brez logičnih presledkov (ne preveč in ne premalo) stalno gledam od drugih programerjev (od takih kot ste vi).

kuall je izjavil:

Vsak noob zna pisat kodo, ki jo je težko razumet.
Pametni pišemo kodo, ki jo zna vsak noob razumet.

kuall je izjavil:

Mindset nooba je tak, da misli, da je samo en način programiranja pravilen. V resnici je pravilnih mnogo načinov. Groza, če naletiš na šefka, ki tega ni zmožen razumet.

kuall je izjavil:

Sem pa bil enkrat na razgovoru in rekel unemu loleku, da kodo ločim na bloke. Ravno tako bebasto me je gledal kot vi zdajle in me seveda najbrž ravno zaradi tega mojega komnetarja ni vzel v službo. Še bolje, takih ljudi ne rabim gledat, s katerimi nismo na isti valovni dolžini.

kuall je izjavil:

Refraktoriranje? To sem včasih delal, ko sem bil nov. Zdaj napišem 1x in pustim tako kot je prvič ratalo. Prej raje malo bolj premislim, da ne bom imel dela s spreminjanjem. Refraktoriranje je zguba časa in vnaša nove buge.


kuall je izjavil:

Z osebnimi napadi in posmehovanjem je začel BigWhale in zdaj ga čredica posnema, ker je "šef". Predvidljivo. Tema je dober primer, kako je forum postal tak, kakršen je.


Oh, a to, da sem rekel tvojemu pristopu clusterfuck programiranje te je tko prizadel. Se opravicujem.

Zgodovina sprememb…

  • spremenil: BigWhale ()

napsy ::

mislim da sedaj ze vsi vemo, kaksen bo odgovor :)
"If you die, you die. But when you live you live. There is no time to waste."

kuall ::

BigWhale je izjavil:

A to se namenoma delas, da ne razumes napisanega, zato, da bi izpadel, da imas prav, al resnicno ne razumes kaj sem povedal? Pac, ce ne razumes, ti lahko se enkrat razlozim, ce se pa sam delas debila, pol pa pac vemo kje smo ...


Samo na tvoj nivo sem se spustil. Ponavadi se ne poslužujem takih cenenih trikov. Najbrž si mislil nekaj smiselnega. Ponavadi iščem smisel, tudi če je stavek nesmiseln, kakršen je bil tvoj.
Sej bi te vprašal, kako bi tisto svojo github kodo danes drugače napisal ampak vas imam zadost. :) Opravičil si se, priznal si napako, upam, da si se kaj naučil za naprej, kako se moraš obnašat v civilizaciji. :)

korenje3 ::

Tale kuall pa že ni programer.

Jaz sam nisem, sam vidim iz cistiranega besedila da tip ne pozna osnov. Verjetno pomanjanje izkušenj.
Ali šef razume ali ne, nima veze. Mora pa šef poskrbeti, da se program piše v univerzalno priznanem načinu in ne takem, ki si jih je nek kuall izmislil. Gre se za okolje, kjer dela več ljudi in s programsko kodo posameznika morajo vsi operirat. Zaradi tega je pomembna tudi komunikacija in prilagodljivost. Torej če da nek programer odpoved morajo prišleki znati uporabit preteklo zgrajeno bazo.
Šef mora poskrbeti tudi, da vsi zaposleni v oddelku delajo timsko in da je način dela razumljiv in enak za vse.
i9-12900k; 32GB DDR5-6000 CL36; Nvidia RTX 3080 ti;
Gigabyte Aorus z690 master; Be Quiet Dark Power 12 1000W

kuall ::

Vidim, da se razne persone še vedno ukvarjajo z menoj. Bi raje videl, če se ne bi ampak če se moram odgovorit. korenje, ti nisi zaželjen na tem forumu, poglej svojo značko. Če meni dajo tako značko me ne vidijo več tu, eni pa še kar silijo tja, kjer niso zaželjeni.

Meni se celo življene dogaja, da me neumni ljudje podcenjujejo. Potem ko me spoznajo rečejo, da so me narobe ocenili, pa še to samo tisti bolj inteligentni. Neumni nikoli ne spoznajo, da so se motili. Nisem blefer in to marsikoga zmede, ker je tako vajen bleferstva, da ne zna razmišljat v drugih okvirjih.

SloKin ::

kuall je izjavil:

Vidim, da se razne persone še vedno ukvarjajo z menoj. Bi raje videl, če se ne bi ampak če se moram odgovorit. korenje, ti nisi zaželjen na tem forumu, poglej svojo značko. Če meni dajo tako značko me ne vidijo več tu, eni pa še kar silijo tja, kjer niso zaželjeni.

Meni se celo življene dogaja, da me neumni ljudje podcenjujejo. Potem ko me spoznajo rečejo, da so me narobe ocenili, pa še to samo tisti bolj inteligentni. Neumni nikoli ne spoznajo, da so se motili. Nisem blefer in to marsikoga zmede, ker je tako vajen bleferstva, da ne zna razmišljat v drugih okvirjih.

Eeeee kalimero... A si ze prepisal svojo funkcijo, da lahko poslje 10k mailov? Saj lahko tudi za 1k, ce je 10k problem... Dej postaj no. Mene res zanima kako izgleda.

Zgodovina sprememb…

  • spremenilo: SloKin ()

kuall ::

Ne vem o čem ti govoriš niti nočem vedet. :) Ti mi pa res zgledaš kot totalen noob, brez zamere.
A ti imaš programersko službo? Kakšna plača? Imaš kakšne stackoverflow točke?

SloKin ::

kuall je izjavil:

Ne vem o čem ti govoriš niti nočem vedet. :) Ti mi pa res zgledaš kot totalen noob, brez zamere.
A ti imaš programersko službo? Kakšna plača? Imaš kakšne stackoverflow točke?

Jaz ne jokam po forumi, da se mi dogaja krivica. Prav tako ne rabim svojih trditev potrjevat s placo, sluzbo, delovnimi izkusnjami, nagradami, tockami, itd. To delajo negotovi ljudje, ki imajo malo znanja.
Najdi svoj primer posiljanja maila, ki si ga podal. Tebi kot izkusenemu programerju pa to valda ne bo tezko. Ali pac? Vse kaze na to, da se kaj dosti ne poglobis v zadeve.

kuall ::

Samo zanima me ali si sploh programer ali ne tako kot korenje3? Ljudje radi solijo pamet o programiranju, ko v življenju še niso nič sprogramirali.
Te teme in nasploh foruma sploh ne jemljem več resno po parih slabih izkušnjah. BigWhalu in kompaniji se zahvali za to. Karkoli bom napisal boste že nakako obrnili v negativno.

Greg91 ::

Od bedaka do "strokovnjaka".

kuall je izjavil:

Ja tista teorija "delaj nekaj 10.000 ur pa boš stručnjak" res ne drži preveč. Po moje je res nek IQ bolj važen, pa ne klasični IQ toliko ampak pač to, da znaš stvar hitro in brez napak naredit.
Jaz programiram že 15 let, resda večinoma za hobi, pa komaj dobim minimalno plačo. Pa se nimam za tako nesposobnega.


kuall je izjavil:

Jaz nimam faxa, namesto da bi poslušal une debile na faksu sem šel raje gledat ženske riti v BTC :), do 35 leta 0 delovne dobe, pa imam zdaj napovprečno plačano službo. Če znaš te bodo vzeli, delovna doba in faks nimata veze. Napačna vprašanja postavljaš. Samo koliko znaš je važno.

...


Verjetno bi več odnesel od "debilov" na faksu kot od gledanja riti v BTC -> porn zasvojenost

Izkupiček tvojih življenskih odločitev je precej boren. Nisi sposoben programer, še manj osvajalec žensk, pa kjub temu po celem forumu trosiš "znanje".

Ker smo vsi noobi le ti si izkušen strokovnjak.

Mimogrede, kako napredujejo famozni AI programi?

Matek ::

Dajmo poskusit vrnit temo na izhodiščne tirnice. Nekaj vprašanj:
  • A na delovnem mestu uporabljate linterje/autoformatterje?
  • So stvar izbire posameznika ali so obvezni in CI preprečuje merge narobe formatirane kode?
  • Kako ste izbrali nabor pravil oz. slog, ki ga želite uveljavljati?
Bolje ispasti glup nego iz aviona.

FTad ::

Matek je izjavil:

Dajmo poskusit vrnit temo na izhodiščne tirnice. Nekaj vprašanj:
  • A na delovnem mestu uporabljate linterje/autoformatterje?
  • So stvar izbire posameznika ali so obvezni in CI preprečuje merge narobe formatirane kode?
  • Kako ste izbrali nabor pravil oz. slog, ki ga želite uveljavljati?


Lahko ti odgovorim, kako je znotraj programskega jezika ABAP v SAPu in potem kako imamo dogovorjeno znotraj firme.

A na delovnem mestu uporabljate linterje/autoformatterje?

SAP Workbench nudi autoforatterje, da ti vse ukaze zapise z veliko zacetnico in ostalo kodo (spremenljivke itd) pa z malo. Lahko imas pa tudi obratno. Katero opcijo uporabljamo, je pa potem spet stvar dogovora. Vendar velika vecina uporablja to prvo opcijo.

Imas na voljo tudi "autoformatterje", kako ti formatira vrstice, pri klicih funkcij/metod z večimi parametri (ful se razlikuje od npr JAVE, sploh legacy koda).


So stvar izbire posameznika ali so obvezni in CI preprečuje merge narobe formatirane kode?

Tega pri nas nimamo. Drzalo naj bi se samo smernic poimenovanja spremenljivk itd, kar se tice pa potem formatiranja in clean kode pa naj bi bil vsak sam za to odgovoren. Na zalost pa vidim potem polno "umazane" kode, ker se vsem profilom programerjev pojavlja, da pisejo skoraj kot se jim sprdne, sploh ce se referenciram na tisto Clean Code knjigo.


Kako ste izbrali nabor pravil oz. slog, ki ga želite uveljavljati?

Solocene smernice "best practices" za poimenovanje razredov, funkcij, elementov, struktur, etc je podal SAP, dodatno za potrebe in konsistenco znotraj firme pa je bilo se dodatno doloceno.

Kot sem ze omenil, SAP je dal smernice "best practices", nazadnje pa izdal tudi knjigo Clean Code v ABAPu, ki temelji na Clean Code od "Uncle Bob-a", vendar z dolocenimi specifikami ABAP jezika.

Kot sem omenil ze v prvi objavi, v doloceninih tockah izredno nasprotujem mnenju senior kolega (ki mi je tudi še vedno deloma mentor), ker bi rad povzel Clean code smernice, kar pa njemu ni vedno pogodu. Npr: pisanje manjsih funkcij in razbitje vecje v manjse kose, za boljso berljivost (vsaj meni je tako bolj berljivo in hitreje nakdadno spet kaj najdem), medtem ko on vztraja pri dolgih metodah, ces da mu zmoti flow branja, ce mora narediti double click na metodo, da vidi kako je bila ta implementirana.

Bottom line, sem mnenja, da delujoco kodo lahko napise vsak, da bi bila pa ta tudi lepo berljiva za nekoga, ki jo mora vzdrzevati se x-let po tem, ko tebe ni vec v firmi, je pa ze naslednji nivo in k temu stremim. Ma kaj, da znajo drugi brati za menoj, tudi da se sam cim prej uspem spomniti, kaj sem zelel takrat napisati, ko odprem kodo po pol leta in moram kaj dodati/popraviti ipd.

napsy ::

Mi uporabljamo autoformatterje in so super zadeva, Go ima to zelo dobro reseno in je vsa koda, ki jo najdes na netu kosistentna. Avtorji so naredil super potezo, ker so ta tool dodal kar kmalu po izidu prvega toolinga za jezik.

Jaz vedno, kadar gledam nek nov jezik, gledam tut njegov naming convention pa coding guideline. Mislim tudi, da bi morale ekipe uporabljati te guideline, namesto izumljati svojih. Na tak nacin se tudi nov kader lahko hitreje vpelje v obstojece projekte. Se pravi nek pythonas bo lazje prisel v projekt, ki ze uporablja priporocene Python community guideline.
"If you die, you die. But when you live you live. There is no time to waste."

SloKin ::

Matek je izjavil:

Dajmo poskusit vrnit temo na izhodiščne tirnice. Nekaj vprašanj:
  • A na delovnem mestu uporabljate linterje/autoformatterje?
  • So stvar izbire posameznika ali so obvezni in CI preprečuje merge narobe formatirane kode?
  • Kako ste izbrali nabor pravil oz. slog, ki ga želite uveljavljati?

Da. Clang format in google style. Formatiranje naj bi bila avtomatika ampak, ker imamo seveda nad nami cloveka, ki je glede tega trd v betico, ne moremo imeti pravila glede mergov. Ampak po pravici povedano tega niti ne rabimo saj on dela commit na vsake pol leta.

Smurf ::

Matek je izjavil:

Dajmo poskusit vrnit temo na izhodiščne tirnice. Nekaj vprašanj:
A na delovnem mestu uporabljate linterje/autoformatterje?

Da.

Matek je izjavil:


So stvar izbire posameznika ali so obvezni in CI preprečuje merge narobe formatirane kode?

Obvezni.

Matek je izjavil:


Kako ste izbrali nabor pravil oz. slog, ki ga želite uveljavljati?

Verjetno ima ze vsaka koda kaksen uveljavljen slog, ali pa par njih. Vzames enega izmed njih, ker vecini najbolj ustreza. Ampak vecina itak ze pride na podjetje kjer ze nekaj imajo in se temu prilagodis.

blay44 ::

Zdej ko so šli seniorji na pir
Kako pa bi morala izgledati sprejemljiva koda v profi svetu?
Izbrskal sem eno mojo najbolj umazano funkcijo v Cju.
So komentarji potrebni? Bi bilo bolje v funkciji uporabljati privzete string funkcije, morda kazalce? Oziroma kako in kaj vse, bi naredili v profi svetu, da bi bila sprejemljiva.
IzpisDelam()
{
    static char _besediloDelam[25];
    static unsigned int _stevecDelam = 0;
    unsigned int _iFor;
    if(_stevecDelam < 25)
    {
        _besediloDelam[_stevecDelam]= '.';
        _stevecDelam++;
        _besediloDelam[_stevecDelam] = '\0';
    }
    else
    {
        for(_iFor = _stevecDelam;_iFor > 0;_iFor--,_stevecDelam--)
            _besediloDelam[_stevecDelam] = ' ';
    }
    printf("Delam..%s\r",_besediloDelam);
}

FTad ::

blay44 je izjavil:

Zdej ko so šli seniorji na pir
Kako pa bi morala izgledati sprejemljiva koda v profi svetu?
Izbrskal sem eno mojo najbolj umazano funkcijo v Cju.
So komentarji potrebni? Bi bilo bolje v funkciji uporabljati privzete string funkcije, morda kazalce? Oziroma kako in kaj vse, bi naredili v profi svetu, da bi bila sprejemljiva.


Torej moje mnenje. Funkcija je tako kratka, da bi bili komentarji povsem nepotrebni, razen ce bi bilo nekaj reeeees zakompliciranega, da bi s komentarjem dodal kako pomemben hint, zakaj si to tako implementiral.

Ker ne poznam C-ja oz ne programiram v njem, ti tehnicnih vprasanj ne znam odgovoriti.

Bi pa vsaj formatiral kodo malenkost drugace, sem mnenja, da bi izboljsalo branje. Da dam med deklaracijo in implementacijo eno prazno vrstico, pa if/else oklepaje postavim malce drugace

IzpisDelam()
{
    static char _besediloDelam[25];
    static unsigned int _stevecDelam = 0;
    unsigned int _iFor;

    if(_stevecDelam < 25) {
        _besediloDelam[_stevecDelam]= '.';
        _stevecDelam++;
        _besediloDelam[_stevecDelam] = '\0';
    } else {
        for(_iFor = _stevecDelam;_iFor > 0;_iFor--,_stevecDelam--)
            _besediloDelam[_stevecDelam] = ' ';  }
    printf("Delam..%s\r",_besediloDelam);
}


Ker ne poznam C-ja, bi rad vprasal, ce se _iFor spremenljivke da deklarirati v zanki kot pri Javi? Ce ja, bi jo potem definitivno tam deklariral in se znebim deklaracije na zacetku, ker jo itak samo znotraj for zanke uporabljas.

Drugo vprasanje, a je poimenovanje spremenljivk, da zacnes s podcrtajem "_" tipicno za C?

Tretje vprasanje: A je potrebno v for zanki tudi _iFor-- pisat? A ni _stevecDelam-- dovolj?

Zgodovina sprememb…

  • spremenil: FTad ()

WizzardOfOZ ::

Jaz pa vedno v naslednji vrstici začnem z zavitimi oklepaji

if (x > Y)
{
    bla bla bla
}
else
{
    alb alb alb
}
Milčinski je napisal butalce kot prispodobo in ne kot priročnik!!!
Svuda u svijetu ima budala ali je izgleda kod nas centrala!!!

Smurf ::

Formating oklepajev je edina stvar, ki me dejansko ne moti. Uporabljata se obe opciji. Za zacetek bi se lotil drugacnih imen spremenljivk. Zakaj podcrtaj? Zakaj das povsod na konec spremenljivk "delam", zakaj si se odlocil, da se bo i v for loopu imenovala iFor?

blay44 ::

_iFor načeloma sploh ni treba deklarirat. Lahko pa bi bil kar _stevecDelam.
Ta C je tako star, da so razviti razni standardi C98,c99,c11,c14, pa še kej.
Da pa se losaš opozoril prevajalnika(zastavica -pedantic), pa tko...po starem.
Dolgo je že ko sem to pisal.
Za podčrtaje pa mislim, da jih Cjaši uporablajo za naslove funkcij, eni, drugi spet za knjižnice...Pojma nimam. Moj primarni jezik je Vbejzik, pa zato uporabljam ta stil. Najbrž to ni pravilno.
Glede oklepajev tudi jaz. Izgleda, da je pri kopiranju skript naredil po svoje.

Smurf je izjavil:

Zakaj das povsod na konec spremenljivk "delam",
zakaj si se odlocil, da se bo i v for loopu imenovala iFor?


Nn vem, običajno pišem posamezne funkcije s svojimi glavami. Jih stestiram in pol povežem v kak dll ali so.

Zgodovina sprememb…

  • spremenil: blay44 ()

techfreak :) ::

Jaz bi nekaj taksnega naredil (sicer nisem ravno domac v Cju):
void izpis_delam()
{
    static char besedilo[25];
    static unsigned int stevec = 0;

    if(stevec < 25)
    {
        besedilo[stevec] = '.';
        stevec++;
        besedilo[stevec] = '\0';
    }
    else
    {
        for(unsigned int i = stevec; i > 0; i--, stevec--)
        {
            besedilo[stevec] = ' ';
        }
    }
    
    printf("Delam..%s\r", besedilo);
}
  • imena funkcij/spremenljivk v Cju bi naj bila z malo in locena s podcrtajem
  • imena naj bodo cimkrajsa, brez da izgubis razumevanje; npr. 'Delam' je popolnoma odvec tukaj
  • za vejicami, enacaji, podpicji, itd. naj bo presledek (razen na koncu vrstice)
  • zavite oklepaje bi priporocal vedno, tudi ce imas samo en stavek (dosti varnostnih napak se je zgodilo, ker ljudje spregledajo, da dodaten stavek (ne) spada pod dolocen blok)
C je sicer en tak jezik, ki ima polno razlicnih stilov pisanja.

Zgodovina sprememb…

BigWhale ::

blay44 je izjavil:

Zdej ko so šli seniorji na pir
Kako pa bi morala izgledati sprejemljiva koda v profi svetu?

Jaz bi tole tvojo funkcijo skrajsal na tole:

IzpisDelam() {
  printf("Delam...\n");
}


Vse ostalo je nepotrebno. Al to, al si pa neki pokvaril, ko si pastal kodo. :)

techfreak :) ::

@BigWhale: verjetno se v loopu izvaja. Sej ma static besedilo/stevec.

SloKin ::

blay44 je izjavil:

Zdej ko so šli seniorji na pir
Kako pa bi morala izgledati sprejemljiva koda v profi svetu?
Izbrskal sem eno mojo najbolj umazano funkcijo v Cju.
So komentarji potrebni? Bi bilo bolje v funkciji uporabljati privzete string funkcije, morda kazalce? Oziroma kako in kaj vse, bi naredili v profi svetu, da bi bila sprejemljiva.

IzpisDelam()
{
static char _besediloDelam[25];
static unsigned int _stevecDelam = 0;
unsigned int _iFor;
if(_stevecDelam < 25)
{
_besediloDelam[_stevecDelam]= '.';
_stevecDelam++;
_besediloDelam[_stevecDelam] = '\0';
}
else
{
for(_iFor = _stevecDelam;_iFor > 0;_iFor--,_stevecDelam--)
_besediloDelam[_stevecDelam] = ' ';
}
printf("Delam..%s\r",_besediloDelam);
}

- Nekaj mi pravi, da imaš buffer overflow. Pri _stevecDelam == 24 pišeš najprej na _besediloDelam[24] = '.' takoj zatem pa na _besediloDelam[25] = '\0'. Array je dolg 25. Prvi element je 0. Zadnji element je 24. Izpiši si _stevecDelam...
- Ne razumem zakaj imaš _iFor spremenljivko... A jo sploh rabiš? Pa kje nastaviš \0, če je_stevecDelam >= 25?
- Ali sploh rabiš for loop? V char arrayu lahko imaš karkoli. Če boš not shranil string potem mora array vsebovat \0 kar bo pomenilo konec stringa. Lahko se pojavi na prvem mestu in je vse ostalo pač junk.
- imena spremenljivk mi niso všeč. Prvič slovenščina in drugič _. Če boš imel v prihodnosti sodelavca iz Irana mu ne bo takoj jasno kaj je kaj...
Ne vem kaj takega recimo:
IzpisDelam() {
    static char _besediloDelam[] = "........................";
    static int _stevecDelam = 0;
    if(_stevecDelam < sizeof(_besediloDelam) - 1) {
        _besediloDelam[_stevecDelam++]= '.';
    } else {
        _stevecDelam = 1;
    }
    _besediloDelam[_stevecDelam] = '\0'; 
    printf("Delam..%s\n",_besediloDelam);
}

Pač očitno hočeš imet vsaj tri pike zato je treba dat števec na 1.

Edit: še bolje tako...

Zgodovina sprememb…

  • spremenilo: SloKin ()

blay44 ::

Hu techfreak, če gre za ene par funkcij je to točno to.
Ko pa se začne nabirat špeh, pa špeh...Mi pa paše, da točno vem kaj je Izpis_delam, besediloDelam, stevecDelam. Slednja dva so static. Lahk se zaplete. In to fejst.
Danes bi to bilo v strukturi. Al pa kak c++. Sam je počasen.

BigWhale ::

techfreak :) je izjavil:

@BigWhale: verjetno se v loopu izvaja. Sej ma static besedilo/stevec.


Mogoce? Vemo pa ne. :> Ce se ne, je funkcija sam mal hecn napisana. Slovenske spremenljivke in imena, ce pa se je pa tko al tko za pobrisat in se drugac lotit izpisa 'progress bara'. :)

blay44 je izjavil:

Al pa kak c++. Sam je počasen.


Uf, a lahko poves v cem je C++ tolk pocasen, da bi bil neprimeren? A mas dejansko kak test narjen, da ves, da bi bil C++ prepocasen?

Zgodovina sprememb…

  • spremenil: BigWhale ()

techfreak :) ::

blay44 je izjavil:

Ko pa se začne nabirat špeh, pa špeh...Mi pa paše, da točno vem kaj je Izpis_delam, besediloDelam, stevecDelam. Slednja dva so static. Lahk se zaplete. In to fejst.
Imena spremenljivk med razlicnimi funkcijami ne rabijo biti unikatna, tudi ce uporabljas 'static'.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Python najbolj vroč programski jezik (strani: 1 2 3 )

Oddelek: Novice / Ostala programska oprema
12229146 (23500) BigWhale
»

Unit testing - se poslužujete?

Oddelek: Programiranje
335182 (3332) krneki0001
»

Applov nov programski jezik Swift (strani: 1 2 )

Oddelek: Novice / Apple iPhone/iPad/iPod
7234352 (28913) Kocka
»

Incident Knight Capital in slaba programska oprema, ki poganja svet

Oddelek: Novice / Znanost in tehnologija
4715448 (12355) Poldi112
»

Odkrit resen hrošč v PHP 5.3.7 (strani: 1 2 )

Oddelek: Novice / Varnost
5016998 (14765) Spura

Več podobnih tem