<bgdev />free

| |  


All tags 2023 9may ai algorithm alpha amd american api argon2 arm asm asmbb assembler attachment awareness balgaria bay888 bcrypt bender beta bgdev-next bgdev-next.👍 big.data bitchnigga bitcoin bmw boi borg brexit bug bulgaria business c cad chat cloud computer-names console crossorigin deprivation desktop dna dotnet email eupl falling feature forum foundation fp fresh fun game gcc github goats google gpl gpt gpt.3.5 gypsies happiness harvard hash improvement include investment it java javascript js kleta kleta.maqka.balg lambi language learning leftovers legend level levenshtein.dist libx license linkedlist linux m0 ma mcafee mele microsoft minimag minimalism negro net nginx nigga not.a.bug oop paradigm parler patterns perception persuasion pipe play.station politics populi pornhub pow pro programming protonmail python reba rust sci-fi scripting seks seo server shell sleep smartbeauty soft-skills sqlite srabska sse starship sugerface syntax tablet tailwindcss telegram theme thug troll80lvl tutanota typescript uacme ui uk unix untermensch upload uptime usa utilities ux vb via viber virtual.reality vox vps vulnerable war wasm weapons-grade web windows word x86 xbox xss youtube zig ziglang Übermensch БОКЕБЪЛГАРИН БЪ БЪлгария Белезниците Били Били.Белезниците БялДонор Веган Виста Възраждане ГЛУПАК Гана Глиста ЕС Казарма Копейкин Мода.и.овча.мисъ НЕКАДЪРНИК НРБ ПО-ЗЛЕ.И.ОТ.РАБИ Подкасти Разни Румен СИК СКУМ СетенЧук Скум ТИР Туче Украйна Урсула Яначков авангард аз айфонджия алгоритми амбиции анархизъм антиваксъри армения аудио аутисти бази.данни бакъп без без.пръчове безпросвета бенчмарк биготи биомаса бира боклук борисов ботев брадва булшит бъг бъгове бял ваксина вандал век венерика викинги вицове вишу война вървежен гана ганорник гей гейщина германия герои гешев глупак говеда групировка гюбек данъкоплатец двойни.стандарти дедотия демокрация дизайн дисциплина добитък докери долар донори држава дришльо дрон ебане еврогейски.съюз езици експеримент електроника електроника.s2 емиграция ендпойнт енум ерген ергономия жалкар задача затоплизъм защита здраве златен злато игри идеали идиократ идиократи идиокрация идиот избори избори.рабин изкуство икономика имбецили имейл инвестиране инокулация инструмента интервю ипад искам.да.си.реда казах камшикодържач капитализъм карабах караница картечница кино клавиатура ковид19 колайдер колям.кур комари комплексар комунизъм консолидация конспирации космонавтика кофа кофит-19 краставица криптовалути курви кучелюбци лайно лаладжия лаптоп либерастия литература лоши.практики луд лъжеучени лъжец любов майни майтапи малоумници мафия мениджмънт месо местене метавселена метафизика механика мистика мисъл мода мода.овча.мисъл модерация морал мутра мутри наука национализъм не.it негър некадърник некадърници неон нидерландия овча овчи олигофрени организация офтопик парички партия педал пенджури пенсия пишока плюскане победа погромист поезия политика порно посредствен почивка празници прасе превод предалщина програмиране проект проста простотии против.правилата проф пръч пръч.дришльо пръчка психика психични.болести психология пустиняк путин путката путьо рабин рабин.е.шибан.пе работа радост разврат разни разработка расизъм резерват рейтинг реклама рекламен религия рест ризи ропче ропчета русия руски.език рутина самоковска сасипаха секира село селяндур сериали сериозно.програм сетен сеянин симулация скопяване скръм слушалки сортиране софия софтуер софтуни социализъм спектрометър спринтове сране стандарти стил стуйо стюи сушилня сцена съвет съм сън сървър сърничка таб ташаци телевизия тема територията терминология термояд технологии титли традиция тролинг тръмп туба туче тъпак тъпанари тъпня уиндоус украйна умнокрасивци фалит фантастика фашизъм фейк.акаунти физика филми форум форумни.проекти футбол хазарт хамали харабия хардуер хахаха хомофобия хостинг храна хумор цайко цайси целофан цензура цензурра циганин чалга чалгар чекии чернокраки честота чипове чнг чужбина чук шпация щайга юан яката яко ям 🔨 😂 🪓


