<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 негър некадърник некадърници неон нидерландия овча овчи олигофрени организация офтопик парички партия педал пенджури пенсия пишока плюскане победа погромист поезия политика порно посредствен почивка празници прасе превод предалщина програмиране проект проста простотии против.правилата проф пръч пръч.дришльо пръчка психика психични.болести психология пустиняк путин путката путьо рабин рабин.е.шибан.пе работа радост разврат разни разработка расизъм резерват рейтинг реклама рекламен религия рест ризи ропче ропчета русия руски.език рутина самоковска сасипаха секира село селяндур сериали сериозно.програм сетен сеянин симулация скопяване скръм слушалки сортиране софия софтуер софтуни социализъм спектрометър спринтове сране стандарти стил стуйо стюи сушилня сцена съвет съм сън сървър сърничка таб ташаци телевизия тема територията терминология термояд технологии титли традиция тролинг тръмп туба туче тъпак тъпанари тъпня уиндоус украйна умнокрасивци фалит фантастика фашизъм фейк.акаунти физика филми форум форумни.проекти футбол хазарт хамали харабия хардуер хахаха хомофобия хостинг храна хумор цайко цайси целофан цензура цензурра циганин чалга чалгар чекии чернокраки честота чипове чнг чужбина чук шпация щайга юан яката яко ям 🔨 😂 🪓


нетаджии, var vs explicit type

  

0 1 2 3


  Courvoisier  Последно редактирано на 01.08.2020 от Courvoisier, видяно: 1522 пъти. #2123

Малко tabs vs spaces тема.

Кое предпочитате да ползвате, var или да пишете типът винаги. Естествено, ако го правите за LINQ резултат сте мазохисти.

Но, кое предпочитате?

var products = new List<Product>();

или

List<Product> = new List<Product>();

Аз лично смятам, че ако не ползвате var сте мазохисти. Като рефакторирате е много по- лесно да е var. Пък и е по- естестическо.

Дори

var temp = default(string);

е по- красиво.



  Courvoisier  Последно редактирано на 01.08.2020 от Courvoisier, видяно: 1519 пъти. #2125

A правите ли


public class Hui 
{
    public IList<NaebaniShutki> NaebaniShutki { get; }

    public Hui()
    {
        NaebaniShutki = new List<NaebaniShutki>();

    }

}

Що го правя? Искам някой след мен да не ми преписва цял лист на пропъртито, ами да добавя и маха NaebaniShutki от него.



  Delegate  Създадено на 01.08.2020, видяно: 1506 пъти. #2129

var ползвам в LINQ, иначе не виждам особен смисъл да развалям четливостта. Тя вар-та и кирпича са compile-time, накрая все същото излиза. варта те прави по-лежерен


foreach (var pair in someCollection)
вместо
foreach (KeyValuePair<string, int> pair in someCollection)

Абе, ако имаш в някакъв обект анонимен метод с var и го асайнеш към ивент, нямаше ли някаква драма после при dispose-ването да се махне от InvocationList на ивент делегата...



  bvbfan  Създадено на 01.08.2020, видяно: 1498 пъти. #2137
Courvoisier

Що го правя? Искам някой след мен да не ми преписва цял лист на пропъртито, ами да добавя и маха NaebaniShutki от него.

Не виждам как го спираш да махне всички и да си сложи неговите, което е преписване на цял лист.



  Elim Garak  Създадено на 01.08.2020, видяно: 1487 пъти. #2144

Откакто цъкам ръст и го, смятам че тези експедиция и типове са ненужни. Имат смисъл само ако пишеш на текстов редактор, а това е ето, което никой не трябва да прави



  stewie  Създадено на 01.08.2020, видяно: 1316 пъти. #2157

Е са за linq резутат. Голям прас


var nasraniDupenca = dupenca.Where(x => x.Naakano); 

ко му е лошото. Може си видиш типа по всяко време.



  stewie  Създадено на 01.08.2020, видяно: 1316 пъти. #2158
Elim Garak

Откакто цъкам ръст и го, смятам че тези експедиция и типове са ненужни. Имат смисъл само ако пишеш на текстов редактор, а това е ето, което никой не трябва да прави

