Test z Laravela

0

Witam,
Pytanie kieruje do doswiadczonych programistow php programujacych w Laravel.
Czego sie nauczyc, co jest najistotniejsze w programowaniu w tym frameworku.
Wszelkie wskazowki mile widziane.
Wolam @mr_jaro!

Adam Boduch
Administrator
  • Rejestracja:około 23 lata
  • Ostatnio:13 dni
  • Postów:11948
0

Hmm, pytanie jest dość ogólne. Sam framework jest dosyć prosty i przyjemny, łatwo zacząć w nim pisać. Dokumentacja jest całkiem spoko, ale czasami brakuje w niej informacji i trzeba szukać samemu. Ja korzystam z dokumentacji API - http://laravel.com/api/5.3

Co jest najważniejsze? Może co jest najtrudniejsze:

  • zrozumienie czym jest Dependency injection
  • Service Providers, wzorzec IoC
  • ORM i relacje (has one, has many, belong to, itp)

Odradzam natomiast stosowanie Facade. To jakiś twór laravelowy nie mający nic wspólnego ze wzorcami projektowymi. Zaprojektowany po to, aby ułatwić pracę ludziom, którzy nie rozumieją jak działają serwisy (service providers) w Laravel. Siłą rzeczy sporo ludzi z tego korzysta, bo jest proste.

0

Framework jest spoko. Bylem na tescie w firmie. Test trwal 4 godziny. Trzeba bylo napisac aplikacje. Troche bardziej zaawansowany CRUD. Napisalem czesciowo dzialajaca aplikacje, ale po naradzie calego zespolu dostalem odpowiedz odmowna. Takze to tyle, jesli chodzi o ta firme..

0
Kopiuj
Hmm, pytanie jest dość ogólne. Sam framework jest dosyć prosty i przyjemny, łatwo zacząć w nim pisać. Dokumentacja jest całkiem spoko, ale czasami brakuje w niej informacji i trzeba szukać samemu. Ja korzystam z dokumentacji API - http://laravel.com/api/5.3

Co jest najważniejsze? Może co jest najtrudniejsze:

    zrozumienie czym jest Dependency injection
    Service Providers, wzorzec IoC
    ORM i relacje (has one, has many, belong to, itp)
 

Kogos kto dopiero zaczyna z tym fameworkiem tez musi miec ta wiedze? Jak sie szuka pierwszej pracy, to tez trzeba to wszystko wiedziec? Mozna sie wyspecjalizowac w jednym frameworku i opanowac go doskonale? Czy to zwieksza szanse na pierwsza prace? czy 4 godziny, to nie za malo czasu na napisanie aplikacji dla kogos kto dopiero zaczyna uczyc sie frameworka. Wlasciwie to jestem zadowolony z tego co napisalem na tej rekrutacji, bo naprawde bardzo pobierznie znam framework.., ale Laravel jest fajny..

DO
  • Rejestracja:około 9 lat
  • Ostatnio:około 6 lat
  • Lokalizacja:Warszawa
  • Postów:213
0

4 godziny na CRUDA to całkiem znośnie jeżeli potrafisz używać artisana. Co do reszty to potwierdzić tylko mogę słowa Adama, że mimo dość przyjemnej dokumentacji Laravela, kiedy chcesz coś zrobić ciekawszego i wyjść poza przykłady w niej zawarte to trzeba na początku jednak chwilkę pokopać bo nie wszystko jest tam zawarte (mam na myśli docsy,a nie api).

Co do fragmentu, który zacytowałeś to myślę, że dotyczyć to powinno ogólnie programowania, więc zrozumienie na czym to wszystko polega nie podpisywał bym pod samego Laravela, ale w ogóle pod podstawowe umiejętności jeżeli chcesz znaleźć jakąś ciekawą pracę. Chociaż tutaj gdybam, bo sam jeszcze na żadnej rozmowie nie byłem jako programista :P

Natomiast co do Laravela to jeżeli chodzi o to co powinieneś umieć, aby dostać w tym pracę to napisać właśnie takiego lepszego CRUDa. Najprostszego mógłbyś napisać do 30min gdybyś wiedział gdzie szukac informacji na ten temat w dokumentacji. Taki trochę bardziej zaawansowany, świadczyć mógł dla firmy o tym czy oprócz rzucenia okiem w dokumentacje pisałeś kiedyś coś samemu i pokazać sposób myślenia oraz podejścia do problemów.

Żeby nie być gołosłownym...
https://laravel.com/docs/5.3/controllers#resource-controllers w kilkanaście sekund masz CRUDowy kontroler ze ścieżkami.
Nie wiem czy kazali Ci na bazie pracować, ale konfiguracja 5 linijek pliku .env do połączenia z bazą to tez kilkanaście sekund.
Napisanie metod w kontrolerze do 5-10 min, bardzo podstawowe widoki to kolejne 5-10 min.
W kolejne 5-10 min mógłbyś nawet zrobić rejestrację i logowanie, a tamte widoki przenieść do prostego szablonu.

Zawsze to było dla Ciebie jakieś doświadczenie i na następną rozmowę przygotujesz się lepiej :P

edytowany 3x, ostatnio: Doggye
0

@Doggye: To wszystko co wymieniles umiem zrobic i z tego korzystac...Korzystalem z composera, bazy mysql, artisana..,ale firma w istocie szuka mega wymiatacza w Laravel, a ja tylko znam podstawy i napisalem ledwie dwa male projekty..+ ten na rekrutacji, ktory byl modyfikacja tych moich poprzednich..
Inna sprawa, to ile ludzi w moim regionie reprezentuje wiekszy poziom wiedzy niz ja..Nie sadze, zeby bylo takich wielu, bo to czego nie umiem moge sie douczyc w tydzien pod okiem bardziej doswiadczonego programisty w Laravel..

DO
Napisałeś Kogos kto dopiero zaczyna z tym fameworkiem tez musi miec ta wiedze? więc założyłem, że faktycznie dopiero co jesteś na etapie przeglądania dokumentacji skoro tak komentujesz ogólne podstawy:P Nie było mnie na teście więc ciężko ocenić poziom skomplikowania zadania. Możesz szerzej je opisac na czym polegał ten CRUD? Sam jestem ciekawy co tam się dzieje na tych rekrutacjach :)
drorat1
  • Rejestracja:ponad 15 lat
  • Ostatnio:około 2 lata
  • Lokalizacja:Krasnystaw
  • Postów:1181
0

Tylko liznąłeś temat i tylko wydaje Ci się że już coś umiesz :-) Ten framework jest tylko pozornie prosty, jeśli ktoś ma inne zdanie to proponuję sobie dokładnie przejrzeć i rozpracować to co się dzieje w kodach wewnętrznych w katalogu vendor. Tragedia.

I nie, to nie jest kwestia tygodnia czy dwóch pod okiem bardziej doświadczonego programisty bo sam już swego czasu komuś prywatnie pomagałem w pewnych rzeczach, realny czas to min rok (przykro mi :-( ) a żeby być wymiataczem i tym samym spełnić te ich wydumane zachcianki rozwiązując zadanie testowe, nawet tego CRUD-a to trzeba spokojnie siedzieć ze 2 - 3 lata mając za sobą już kilka serwisów które się w tym napisało.

Oprócz CRUD-a jako takie zadanie testowe może być realizacja prostego czata na bazie danych (nie na socketach) albo jakieś proste REST API z zabezpieczeniami opartymi o jakieś tokenowe Bearer Authorization z wykorzystaniem jakichś bibliotek typu Json Web Tokens (JWT) dla PHP albo nawet mogą poprosić o realizację własnego rozwiązania.

Oprócz tego co tutaj zostało napisane w grę będzie wchodzić to jak działają szablony Blade albo Twig i co one dają vs. szablony w czystym PHP albo co bardziej istotne jak działa Middleware, bo też w grę może wchodzić napisanie czegoś własnego czego ten Laravel nie ma. Nie widzę w vendor np. Digest Authentication i middleware pod to, jest tylko Basic Authentication. Co do Bearer to pewnie coś by się znalazło na repozytoriach z Packagist albo githuba.

PA
Serio? cruda po 2-3 latach nauki? cruda którego leci się z generatora przeważnie? REST nie ma nic wspólnego z danym FW.
drorat1
Nie do CRUD-a ale żeby można było bez prowadzenia za rękę poradzić sobie z realizacją rozbudowanych projektów. Bo na takie zadanie sprawdzające można dać i inne rzeczy.
PA
Da juniora nic cięższego nie dadzą, a wszystko wychodzące po za napisanie cruda to + dla aplikującego.. a sądzę, żę to posada juniorska po zadaniu. Napisałeś dosłownie nawet tego CRUD-a to trzeba spokojnie siedzieć ze 2 - 3 lata więc do tego się odniosłem
drorat1
No to ciekawe dlaczego odpadł? Bo jeśli pod ocenę idzie jeszcze jakość kodu to nie sądzę żeby po krótkim czasie nauki było możliwe żeby to pod tym względem porządnie napisać.
PA
A skąd mam wiedzieć czemu? nie podał treści zadania, nie podał swojego rozwiązania.. od juniora raczej nie wymaga się aby to było porządnie napisane tylko z z zachowaniem prostych zasad.. od porządnego piania to są mid i senior Byś może startował na stanowisko seniora a um. juniora.. wnioskując po wpisie, że firma szuka wymiatacza larvy.. A jeżeli szukają wymiatacza na posadzie juniora to nie warto sobie taką firmą zawracać głowy
DO
  • Rejestracja:około 9 lat
  • Ostatnio:około 6 lat
  • Lokalizacja:Warszawa
  • Postów:213
0

Nie napisał zbyt wiele o tym CRUDzie dlatego założyłem, że to prosty resource controller z artisana plus jakaś walidacja i ewentualnie obrabianie danych do wyświetlenia. Takie rzeczy na szybko można naszkicować w dość krótkim czasie i względnie będzie wszystko działać, a na teście dla początkującego nie myślałem o czymś trudniejszym.

Ja poznałem Laravela może z pół roku temu, więc też doświadczenia nie mam za dużego, ale czytam co się da żeby go lepiej poznać. Ostatnio trochę musiałem pogrzebać, żeby zrobić logowanie poprzez activedirecoty/ldap i dopiero takie prawdziwe problemy uczą pracy z fw. Więc jak chcesz być w nim lepszy to nie szukaj konkretnych zagadnień tylko buduj jak najwięcej swoich projektów, a siłą rzeczy i tak będziesz musiał zawsze doczytać coś nowego. Ważne żebyś wiedział gdzie najszybciej znaleźć potrzebne informacje i jak ich użyć.

edytowany 1x, ostatnio: Doggye
0
Kopiuj
 Tylko liznąłeś temat i tylko wydaje Ci się że już coś umiesz :-) Ten framework jest tylko pozornie prosty, jeśli ktoś ma inne zdanie to proponuję sobie dokładnie przejrzeć i rozpracować to co się dzieje w kodach wewnętrznych w katalogu vendor. Tragedia. 

Oczywiscie ze jestem poczatkujacy w tym fw, podobnie jak w innych np. yii2, czy code igniter i symfony 3, albo Django w Python.
Prostota Laravela opiera sie na dobrym rozumieniu MVC, bo programowanie wyglada mniej wiecej tak:
1.php artisan make:controller nazwa_kontrolera
2.php artisan make: model nazwa modelu
3.edycja web.php, zeby dodac nowe trasy...
4.stworzenie widokow np. nazwa_widoku.blade.php
...to sa absolutne podstawy. Dodatkowo middleware, kiedy chce przefiltrowac request, zanim wyswietle docelowy widok...
nauczylem sie tych podstaw w bardzo krotkim czasie i uwazam,ze Laravel jest latwy w porownaniu z Symfony, albo Zend...