фламевар: утвърдения правоверен стил на кодене

  

0 1


  Дон Реба  Създадено на 25.11.2024, видяно: 278 пъти. #128254

малко предистория: цял живот съм бачкал долу горе в сравнителна изолация, в предната фирма бях единствения програмист, в сегашната ора почти само в мои проекти. ясно е че стила ми се отличава доста от "правилния", и като цяло тоя копнеж у програмистите за общ "правилен" стил ми е противен, но така са решили нърдовете какво пък, стига да не ме занимават мене няма проблем. фирмения код с който се е налагало да работя все пак няма фрапиращи неща, но той повечето е много стар. напоследък обаче покрай хобизма се рових в известо количество отворен код, както в примери така и в продукция. изглежда се е наложил общ правоверен стил на писане (поне сред С/С++ опен сорсистите) който е направо ГНУСЕН. отначало мислех че е някакво индивидуално отклонение, но постепенно се натрапва усещането че това е общ стил, който се налага с ревюта и тн, не го ли спазваш комюнитито просто ще те изрита. първото което ми прави впечатление е почти пълната липса на коментари. това предполагам е пряка последица от концепцията за "самодокументиращ се код", опасност за която винаги съм подозирал. това което сериозно ме потриса обаче тенденцията към изобилие от тавтологии, особено около булевите величини. изрази от типа на if(isValid())return true; else return false; (разбира се разпънато на 4 реда) са норма а не изключение. това макар и дебилно е поне технически безопасно, но много често са минали на следващо ниво дебилност if(isValid()==true)return true; else return false; което не е просто дебилно, а технически опасно, виждал съм реални бъгове пряко породени от тоя начин на писане. ако има функция за ротация на картинка няма да видиш просто rotate(90), задължително ще е rotate(IMAGE_ROTATION_90_DEGREES) което разбира се е дефинирано като 90. общото усещане е като за съзнателен сремеж към раздуване на кода, не просто техническо раздуване, а и визуално. това разбира се влошава четимостта, макар че 100% авторите ще се закълнат в айфона си че е точно заради четимост. в много от случаите това раздуване пряко влошава бързодействието, и тука не говорим просто за някаква тъпота или липса на умения, случвало ми се е с козметични промени да ускоря кода в пъти, и съм убеден че авторите са били наясно че може. стуйка, къде си бе, нали ти ми възхваляваше чистия и подреден код и ме подозираше (не без основание) в мърлящина, това ли ви е плода на десетилетните напъни за подреденост и четимост? пак подчертавам, не аз не съм джонката, не акцентирам на бързодействие, в 99.99% от случаите по-добре да заложиш на надеждното отколкото бързото, ама тия if(isValid()==true) са хем ненадеждни хем по-бавни.



  Последният акаунт на Единия  Създадено на 25.11.2024, видяно: 275 пъти. #128255

Не го знам Стойката къде се е покрил, ама Ръбав имаше едно клипче дет некъв Cloud-аджия рекламираше да пишем с функции и да заебем ООП-то, щото така "облака бачка по-бързо".

"Разни хора - разни наркотици" е казал Алеко.



  Реконструктор  Създадено на 25.11.2024, видяно: 260 пъти. #128256

1. Далеч не целия опън сорс е писан от професионалисти, по-голямата част е писана от такива като тебе. rofl

2. Когато критикуваш другите, покажи ти самия на какво си способен. rofl



  waldorf  Създадено на 25.11.2024, видяно: 260 пъти. #128257
Дон Реба