Колко курви и кокаин намаза откакто цъкаш на Ръст ?



  stewie  Създадено на 01.08.2020, видяно: 1316 пъти. #2160
Courvoisier

A правите ли


public class Hui 
{
    public IList<NaebaniShutki> NaebaniShutki { get; }

    public Hui()
    {
        NaebaniShutki = new List<NaebaniShutki>();

    }

}

Що го правя? Искам някой след мен да не ми преписва цял лист на пропъртито, ами да добавя и маха NaebaniShutki от него.

За къф член ти е IList, това в някакъв много специален случай ще ти трябва вместо IEnumerable.



  Courvoisier  Създадено на 01.08.2020, видяно: 1462 пъти. #2169

На Entity (EF), ако е IEnumerable няма Lazy Loading, там ги слагам ICollection. IEnumerable няма Add. IList пък е Sortable. Зависи къде и за какво го ползвам. Например, за Contract ползвам IEnumerable, за Entity ползвам ICollection и ако някъде ми трябва повече операции, IList, може и IDictionary. Гледам да е интерфейса, защото we should depend on abstraction, not concretion.



  Stilgar  Последно редактирано на 01.08.2020 от Stilgar, видяно: 1460 пъти. #2170

var когато типът е ясен (тоест когато имаш конструктор или литерал от дясната страна), explicit type в останалите случаи. Първо съм виждал около 5 пъти професионални (вярно junior) програмисти да не разбират, че правят нещо с IEnumerable вместо с IQueryable заради var и да разказват играта на положението. Второ не могат да се видят такива и други подобни грешки когато се чете кода (било то code review или друго) защото за да видиш типа трябва да посочиш тоя var, а ти ако предположиш някакъв тип просто няма да разбереш, че си предположил грешно. От друга страна са хора като мен които са параноици и винаги мислят че са предположили грешно и ръкомахат върху всеки var тоест убивате ми продуктивността като ползвате var. И накрая код се чете не само в IDE. Понякога този код се показва в лекция, понякога се share-ва екран, понякога се чете в GitHub или VSTS. Тогава как разбираме какво е зад var-а? Преди 2-3 месеца Кенов правеше някаква лекция и аз прекарах 5 мин да споря с него през чата защото един var бях предлопожил, че е Task а той бил Task[] или нещо такова. Какво трябваше да направя да посоча var-а в YouTube и да ми покаже типа?



  Courvoisier  Последно редактирано на 01.08.2020 от Courvoisier, видяно: 1458 пъти. #2172

@Stilgar, аз затова им дърпам кода като правя ревю, щото не винаги е ясно какво става само с четене, освен ако не си концентриран на 200% и не знаеш цялото API. Мисля, че код ревюто не е нещо, което трябва да се прави бързо.

Иначе верно, затруднява в тези случаи. Май езикът не се развива така, че всичко да е ясно от пръв поглед. Например новите switch-ове.

Така е разбираемо:


public string WhatFruit => Fruit switch
{
  Apple _ => "This is an apple",
  _ => "This is not an apple"
};

Но като почнат да nest-ват switch + when? То би трябвало да се раздроби, но го виждам в PluralSight вече на няколко и в първия момент си викам WTF.



  Courvoisier  Последно редактирано на 01.08.2020 от Courvoisier, видяно: 1458 пъти. #2173
Delegate

Абе, ако имаш в някакъв обект анонимен метод с var и го асайнеш към ивент, нямаше ли някаква драма после при dispose-ването да се махне от InvocationList на ивент делегата...

Аз съм онзи, лудият, който вместо anonymous метод, ще направи:

        
        public static IHostBuilder CreateHostBuilder(string[] args)
        {

            return Host
                .CreateDefaultBuilder(args)
                .ConfigureServices(CreateServices)
                .ConfigureLogging(CreateLogging)
                .ConfigureWebHostDefaults(CreateWebHost)
                .UseWindowsService();
        }

        private static void CreateWebHost(IWebHostBuilder builder)
        {
            builder
                .UseKestrel()
                .ConfigureAppConfiguration(CreateConfiguration)
                .UseStartup<Startup>();
        }



  Stilgar  Създадено на 01.08.2020, видяно: 1456 пъти. #2174
