Przejdź do treści
Korzystanie z usług Twittera oznacza, że wyrażasz zgodę na korzystanie przez nas z plików cookie. Firma Twitter i jej partnerzy działają globalnie i wykorzystują pliki cookie do analiz, personalizacji treści i wyświetlania reklam.
  • Strona Główna Strona Główna Strona Główna, pierwsza strona.
  • O nas

Zapisane wyszukiwania

  • Usuń
  • W tej rozmowie
    Konto zweryfikowaneChronione tweety @
Proponowani użytkownicy
  • Konto zweryfikowaneChronione tweety @
  • Konto zweryfikowaneChronione tweety @
  • Język: polski
    • Bahasa Indonesia
    • Bahasa Melayu
    • Català
    • Čeština
    • Dansk
    • Deutsch
    • English
    • English UK
    • Español
    • Filipino
    • Français
    • Hrvatski
    • Italiano
    • Magyar
    • Nederlands
    • Norsk
    • Português
    • Română
    • Slovenčina
    • Suomi
    • Svenska
    • Tiếng Việt
    • Türkçe
    • Ελληνικά
    • Български език
    • Русский
    • Српски
    • Українська мова
    • עִבְרִית
    • العربية
    • فارسی
    • मराठी
    • हिन्दी
    • বাংলা
    • ગુજરાતી
    • தமிழ்
    • ಕನ್ನಡ
    • ภาษาไทย
    • 한국어
    • 日本語
    • 简体中文
    • 繁體中文
  • Masz konto? Zaloguj się
    Masz konto?
    · Nie pamiętasz hasła?

    Nowy na Twitterze?
    Zarejestruj się
Profil ValCanBuild
Valentin Hinov
Valentin Hinov
Valentin Hinov
@ValCanBuild

Tweets

Valentin Hinov

@ValCanBuild

I've got a need to make things - apps, websites or dad jokes. Sometimes they work. Currently building & growing @thankbox to $10k/month and beyond.

Edinburgh, UK
valcanbuild.tech
Dołączył wrzesień 2014

Tweets

  • © 2021 Twitter
  • O nas
  • Centrum Pomocy
  • Zasady
  • Polityka prywatności
  • Cookies (ciasteczka)
  • Informacje o reklamach
Odrzuć
Poprzedni
Dalej

Przejdź do profilu osoby

Zapisane wyszukiwania

  • Usuń
  • W tej rozmowie
    Konto zweryfikowaneChronione tweety @
Proponowani użytkownicy
  • Konto zweryfikowaneChronione tweety @
  • Konto zweryfikowaneChronione tweety @

Promuj ten tweet

Zablokuj

  • Tweetnij z lokalizacją

    Możesz dodawać lokalizację do Twoich Tweetów, jak miasto czy konkretne miejsce, z sieci lub innych aplikacji. W każdej chwili możesz usunąć historię lokalizacji swoich Tweetów. Dowiedz się więcej

    Twoje listy

    Utwórz nową listę


    Opcjonalne, poniżej 100 znaków

    Prywatność

    Kopiuj link do Tweeta

    Umieszczanie tweeta

    Embed this Video

    Umieść tego Tweeta na swojej stronie, kopiując poniższy kod. Dowiedz się więcej

    Umieść ten film na swojej stronie, kopiując poniższy kod. Dowiedz się więcej

    Hmm, wystąpił problem z połączeniem z serwerem.

    Umieszczając treści z Twittera na Twojej stronie internetowej lub w Twojej aplikacji, potwierdzasz, że akceptujesz naszą Umowę dla programistów i Zasady współpracy z programistami.

    Podgląd

    Dlaczego widzę tę reklamę?

    Zaloguj się do Twittera

    · Nie pamiętasz hasła?
    Nie masz konta? Zarejestruj się »

    Zarejestruj się na Twitterze

    Nie ma Cię na Twitterze? Załóż profil, połącz go do interesujących Cię tematów – i otrzymuj aktualności gdy tylko się wydarzą!

    Zarejestruj się
    Masz konto? Zaloguj się »

    Wysyłanie i odbieranie krótkich kodów:

    Kraj Kod Dla klientów
    Stany Zjednoczone 40404 (dowolny)
    Kanada 21212 (dowolny)
    Wielka Brytania 86444 Vodafone, Orange, 3, O2
    Brazylia 40404 Nextel, TIM
    Haiti 40404 Digicel, Voila
    Irlandia 51210 Vodafone, O2
    Indie 53000 Bharti Airtel, Videocon, Reliance
    Indonezja 89887 AXIS, 3, Telkomsel, Indosat, XL Axiata
    Włochy 4880804 Wind
    3424486444 Vodafone
    » Zobacz krótkie kody SMS dla innych państw

    Potwierdzenie

     

    Witamy!

    Na osi czas spędzisz najwięcej czasu, czytając wiadomości o sprawach, które Cię interesują.

    Tweety Cię nie interesują?

    Najedź kursorem na zdjęcie profilowe i kliknij przycisk Obserwowany, by przestać obserwować dowolne konto.

    Powiedz wiele kilkoma słowami

    Gdy widzisz Tweeta, którego lubisz, dotknij ikony serca — jego autor dowie się, że jego wpis przypadł Ci do gustu.

    Udostępnij wiadomość

    Najszybszym sposobem na udostępnienie czyjegoś Tweeta jest podanie go dalej. Dotknij ikony, by to zrobić.

    Dołącz do rozmowy

    Powiedz, co myślisz o Tweecie, odpowiadając na niego. Znajdź temat dyskusji, który Cię interesuje, i dołącz do rozmowy.

    Zobacz najnowsze wiadomości

    Bądź zawsze na bieżąco i obserwuj publiczne dyskusje.

    Zyskaj więcej tego, co lubisz

    Obserwuj więcej kont, by widzieć więcej wiadomości na tematy, które Cię interesują.

    Sprawdź, co się dzieje

    Zobacz najnowsze rozmowy na dowolny temat.

    Nigdy nie przegap Chwili

    Bądź na bieżąco z najciekawszymi historiami.

    1. Valentin Hinov‏ @ValCanBuild 31 mar 2020

      Fellow devs - if you have a "repository"-like object that only has a single implementation do you do this? If so - why?pic.twitter.com/GRogvFc7qu

      interface Repository {
    
    fun fetchData(): Data
}