малко предистория: цял живот съм бачкал долу горе в сравнителна изолация, в предната фирма бях единствения програмист, в сегашната ора почти само в мои проекти. ясно е че стила ми се отличава доста от "правилния", и като цяло тоя копнеж у програмистите за общ "правилен" стил ми е противен, но така са решили нърдовете какво пък, стига да не ме занимават мене няма проблем. фирмения код с който се е налагало да работя все пак няма фрапиращи неща, но той повечето е много стар. напоследък обаче покрай хобизма се рових в известо количество отворен код, както в примери така и в продукция. изглежда се е наложил общ правоверен стил на писане (поне сред С/С++ опен сорсистите) който е направо ГНУСЕН. отначало мислех че е някакво индивидуално отклонение, но постепенно се натрапва усещането че това е общ стил, който се налага с ревюта и тн, не го ли спазваш комюнитито просто ще те изрита. първото което ми прави впечатление е почти пълната липса на коментари. това предполагам е пряка последица от концепцията за "самодокументиращ се код", опасност за която винаги съм подозирал. това което сериозно ме потриса обаче тенденцията към изобилие от тавтологии, особено около булевите величини. изрази от типа на if(isValid())return true; else return false; (разбира се разпънато на 4 реда) са норма а не изключение. това макар и дебилно е поне технически безопасно, но много често са минали на следващо ниво дебилност if(isValid()==true)return true; else return false; което не е просто дебилно, а технически опасно, виждал съм реални бъгове пряко породени от тоя начин на писане. ако има функция за ротация на картинка няма да видиш просто rotate(90), задължително ще е rotate(IMAGE_ROTATION_90_DEGREES) което разбира се е дефинирано като 90. общото усещане е като за съзнателен сремеж към раздуване на кода, не просто техническо раздуване, а и визуално. това разбира се влошава четимостта, макар че 100% авторите ще се закълнат в айфона си че е точно заради четимост. в много от случаите това раздуване пряко влошава бързодействието, и тука не говорим просто за някаква тъпота или липса на умения, случвало ми се е с козметични промени да ускоря кода в пъти, и съм убеден че авторите са били наясно че може. стуйка, къде си бе, нали ти ми възхваляваше чистия и подреден код и ме подозираше (не без основание) в мърлящина, това ли ви е плода на десетилетните напъни за подреденост и четимост? пак подчертавам, не аз не съм джонката, не акцентирам на бързодействие, в 99.99% от случаите по-добре да заложиш на надеждното отколкото бързото, ама тия if(isValid()==true) са хем ненадеждни хем по-бавни.

То за всяко от нещата които си акцентирал може да се напише по цяла тема. За някои неща си прав. За някои не си. За мен едно от най важните умения придобити през годините е било това да чета чужд код без да се дразня, разбира се има си неща които дразнят като вместо "return bool_expression;" някой напише "if(bool_expression == true) return true; else return false;" - това си е мърлящина и не трябва да се толерира. Но за други като дали да има интервал между оператор и отваряща скоба или дали отварящите фигурни скоби да са на същия или сами на следващия ред - та това е субективен стил за който няма смисъл да се тормозим. Важното е кода да е четлив. Важно е да можеш с един прост греп да се ориентираш кое как и защо се ползва т.е. да няма имплицитни имена на променливи и функции защото то в контекста било ясно - да де ама след година контекста не ти е в главата или пък гледаш нечий чужд код т.е. въобще нямаш контекст - затова дори и да ти се струва тъпо и излишно си има смисъл да се пише експлицитно. Но това са неща които се учат по трудния начин след години ходене по мъките.

Код се пише веднъж и се чете много пъти

т.е. не трябва да се приоритизира бързината за писане на код за сметка на леснотата на четене след време а напротив, винаги трябва да се мисли за второто. И в това отношение идва перверзния лаф:

Добре написания код е любовно писмо към теб самия след няколко години.



  Дон Реба  Създадено на 25.11.2024, видяно: 249 пъти. #128260
Реконструктор

1. Далеч не целия опън сорс е писан от професионалисти, по-голямата част е писана от такива като тебе. rofl