Courvoisier

@Stilgar, аз затова им дърпам кода като правя ревю, щото не винаги е ясно какво става само с четене, освен ако не си концентриран на 200% и не знаеш цялото API. Мисля, че код ревюто не е нещо, което трябва да се прави бързо.

Аз пък им връщам кода да си го оправят ако видя var който не разбирам какво прави. Има една простотия във VS че ToList() го води obvious type което е пълна глупост и само заради него не съм настроил editorconfig да дава warning за варосване.



  Stilgar  Създадено на 01.08.2020, видяно: 1455 пъти. #2175
Courvoisier
Delegate

Абе, ако имаш в някакъв обект анонимен метод с var и го асайнеш към ивент, нямаше ли някаква драма после при dispose-ването да се махне от InvocationList на ивент делегата...

Аз съм онзи, лудият, който вместо anonymous метод, ще направи:

        
        public static IHostBuilder CreateHostBuilder(string[] args)
        {

            return Host
                .CreateDefaultBuilder(args)
                .ConfigureServices(CreateServices)
                .ConfigureLogging(CreateLogging)
                .ConfigureWebHostDefaults(CreateWebHost)
                .UseWindowsService();
        }

        private static void CreateWebHost(IWebHostBuilder builder)
        {
            builder
                .UseKestrel()
                .ConfigureAppConfiguration(CreateConfiguration)
                .UseStartup<Startup>();
        }

Ти сигурен ли си че знаеш какво е анонимен метод?



  Courvoisier  Създадено на 01.08.2020, видяно: 1455 пъти. #2176

От гледна точка що ползваме strong types езици да. Как ли се оправят джабаскриптите... а те и там измислиха TypeScript. Помня как съм търсел цял ден ; в AngularJS, щото нямам някакво свястно IDE, ами VSCode.



  Courvoisier  Последно редактирано на 01.08.2020 от Courvoisier, видяно: 1455 пъти. #2177

@Stilgar

TestDelegate testDelC = (x) => { Console.WriteLine(x); };

ПС, ОК, Lambda expression е.

Тогава delegate(string s) { Console.WriteLine(s); };



  Courvoisier  Последно редактирано на 01.08.2020 от Courvoisier, видяно: 1453 пъти. #2178

Но пиша


var consumer = new EventingBasicConsumer(...);
consumer.Received += OnReceived;
private void OnReceived(object sender, BasicDeliverEventArgs e)
{
    ...
}

Даже бих написал (не е anonymous method, баси, засегна ме)

if(IsItTrue(instance)) 
{
    ....
}

с метод


private bool IsItTrue(Instance instance) 
{
    return instance.field1 // == true
        && instance.field2.Equals("alabala", ignorecase);
}


  Stilgar  Създадено на 01.08.2020, видяно: 1441 пъти. #2180

И какво общо има анонимният метод с оня код от по-предишния ти пост?



  Courvoisier  Създадено на 01.08.2020, видяно: 1439 пъти. #2181

Ми няма, идеята ми беше, че пиша експлицитно метод, за да е по- четим кода, което е в противоречие с предпочитанията ми за var.



  Courvoisier  Последно редактирано на 01.08.2020 от Courvoisier, видяно: 1434 пъти. #2183

Друго нещо, което избягвам е да имам код след 80-та колона. Гледал съм този връх в LGTB общоността и съм взел от него каквото е харесало на субективното ми мнение.

Например, вместо:


public MyFerma(IKrushoberach krushoberach, INegarSPraska4ka negarSPraska4ka, IOsemenitel osemenitel) 
{
    ....
}

ще напиша

public MyFerma(
    IKrushoberach krushoberach, 
    INegarSPraska4ka negarSPraska4ka, 
    IOsemenitel osemenitel)
{
    ....
}

LGTB пикът = ITT 2016 - Kevlin Henney - Seven Ineffective Coding Habits of Many Programmers


0 1 2 3


нетаджии, var vs explicit type

  



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