class RepositoryImpl : Repository {
  
    override fun fetchData(): Data {
      
    }
}
      13 odpowiedzi 1 podany dalej 4 polubione
      Pokaż ten wątek
    2. Valentin Hinov‏ @ValCanBuild 31 mar 2020

      In my opinion it's much better to avoid the needless interface and just do this instead. Before anyone mentions tests and mocking - good mocking frameworks can mock classes no problem - you don't need an interface, so what else is it?pic.twitter.com/oS1pA6ddlq

      8 odpowiedzi 0 podanych dalej 4 polubione
      Pokaż ten wątek
    3. Darren Atherton‏ @DarrenAtherton 31 mar 2020
      W odpowiedzi do @ValCanBuild

      I think it's when people split layers into presentation, domain and data. The interface would go in a domain module while the implementation would go in a data module. Domain layer cannot depend on data layer, so it interacts with the interface in the business logic.

      1 odpowiedź 0 podanych dalej 0 polubionych
    4. Valentin Hinov‏ @ValCanBuild 31 mar 2020
      W odpowiedzi do @DarrenAtherton

      But....why. It just seems like creating class explosion for no reason other than to play tribute to a sense of clean code. Is just having the class without interface in your Data layer and using it directly wrong? What problem does it cause?

      1 odpowiedź 0 podanych dalej 1 polubiony
    5. Darren Atherton‏ @DarrenAtherton 31 mar 2020
      W odpowiedzi do @ValCanBuild

      Yeah...clean...it works well for some projects... Because of that dependency arrow/onion architecture (business logic is the innermost layer and cannot not point/depend on an outer layer). If each layer is a different Grade module, this also avoids a circular dependency I guess?

      2 odpowiedzi 0 podanych dalej 1 polubiony
    6. Arun‏ @arunkumar_9t2 31 mar 2020
      W odpowiedzi do @DarrenAtherton @ValCanBuild

      Additionally helps in build time. When the data impl changes the ABI of the interface would not be changed. So the domain can avoid recompilation (compile avoidance) and all modules above it.

      1 odpowiedź 0 podanych dalej 2 polubione
      Valentin Hinov‏ @ValCanBuild 31 mar 2020
      W odpowiedzi do @arunkumar_9t2 @DarrenAtherton

      Is the build time saving (which I honestly don't think would be a lot if you're keeping your repos lean) really worth the extra indirection complexity?

      01:07 - 31 mar 2020
      2 odpowiedzi 0 podanych dalej 0 polubionych
        1. Nowa rozmowa
        2. Arun‏ @arunkumar_9t2 31 mar 2020
          W odpowiedzi do @ValCanBuild @DarrenAtherton

          May I know what do you mean by lean? We don't follow domain -> data, we call them bridge modules that only has interfaces and serves as contract for other modules/features. Implementation is injected by DI. Additionally I prefer fakes instead of mocks and interfaces help.

          1 odpowiedź 0 podanych dalej 0 polubionych
        3. Valentin Hinov‏ @ValCanBuild 31 mar 2020
          W odpowiedzi do @arunkumar_9t2 @DarrenAtherton

          I understand this requirement for multi-module apps - they wouldn't work otherwise. By lean I mean that each of the repositories (or however they are called) is responsible for one thing so doesn't have a huge implementation.

          0 odpowiedzi 0 podanych dalej 0 polubionych
        4. Koniec rozmowy
        1. Nowa rozmowa
        2. Grégory Lureau‏ @glureau 31 mar 2020
          W odpowiedzi do @ValCanBuild @arunkumar_9t2 @DarrenAtherton

          Written a little Java code generator to have a feeling about this perf question. It's creating 150+ classes depending on each other. With interfaces, in this very limited scenario, I gain up to 60% of the incremental build time (see gdocs)...https://github.com/glureau/InterfaceImpactOnBuildTime …

          2 odpowiedzi 0 podanych dalej 2 polubione
        3. Grégory Lureau‏ @glureau 31 mar 2020
          W odpowiedzi do to @glureau@ValCanBuild i jeszcze

          But even with a gain of 20% on a real app, the indirection while navigating through the code is such a nightmare, class explosion etc. I'd not recommend writing interfaces "by default" if they are not required.

          0 odpowiedzi 0 podanych dalej 2 polubione
        4. Koniec rozmowy

      Wydaje się, że ładowanie zajmuje dużo czasu.

      Twitter jest przeciążony lub wystąpił chwilowy problem. Spróbuj ponownie lub sprawdź status Twittera, aby uzyskać więcej informacji.

        Tweet promowany

        false

        • © 2021 Twitter
        • O nas
        • Centrum Pomocy
        • Zasady
        • Polityka prywatności
        • Cookies (ciasteczka)
        • Informacje o reklamach