Kopiuj
 realny czas to min rok (przykro mi :-( ) a żeby być wymiataczem i tym samym spełnić te ich wydumane zachcianki rozwiązując zadanie testowe, nawet tego CRUD-a to trzeba spokojnie siedzieć ze 2 - 3 lata mając za sobą już kilka serwisów które się w tym napisało.

Sorry, ale mam pewne przeslanki, ktore pozwalaja mi uwazac, ze potrafie uczyc sie duuuuuuzo szybciej i efektywnie...;) Dodam jeszcze ,ze chyba nie ma nic prostrzego od ogarniania php-owych fm...Maksymalnie miesiac nauki po 4-5 godzin dzien i spokojnie mozna wymiatac..;)
Przykro mi ,ze nadal szukasz pracy, skoro jestes juz tak doswiadczony i nadal d__ z tego...to smutne ;-(...

Kopiuj
 Ostatnio trochę musiałem pogrzebać, żeby zrobić logowanie poprzez activedirecoty/ldap i dopiero takie prawdziwe problemy uczą pracy z fw. Więc jak chcesz być w nim lepszy to nie szukaj konkretnych zagadnień tylko buduj jak najwięcej swoich projektów, a siłą rzeczy i tak będziesz musiał zawsze doczytać coś nowego. Ważne żebyś wiedział gdzie najszybciej znaleźć potrzebne informacje i jak ich użyć.

Logowanie i rejestracja to jedna komenda: php artisan make:auth
Bede sie uczyl tego fm, bo naprawde jest duzo latwiejszy od Symfony

DO
Tylko napisałem, że nie byłem na rozmowie o prace w firmie, a nie że nie zarabiam na tym co robie :) Jednak odnosząc się do Twoich wszystkich wypowiedzi nie brzmisz jak osoba z dużym doświadczeniem. Jak byś w paru fw przepracował kilka lat, to faktycznie ogarniecie dobrych podstaw kolejnego mogłoby zająć miesiąc. Ale gdyby tak było nie zadawał byś takich pytań na forum stąd nasze studzenie Twojego podekscytowania. btw. Wiesz w ogóle co robi make:auth a co to jest AD i LDAP?
0
Kopiuj
 Jak byś w paru fw przepracował kilka lat, to faktycznie ogarniecie dobrych podstaw kolejnego mogłoby zająć miesiąc. Ale gdyby tak było nie zadawał byś takich pytań na forum stąd nasze studzenie Twojego podekscytowania. btw. Wiesz w ogóle co robi make:auth a co to jest AD i LDAP?

Nie twierdze, ze przepracowalem pare lat, bo przepracowalem 0 lat. Twierdze natomiast, ze jesli jest sie prawie inzynierem informatykiem, umie sie czytac ze zrozumieniem i dodatkowo umie sie czytac ze zrozumieniem po angielsku, a co najwazniejsze, umie sie wyciagac wnioski, to nauczenie sie programowania aplikacji w jednym z latwiejszych fm php nie wymaga miesiecy i lat, ale maksymalnie kilku tygodni, zeby reprezentowac poziom pozwalajacy na projektowanie i implementacje aplikacji php.

DO
Inżynier tutaj o niczym nie świadczy, a tym bardziej prawie inżynier :) Wiedza i doświadczenie, aż bije po oczach z Twoich wypowiedzi. Jak wspominasz trzeba potrafić wyciągać wnioski, a w miedzy czasie krzyczysz jakie to programowanie nie jest proste, kiedy to dopiero poległeś na jakimś CRUDzie i jesteś zaskoczony, kiedy ktoś Ci wymienił zasugerował poznanie podstawowych pojęc i koncepcji odnośnie programowania. Zaprogramuj coś ciekawgo na poważnie i przemyśl raz jeszcze to co napisałeś :)
0
Kopiuj
 a w miedzy czasie krzyczysz jakie to programowanie nie jest proste, kiedy to dopiero poległeś na jakimś CRUDzie i jesteś zaskoczony, kiedy ktoś Ci wymienił zasugerował poznanie podstawowych pojęc i koncepcji odnośnie programowania. Zaprogramuj coś ciekawgo na poważnie i przemyśl raz jeszcze to co napisałeś :)

Ze co...? Chyba moje wypowiedzi przestaja byc rozumiane.., ale mniejsza z tym.., a na zakonczenie dodam jeszcze, ze programisci w tej firmie pochwalili moja wiedze i umiejetnosic, ale ostatecza decyzje podjal szef i to on zdecydowal, zeby mnie nie zatrudniac..Tyle.., a PROGRAMOWANIE JEST LATWE. Jak sie ma solidne podstawy np. ze studiow, to wszystko jest do ogarniecia..:)..i jeszcze jedno..owszem zamierzma zaczac programowac w Laravel na powaznie..:)..Pozdrowka wszystkim, co zlego to nie ja..

PA
  • Rejestracja:ponad 10 lat
  • Ostatnio:około 6 lat
  • Postów:339
0

Napiszesz wreszcie co to było za zadanie ten zaawansowany crud?

0
Kopiuj
 Napiszesz wreszcie co to było za zadanie ten zaawansowany crud?

Mam cala tresc zadania, bo wzialem kartke z zadaniem do domu..ale musze zeskanowac, albo zrobic zdjecie...udostepnie to zadania wkrotce

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)