Pytanie początkującego - co robię źle?

Witam wszystkich.
Mam taki trochę kryzys w nauce Railsów i szukam jakiegoś potwierdzenia, czy to normalny etap, czy coś jest ze mną nie tak.
Uczę się tej technologii już od jakiegoś czasu. Przerobione kilka książek, kursów. Zrobiłem kilka aplikacji, głównie rekrutacyjnych.
Dopóki aplikacje są do siebie podobne, schematyczne, rozwiązania w jakiś sposób powtarzalne - radzę sobie. Ale obecnie jestem na stażu i tworzę aplikację z użyciem ActionCable. Szło jakoś mozolnie, ale do przodu. W pewnym momencie napotkałem problem, i musze ogarnąć to w ten sposób, by współpracowało ze sobą kilka modeli, plus do tego jeszcze cały mechanizm ActionCable, napisany w CoffeeScripcie.
Gdy mam jakiś problem logiczny z jakimś fragmentem kodu, siedzę nad tym aż to wymyślę. Jednak w sytuacji, gdy musi ze sobą współpracować kilka plików, trochę się podłamuję. Gdy uda mi się doprowadzić do tego, że coś działa, coś innego się psuje.
Mam wrażenie, że mimo zrobienia tylu aplikacji wciąż jakoś tak chyba nie rozumiem współpracy wszystkich elementów ze sobą. Często mam problem tego rodzaju, że nie jestem pewien, w którym miejscu umieścić daną funkcję. Czy powinna być w tym modelu, może w tamtym, może w helperze, może kontroler? Gdy już nawet ustalę, gdzie mam coś umieścić, często pojawia się taki problem, że potrzebuje przekazać do funkcji jako argument coś, jakąś zmienną, która jest z tego poziomu niedostępna. I zaczyna się totalna kombinatoryka.
Czasami udaje mi się w końcu sprawić, że aplikacja działa, ale jest to wszystko zrobione brzydko, pokombinowane, na pewno da się całą rzecz uprościć. Spędzam nad tym mnóstwo czasu, nie jest tak, że robię to “po łebkach”. Właściwie pracuję do granic możliwości fizycznych, a mimo to wygląda to słabo.
Zastanawiam się, czy to normalne, i muszę po prostu programować więcej, a z czasem wskoczę na ten wyższy poziom, czy jestem jakimś beztalenciem? :wink: mam wrażenie, że utknąłem na jednym poziomie i nie umiem wskoczyć na następny.

Wyczucie kodu i co gdzie dodajesz wymaga trochę czasu. Z mojego doświadczenia jest to rzecz normalna. Inaczej patrze na swój kod sprzed 6 miesięcy. Przede wszystkim to co radzi mnóstwo blogów czyli czytanie dobrego kodu np kod źródłowy railsów. Polecam też przeczytanie książek nie związanych ściśle z ruby np:

Clean Code - Uncle Bob’a tu link do blogu http://blog.cleancoder.com/ Możesz też poszukać wersji papierowej lub elektronicznej.

Poczytaj trochę o SOLID i ogólnie o wzorcach projektowych. Warto zajrzeć do tej książki:
http://designpatternsinruby.com/

Ważne też, żeby mieć feedback na temat kodu który piszesz od bardziej doświadczonych kolegów i podjąć na ten temat dyskusję, co i gdzie i dlaczego.

Mam nadzieję, że w jakiś sposób Ci to pomoże i powodzenia.

Krzywa nauki to zawsze krzywa - i po szybkim skoku ona się wypłaszcza… i jest ciężko, też psychicznie.

Mnie pomogła metoda małych kroków: codziennie, po-przed pracą czytałam kawałek dobrej książki. Powoli te idee zapadały mi w pamięć.
Osobiście polecam: Practical Object Oriented Design in Ruby Sandi Metz (i jej talki z konferencji!!) oraz książka o Trailblazerze, mimo że nie używam tego gemu.
Czas i cierpliwość ¯_(ツ)_/¯

Od siebie dodałbym jeszcze:

  1. Przeczytać jeszcze raz i naprawdę zrozumieć/poczuć co oznacza każda literka w MVC. Po co o to jest, za co odpowiada?
  2. I troche bardziej od strony Railsów, a nie OOP:
    http://guides.rubyonrails.org/index.html - przeglądnij, tutaj jest wszystko super wytłumaczone, tylko jest tego sporo i jest też trochę rzeczy opisanych bardziej szczegółowo niż pewnie potrzebujesz narazie.

Dzięki wielkie za odpowiedzi. Dobrze wiedzieć, że moje odczucia nie świadczą o byciu beztalenciem :wink: