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


Patterns'n'shit

  

0 1 2 3 4 5 6 7 8


  stewie  Създадено на 06.08.2020, видяно: 2154 пъти. #3182
Rabin
stewie
Rabin
stewie

Мноу ибеш, малко читеш Рабинее. Правят гениален продукт, яката архитектура, скалируем, бърз, майката си ибал. До тук добре. Как го правим това всичкото на пачки с пари и как знаем какво точно искат клиентите и дали ще им върши работа?

ТИР Урсула село ерген чекия

Е ай дай смислен отговор, стига си се лигавил.

На такъв въпрос такъв отговор.

Прайш се на луд пак, айде почивай си от мене.



  Courvoisier  Последно редактирано на 06.08.2020 от Courvoisier, видяно: 2369 пъти. #3360

Добре, минималисти. ORM, big shit. Как си правите ентититата?

Вариант 1 - всяко ентити си е само по себе си


public class Shit
{
    public long Id { get; set; }
    public string Colour { get; set; } // mind the gap
    public DateTimeOffset CreatedOn { get; set; }
}

Вариант 2.1 - нека сме по- cool, имаме общо между повечето таблици ID-то over and over again? Но това би било проблем при ID= PK & FK или Composite PK, тогава ще пишете ли още интерфейси?

public interface IEntity<TId>
{
    TId Id { get; set; }
}


public class Shit : IEntity<long>
{
    public long Id { get; set; }
    public string Colour { get; set; } // mind the gap
    public DateTimeOffset CreatedOn { get; set; }
}

Вариант 2.2 - overkill-вате, но е cool

public interface IEntity<TId>
{
    TId Id { get; set; }
}

public abstract class AbstractEntity<TId> : IEntity<TId>
{
    public TId Id { get; set; }
	
    // override equals
    // override hash
    // override ==
    // override whatever else
}

public class Shit : AbstractEntity<long>
{
    public string Colour { get; set; } // mind the gap
    public DateTimeOffset CreatedOn { get; set; }
}

Вариант 2.3 - имате soft delete, delete, ентитита само с createdon, ентитита с createdon + updatedon, etc. и си правите интефейси с или без абстрактни класове.



  saruman  Последно редактирано на 06.08.2020 от saruman, видяно: 2362 пъти. #3361

Наследяването е пълен кенеф по всякакви поводи,по-добре си направи няква MVC композиция с два класа

п.с.гласувам за 2.1 :-)



  Golden Gega  Създадено на 07.08.2020, видяно: 2314 пъти. #3389

Database first има прекалено много предимства, може би е добре да е в отделна тема ако се дискутира полусериозно



  Elim Garak  Създадено на 07.08.2020, видяно: 2305 пъти. #3401

ORM-a е антипатерн. Не мога да разбера какво му харесват хората. При мен се ползва, защото тъпацит ене разбират от бази данни и не могат да напишат една SQL заявка, нито пък могат да програмират - ако спринга няма анотация за нещо си, са до там.



  Rabin  Създадено на 07.08.2020, видяно: 2141 пъти. #3403
Elim Garak

ORM-a е антипатерн. Не мога да разбера какво му харесват хората. При мен се ползва, защото тъпацит ене разбират от бази данни и не могат да напишат една SQL заявка, нито пък могат да програмират - ако спринга няма анотация за нещо си, са до там.

ORM се ползва заради кеширането, бай теоретик. Извличал съм и сглобявал секви обекти от базата, ама кеш нанай си. Ускорява нещата хиляди пъти като се кешира.



  Courvoisier  Последно редактирано на 07.08.2020 от Courvoisier, видяно: 2294 пъти. #3405

Според зависи, с ORM-а мажеш с лопатата една идея по- бързо. Като трябва PoC да вдигна за 2-3 дни, ORM, Automapper, ей ви Proof. Причина 1 е, че няма време (макар, че за 1-2 таблици, ADO.NET печели за времето, лично мое мнение). Причина 2 е, че екипът не иска / не се чувства комфортно / няма достатъчно познания по базите. Трета е чисто политическа, архитекта е казал така и бръмчи като жигула на баир, че така го искал и така да се направи. Виждал съм и трите причини. Вероятно има и още.

@Rabin, ти винаги може да си имплементираш кеш. На Хайбърнейта имаш повече контрол, на Ентити Фреймуърка имаш повече асумпции от тези преди теб. На много голяма база може да се застреляш, защото в .NET-а имаш ограничение колко да са ти големи обектите, което ограничение може да изключиш, но е там да ти напомни, че ако не знаеш защо държиш толкова памет, вероятно не трябва да държиш толкова памет.



  Rabin  Създадено на 07.08.2020, видяно: 2141 пъти. #3406
Courvoisier

@Rabin, ти винаги може да си имплементираш кеш.

Кис кис, дядовците много го обичат туй упражнение. Точно там са големите науки, туй диви интерфейси, durty стейтове, абе много сложно и научно е. После гасим лампите и на борсата. Точно след такъв опит.



  Courvoisier  Последно редактирано на 07.08.2020 от Courvoisier, видяно: 2284 пъти. #3409

Преди гледах да правя оптимизации, но са ми натяквали, че моето време е по- скъпо от хардуерното, а и самата оптимизация ми е създавала проблеми и в крайна сметка, ако нямам точно специфичното изискване да оптимизирам, чуствам се напълно спокоен да не го оптимизирам. Е, добре, ако някой ми прави 1000 пъти стринг.реплейс, тогава го преправям на стрингбилдър, но само в такива изключения. Да тегли, викат, че хардуера бил евтин.

Пък ако накрая фейлне, здраве да е, ще ядем кебапчета. Фирми бол.



  Rabin  Последно редактирано на 07.08.2020 от Rabin, видяно: 2141 пъти. #3413

ORM без кеш не е липса на оптимизация както го изкарваш. Това е жизнена необходимост, както слънцето и въздуха за всяко живо същество (Г. Димитров). Да не си php мазач, че да приказваш такива неща?



  Courvoisier  Последно редактирано на 07.08.2020 от Courvoisier, видяно: 2276 пъти. #3416

Не, защитавах ADO.NET vs EF/NHibernate. Ако не ползваш ORM и искаш да кешираш, ще трябва ти да си кешираш. Но имаш ли наистина нужда от кеш всеки път? Може би има и light ORM-и, които само мапват. Виждал съм един такъв custom написан, който беше без кеш, само мапваше. Бяха крали от хайбърнейт мапинг спецификацията с XML, но защо не бяха сложили и други неща - вероятно е нямало време. Били го написали малко преди ЕФ да излезе и така си стои, сигурно и до днес.



  Golden Gega  Създадено на 07.08.2020, видяно: 2259 пъти. #3419
Courvoisier

Не, защитавах ADO.NET vs EF/NHibernate. Ако не ползваш ORM и искаш да кешираш, ще трябва ти да си кешираш. Но имаш ли наистина нужда от кеш всеки път? Може би има и light ORM-и, които само мапват. Виждал съм един такъв custom написан, който беше без кеш, само мапваше. Бяха крали от хайбърнейт мапинг спецификацията с XML, но защо не бяха сложили и други неща - вероятно е нямало време. Били го написали малко преди ЕФ да излезе и така си стои, сигурно и до днес.

Наясно ли си как кешира самия SQL Server, или каквато база там ползваш? Дришльото че не е наясно е ясно



  Courvoisier  Създадено на 07.08.2020, видяно: 2253 пъти. #3421

Не напълно, но да четеш в паметта е по- бързо от да търкаляш по мрежата.



  Golden Gega  Създадено на 07.08.2020, видяно: 2243 пъти. #3422
Courvoisier