щяха да варират, натрапва се усещането че това е утвърден победил модел, а не индивидуални прищевки



  Дон Реба  Създадено на 25.11.2024, видяно: 248 пъти. #128261
waldorf

т.е. не трябва да се приоритизира бързината за писане на код за сметка на леснотата на четене след време

това разбира се (в нормалния случай) е така, но аз не говоря за това, аз говоря за явления които са предимно визуално и концептуално грозни, и са утвърдени с идеята че са "четими" (а е точно обратното), а това че понякога бавят е само отделен страничен ефект. тавтологията в ежедневната реч се избягва, и това не е просто така, има си смисъл. натрапва се усещането че в програмирането това далеч не е така, повечето програмисти дори не знаят думата тавтология и какво значи. и не говоря само за стил на програмиране, патерна е повсевместен. например прословитото inline, което после стана на force inline, а някой ден ще стане на really_really_force_inline_no_exception



  BIGBUGEX  Създадено на 25.11.2024, видяно: 240 пъти. #128262

forceinline... Даже не го бях чувал тва. Аз да си призная не коментирам кода. Мисля че е четим. Освен ако не мажа авх2. Тогава не е четим.



  waldorf  Създадено на 25.11.2024, видяно: 238 пъти. #128263
Дон Реба

това разбира се (в нормалния случай) е така, но аз не говоря за това, аз говоря за явления които са предимно визуално и концептуално грозни, и са утвърдени с идеята че са "четими" (а е точно обратното), а това че понякога бавят е само отделен страничен ефект. тавтологията в ежедневната реч се избягва, и това не е просто така, има си смисъл. натрапва се усещането че в програмирането това далеч не е така, повечето програмисти дори не знаят думата тавтология и какво значи. и не говоря само за стил на програмиране, патерна е повсевместен. например прословитото inline, което после стана на force inline, а някой ден ще стане на really_really_force_inline_no_exception

За тавтологията има нюанси. Затова ти дадох примера с експлицит и имплисицит. Тоталната липса на тавтология е имплицит а прекалената и употреба води до експлицит. Истината е някъде по средата. Това, че те дразни е на момента и е субективно. Това, че след време контекста на кода не ти е в главата е факт и тогава малко тавтология не само, че не е излишна ами е и полезна. Пример:


   int file_descriptor_a = file_open();
   int driver_descriptor_b = driver_open();

   file_read(file_descriptor_a);
   driver_read(driver_descriptor_b);

   file_close(file_descriptor_a);
   driver_close(driver_descriptor_b);
   

срещу:


  File a;
  Driver b;

  a.open();
  b.open();

  a.read();
  b.read(); 

  a.close();
  b.close();

Първият код въпреки, че има сумати тавтология е много по лесен за поддръжка във времето спрямо втория. Като го четеше не се налага да се чудиш какъв е типа на променливите, какво отварям или затварям и т.н.

Писането на читав и лесен за поддръжка и четене код не е лесно и отнема доста време. Едно от най трудните неща е избирането на правилните имена на функции и променливи.

Обратно, мърлящината води до код който го четеш ама не го разбираш - ама пък няма тавтология ... ми ...



  Дон Реба  Създадено на 25.11.2024, видяно: 232 пъти. #128264

кода е четим не когато се разбира какво прави, а защо го прави



  waldorf  Създадено на 25.11.2024, видяно: 220 пъти. #128267
Дон Реба

кода е четим не когато се разбира какво прави, а защо го прави

Еми те затова са коментарите - когато не е достатъчно ясно защо нещо се прави в кода се слага коментарче, че четящия го след време да не се чуди. Безмислено е да слагаш коментари какво прави кода като то се вижда в самия код.



  Последният акаунт на Единия  Създадено на 25.11.2024, видяно: 217 пъти. #128268
Дон Реба

кода е четим не когато се разбира какво прави, а защо го прави

Напълно съгласен съм с тебе Реба тука и втория пример на палавия роб по ми харесва. Ако нещо не се разбира - да се коментира, но кодът не трябва да бъде ЧЕТИМ, а ОПТИМАЛЕН и МАКСИМАЛНО КРАТЪК!

И понеже съм тъпо парче - ще отговоря с няколко цитата на един много по-велик програмист от хората тука. Иначе верно си разбрал Реба, че целта е да се "симулира работа с повече код".

My picture

My link

My link

My link

My link


  Stilgar  Създадено на 25.11.2024, видяно: 199 пъти. #128274
Дон Реба

малко предистория: цял живот съм бачкал долу горе в сравнителна изолация, в предната фирма бях единствения програмист, в сегашната ора почти само в мои проекти. ясно е че стила ми се отличава доста от "правилния", и като цяло тоя копнеж у програмистите за общ "правилен" стил ми е противен, но така са решили нърдовете какво пък, стига да не ме занимават мене няма проблем. фирмения код с който се е налагало да работя все пак няма фрапиращи неща, но той повечето е много стар. напоследък обаче покрай хобизма се рових в известо количество отворен код, както в примери така и в продукция. изглежда се е наложил общ правоверен стил на писане (поне сред С/С++ опен сорсистите) който е направо ГНУСЕН. отначало мислех че е някакво индивидуално отклонение, но постепенно се натрапва усещането че това е общ стил, който се налага с ревюта и тн, не го ли спазваш комюнитито просто ще те изрита. първото което ми прави впечатление е почти пълната липса на коментари. това предполагам е пряка последица от концепцията за "самодокументиращ се код", опасност за която винаги съм подозирал. това което сериозно ме потриса обаче тенденцията към изобилие от тавтологии, особено около булевите величини. изрази от типа на if(isValid())return true; else return false; (разбира се разпънато на 4 реда) са норма а не изключение. това макар и дебилно е поне технически безопасно, но много често са минали на следващо ниво дебилност if(isValid()==true)return true; else return false; което не е просто дебилно, а технически опасно, виждал съм реални бъгове пряко породени от тоя начин на писане. ако има функция за ротация на картинка няма да видиш просто rotate(90), задължително ще е rotate(IMAGE_ROTATION_90_DEGREES) което разбира се е дефинирано като 90. общото усещане е като за съзнателен сремеж към раздуване на кода, не просто техническо раздуване, а и визуално. това разбира се влошава четимостта, макар че 100% авторите ще се закълнат в айфона си че е точно заради четимост. в много от случаите това раздуване пряко влошава бързодействието, и тука не говорим просто за някаква тъпота или липса на умения, случвало ми се е с козметични промени да ускоря кода в пъти, и съм убеден че авторите са били наясно че може. стуйка, къде си бе, нали ти ми възхваляваше чистия и подреден код и ме подозираше (не без основание) в мърлящина, това ли ви е плода на десетилетните напъни за подреденост и четимост? пак подчертавам, не аз не съм джонката, не акцентирам на бързодействие, в 99.99% от случаите по-добре да заложиш на надеждното отколкото бързото, ама тия if(isValid()==true) са хем ненадеждни хем по-бавни.

Интересно, че точно тея примери дето даваш ще бъдат спрени от туловете за хубав код в C#. Сякаш ми казваш, че C++ върви в обратната посока. Даже в C# има напъни за скъсяване на кода примерно


bool IsValid()
{
    return nestho;
}

Го пишат

bool IsValid() => neshto; //разбира се това е когато тялото на метода е един expression


  Rabin  Създадено на 25.11.2024, видяно: 187 пъти. #128275

Още не си стигнал до плетеница интерфейси, има време. И 90% тестван, вкл обработка на грешки.

Гана каза, щото тъй! Чела нейде, че туй било качество.



  |  Създадено на 25.11.2024, видяно: 157 пъти. #128279

Повечето отворен код е боклук.

Тавтологията е навсякъде, особено в езици като Java и (донякъде) C++. Не знам дали така ги учат в училище.

Моят стил е смесица от оригиналния стил на писалите Юникс и C (K&R) + стила на Линукс ядрото + стила на Go (който реално е модифициран K&R защото част от хората писали Go са от същия екип на Бел Лабс). Целочислените променливи са i, j, k, n, указателите са p, s, t, и т.н. :) Използвам и goto когато е удобно.

Въпреки, че е дразнещо, аз бих оправдал използването на rotate(IMAGE_ROTATION_90_DEGREES), защото донякъде показва че функцията няма да ротира картинката на произволен ъгъл, а има само няколко предефинирани константи с които работи.

Аз пиша код както бих писал история/приказка. Трябва да е четим, увлекателен и накрая да има "поука". :) Ако има някакви числа в кода, които не са очевидни, значи съм си извадил от носа си и са напълно произволни.

Проблемът с коментарите е, че обикновено не се поддържат с кода и в един момент стават подвеждащи. Ето например, като се забавлявам с кода за 'p'/'a' SME, измислих как да спестя една инструкция, но понеже не бях сигурен дали ще работи, коментарите ги оставих както си бяха и сега са грешни. Ако имам късмет, ще ги прегледам преди да забравя какво правят инструкциите. :)



  Stilgar  Създадено на 25.11.2024, видяно: 149 пъти. #128280
waldorf

Еми те затова са коментарите - когато не е достатъчно ясно защо нещо се прави в кода се слага коментарче, че четящия го след време да не се чуди. Безмислено е да слагаш коментари какво прави кода като то се вижда в самия код.

Новобранците пишат коментари отговарящи на въпроса "какво", старшите пишат коментари отговарящи на въпроса "защо", а истинските майстори пишат коментари отговарящи на въпроса "защо не"



  Дърти Хари  Създадено на 25.11.2024, видяно: 116 пъти. #128283

Путка философ все повече ми напомня по начина на претенциозно писане за един друг супер експерт, който в последствие се оказа продавач в зарзаватчийница.



  Baj_boeb  Създадено на 25.11.2024, видяно: 99 пъти. #128285
Дърти Хари

продавач в зарзаватчийница.

allegedly



  Евлампи  Създадено на 25.11.2024, видяно: 97 пъти. #128286
Дърти Хари

Путка философ все повече ми напомня по начина на претенциозно писане за един друг супер експерт, който в последствие се оказа продавач в зарзаватчийница.

Бакалджийстването е супер бе, никъв шанс да науча и разбера определени важни неща без тоя опит, да маже некъв тъп код вече секи може, виж за читав бакалин далеч не всеки става, не си запознат с бизнеса но огромна част от кадровия проблем в сектора не са парите а това че масово хората си въобразяват - е кво толко да бачкаш у магазин бе, секи тъпак го може! Да, може го точно както секи тъпак може да е 'програмист' :)



  Baj_boeb  Създадено на 25.11.2024, видяно: 93 пъти. #128287
Евлампи

Бакалджийстването е супер бе, никъв шанс да науча и разбера определени важни неща без тоя опит, да маже некъв тъп код вече секи може, виж за читав бакалин далеч не всеки става, не си запознат с бизнеса но огромна част от кадровия проблем в сектора не са парите а това че масово хората си въобразяват - е кво толко да бачкаш у магазин бе, секи тъпак го може! Да, може го точно както секи тъпак може да е 'програмист' :)

голямо тролене, голямо нещо.

добре, успя да ни убедиш.

РАБОТИШ В МАГАЗИН.

РАБОТАТА В МАГАЗИН Е СУПЕР СЛОЖНА.

rofl



  Rabin  Създадено на 25.11.2024, видяно: 85 пъти. #128288
Евлампи

както секи тъпак може да е 'програмист' :)

Ти не можеш.


0 1


фламевар: утвърдения правоверен стил на кодене

  



AsmBB v3.0 (check-in: 7544654b24928b93); SQLite v3.47.0 (check-in: 03a9703e27c44437);
©2016..2024 John Found; Licensed under EUPL; Powered by Assembly language Created with Fresh IDE