Не напълно, но да четеш в паметта е по- бързо от да търкаляш по мрежата.

Да, освен в готините случаи когато некой барне нещо дето ти си кеширал



  Courvoisier  Създадено на 07.08.2020, видяно: 2242 пъти. #3423

Plot twist, ше ги вземам от редис, а уъркър ще следи за промени в базата и ше ъпдейтва редиса. Не съм го правил.



  Elim Garak  Създадено на 07.08.2020, видяно: 2236 пъти. #3425
Rabin
Elim Garak

ORM-a е антипатерн. Не мога да разбера какво му харесват хората. При мен се ползва, защото тъпаците не разбират от бази данни и не могат да напишат една SQL заявка, нито пък могат да програмират - ако спринга няма анотация за нещо си, са до там.

ORM се ползва заради кеширането, бай теоретик. Извличал съм и сглобявал секви обекти от базата, ама кеш нанай си. Ускорява нещата хиляди пъти като се кешира.

ORM не се ползв азаради кеширането. Кеширане може да имаш на всякъде. Ползва се, защото масовката не може да обърне ResultSet-a в обекти, а и не може да напише елементарна SQL заявка. ORM-a e бавен, и ням акак да е по-бърз от plain JDBC, защото най-малкото го използва отдолу.



  Elim Garak  Създадено на 07.08.2020, видяно: 2233 пъти. #3426

Според зависи, с ORM-а мажеш с лопатата една идея по- бързо. Като трябва PoC да вдигна за 2-3 дни, ORM, Automapper, ей ви Proof.

 Едно е ПоК, друго е продуктивен код. Примерно е мъка да правиш DB migrations с ORM. Това което си спестил после ти излиза десеторно през носа.

Ако правиш джойнове, имаш процедури, и т.н. е още по-голяма мъка. ORM-a става само да мапваш елементарни таблички без връзки с други таблици. Това вече може да е мой пропуск, но аз не знам как може да направиш рекурсивна заявка с JPA



  Elim Garak  Създадено на 07.08.2020, видяно: 2231 пъти. #3427

Преди гледах да правя оптимизации, но са ми натяквали, че моето време е по- скъпо от хардуерното,

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



  Elim Garak  Създадено на 07.08.2020, видяно: 2317 пъти. #3428
Courvoisier

Не напълно, но да четеш в паметта е по- бързо от да търкаляш по мрежата.

проблема на кеша е, чене знаеш кога да го инвалидираш :) за read-only данни е ок, но там където се пише и променя е проблем



  Courvoisier  Последно редактирано на 07.08.2020 от Courvoisier, видяно: 2314 пъти. #3429
Elim Garak

Според зависи, с ORM-а мажеш с лопатата една идея по- бързо. Като трябва PoC да вдигна за 2-3 дни, ORM, Automapper, ей ви Proof.

 Едно е ПоК, друго е продуктивен код. Примерно е мъка да правиш DB migrations с ORM. Това което си спестил после ти излиза десеторно през носа.

Ако правиш джойнове, имаш процедури, и т.н. е още по-голяма мъка. ORM-a става само да мапваш елементарни таблички без връзки с други таблици. Това вече може да е мой пропуск, но аз не знам как може да направиш рекурсивна заявка с JPA

Ми... нямам си идея. Имаш предвид ред в таблицата да си реферира ред в същата таблица? Виждал съм такива 2 пъти в житова си, ДБ-тата ми бяха написали процедура да си я извикам, а и тогава бачкахме без ОРМ. Пък и да му хванеш всичко иска време, има време.

ПС: Да, бачкал съм повече аутсорс във всичките известни такива фирми. Преди малко години се отрекох от тая работа, щото не искам да съм ковра на повикване, пък и да правиш едно и също на поточна линия е мъка. Да ме пратят контракт някъде е интересно, но в такъв случай по- добре сам да се контрактвам.


0 1 2 3 4 5 6 7 8


Patterns'n'shit

  



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